эффективная матрица срочных документов с NLTK
Я пытаюсь создать матрицу срочных документов с NLTK и пандами. Я написал следующую функцию:
def fnDTM_Corpus(xCorpus):
import pandas as pd
'''to create a Term Document Matrix from a NLTK Corpus'''
fd_list = []
for x in range(0, len(xCorpus.fileids())):
fd_list.append(nltk.FreqDist(xCorpus.words(xCorpus.fileids()[x])))
DTM = pd.DataFrame(fd_list, index = xCorpus.fileids())
DTM.fillna(0,inplace = True)
return DTM.T
запустить его
import nltk
from nltk.corpus import PlaintextCorpusReader
corpus_root = 'C:/Data/'
newcorpus = PlaintextCorpusReader(corpus_root, '.*')
x = fnDTM_Corpus(newcorpus)
Это хорошо работает для нескольких небольших файлов в корпусе, но дает мнеMemoryError когда я пытаюсь запустить его с корпусом из 4000 файлов (около 2 КБ каждый).
Я что-то пропустил?
Я использую 32-битный питон. (Я на Windows 7, 64-разрядная ОС, процессор Core Quad, 8 ГБ ОЗУ). Мне действительно нужно использовать 64-битный корпус для такого размера?