#python #streamlit
#питон #освещенный потоком
Вопрос:
Я использую Streamlit и Python для создания графического интерфейса для моего проекта. У меня есть конкретный вопрос о файлах .txt, это код, над которым я сейчас работаю:
with open('data/test20/testing.txt', 'w ') as txt_reader:
string = st.text_input('ENTER TEXT', value='', max_chars=None, key=None, type='default')
txt_reader.write(string)
st.write(string)
При этом я запрашиваю вводное предложение, а затем добавляю это предложение в свой testing.txt досье. После предложения должно быть что-то еще, чтобы моя модель могла анализировать его. Так, например, если пользователь вводит «Настроить было легко«, в моем текстовом файле у меня должно быть «Настроить было легко.####Set= O up = O was = O easy = O . = O» Поэтому мне нужно добавить «####» и каждый слово, включая знаки препинания, и добавьте «= O» к каждому из этих пунктов.
Я собираюсь использовать res = string.split()
для разделения предложения на слова и знаки препинания, но как я могу добавить все остальное?
Заранее спасибо!
Комментарии:
1.
words = ['Set', 'up', 'was', 'easy', '.']; ' '.join([w '=O' for w in words])
Ответ №1:
Мы можем разделить проблему на 2 части: 1. Разделить текст на список слов и знаков препинания и 2. объединить их и добавить =O
после каждого.
В первой части вы упомянули string.split() , но, пожалуйста, обратите внимание, что этот метод будет разбивать предложение только на пробелы, а не на знаки препинания, поэтому Set up was easy.
вы ['Set', 'up', 'was', 'easy.']
получите не то, что вы хотите. Один из простых способов получить желаемый результат — это использовать модуль re, вот пример кода:
import re
sentence = 'Set up was easy.'
words = re.findall(r"[w'] |[.,!?;]", sentence)
В результате этот words
список был ['Set', 'up', 'was', 'easy', '.']
бы просто великолепен.
Для второй части мы хотим взять каждый элемент списка и связать его с «=O», добавив все элементы в одну большую строку. Мы можем сделать это с помощью этого кода:
result = sentence "####" " ".join([word "=O" for word in words])
Наконец, мы можем сократить приведенный выше код до:
import re
sentence = "Set up was easy."
sentence = "####"
result = sentence " ".join([word "=O" for word in re.findall(r"[w'] |[.,!?;]", sentence)])