Как разделить / разобрать и записать содержимое текстового файла (один список) в несколько списков с помощью Python 3? - PullRequest
0 голосов
/ 25 октября 2018

Предположим, что я прочитал файл (файл .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 пустых списка, что-то вроде [] [] [].Почему это так?

...