Предположим, что я прочитал файл (файл .txt) в Python 3. Затем мне нужно разобрать содержимое одного списка в несколько списков с учетом пробелов и \n
средств разбиения предложений исходного файла.
Мне нужно отдельно написать и сохранить новый файл, содержащий список списков.
После этой операции в каталоге должно быть 2 файла, один из которых содержит entire text in a single list
ипрочее containing only the list of lists
.
Я пытался, но пока не удалось, любая помощь приветствуется.
Код, по которому я бью, следующий:
import nltk, re
import string
from collections import Counter
from string import punctuation
from nltk.tokenize import TweetTokenizer, sent_tokenize, word_tokenize
from nltk.corpus import gutenberg, stopwords
from nltk.stem import WordNetLemmatizer
def remove_punctuation(from_text):
table = str.maketrans('', '', string.punctuation)
stripped = [w.translate(table) for w in from_text]
return stripped
def preprocessing():
with open("I:\\(2018 - 2019)\\College Desktop\\Pen Drive 8 GB\\PDF\\Code\\Books Handbooks\\Books Handbooks Text\\b1.txt", encoding="utf-8") as f:
tokens_sentences = sent_tokenize(f.read())
tokens = [[word.lower() for word in line.split()] for line in tokens_sentences]
global stripped_tokens
stripped_tokens = [remove_punctuation(i) for i in tokens]
sw = (stopwords.words('english'))
filter_set = [[token for token in sentence if (token.lower() not in sw and token.isalnum() and token.isalpha() and re.findall(r"[^_ .'\"-[A-Za-z]]+", token))] for sentence in stripped_tokens]
lemma = WordNetLemmatizer()
lem = []
for w in filter_set:
lem.append([wi for wi in map(lemma.lemmatize, w)])
return lem
result = preprocessing()
with open('I:\\(2018 - 2019)\\College Desktop\\Pen Drive 8 GB\\PDF\\Code\\Books Handbooks\\Books Handbooks Text\\b1_list.txt', "w", encoding="utf-8") as f1:
for e in result[:3]:
f1.write(str(e))
preprocessing()
Я разочарован, потому что программа выполняется правильно.Нет ошибки, но вывод не так, как хотелось бы.Например, в приведенном выше коде я хочу написать первые 3 предложения в новом файле.
Но когда я открываю новый файл, он показывает мне 3 пустых списка, что-то вроде [] [] [].Почему это так?