#python #split #nltk
Вопрос:
Я очищаю текстовый файл и написал следующий код для удаления нежелательных символов. Моя проблема в том, что конечный результат отображается в виде списка слов, когда я хочу, чтобы он был составлен в виде текста. Я думаю, что проблема в этой строке, которая предназначена для удаления разрывов строк путем замены новой строки, т. е. «(n)» на «»
Step4 = re.sub(r"(n)"," ",Step3)
print(Step4)
Полный код выглядит следующим образом:
f=open("/Applications/Python 3.9/cleaning text.txt",encoding='Latin-1')
raw=f.read()
#print(raw)
import re
import nltk
from nltk import word_tokenize
Data = re.split(r" ",raw)
for D in Data:
# print(str(raw) 'n')
Step1 = re.sub(r"(\.*)","",D)
# print(Step1)
Step2 = re.sub(r"(M)","hl",Step1)
# print(Step2)
Step3 = re.sub(r"([aa])","[a::]",Step2)
# print(Step3)
Step4 = re.sub(r"(n)"," ",Step3)
print(Step4)
Комментарии:
1. Не могли бы вы поделиться текстом в
cleaning text.txt
файле2. В строке» Данные = re.split(r»», необработанные) » вы создаете список строк. Вы должны иметь возможность заменять нежелательные символы непосредственно в строке raw.
Ответ №1:
Я думаю, что вам не нужно разбивать весь текст на список слово за словом. Вы можете предоставить необработанные данные в качестве входных данных для функции re.sub (). Если вы хотите удалить пробел из начала или конца необработанных данных, вы можете использовать для этого функцию strip ().
f=open("/Applications/Python 3.9/cleaning text.txt",encoding='Latin-1')
raw=f.read()
import re
raw = str(raw).strip()
Step1 = re.sub(r"(\.*)","",raw)
Step2 = re.sub(r"(M)","hl",Step1)
Step3 = re.sub(r"([aa])","[a::]",Step2)
Step4 = re.sub(r"(n)"," ",Step3)