Python -2,7 NLTK сохранение и открытие файлов с данными из класса типа nltk.Text - PullRequest
0 голосов
/ 10 февраля 2020

Я нахожусь в процессе использования NLTK для анализа некоторых очень больших текстовых файлов (ie 2 ГБ простого текста), которые, я надеюсь, станут частью моей кандидатской диссертации (не в области компьютерных наук - я не инженер-программист) , Рабочий процесс для этого типа процесса заключается в преобразовании из ASCII (str) в токены (список) в nltk.Text (класс). Поскольку файлы очень большие и занимают некоторое время для обработки, я хотел бы иметь возможность сохранять файлы на различных этапах этого рабочего процесса, чтобы не повторять обработку во время последующих сеансов. Преобразование и сохранение ASCII и токенов не является проблемой, равно как и сохранение данных nltk.Text:

def savetextfile(filename, text):
    f=open(filename,'w')
    for a in range(len(text)):
    b=text[a].encode('ascii','ignore')
    f.writelines((b)+'\n')

Это вводит каждый элемент в текстовом объекте в новую строку. У меня проблема с чтением этих данных. Я могу создать экземпляр объекта класса nltk.Text следующим образом:

text=nltk.Text([0],'')

, но если я тогда попытаюсь сконструировать al oop, чтобы вернуть данные обратно в объект:

with codecs.open('testdata.txt', 'r', encoding='utf-8-sig') as filehandle:
    filecontents=filehandle.readlines()
    for line in filecontents:
        current_place = (line[:-1]).encode('ascii','ignore')
        print(current_place) #just for testing
        type(current_place) #just for testing
        text=nltk.Text([a],current_place)
        a += 1

в результате вводится в текстовый объект количество строк в файле testdata.txt. Как вы можете видеть, я обращаюсь к этому типу класса, как будто это одномерный массив, но это не так, и я предполагаю, что документация либо плохая, либо вообще отсутствует (ну, я не могу найти это все равно). Я был бы очень благодарен за любые указатели, спасибо.

...