Matriz de documentos de término eficiente con NLTK
Estoy tratando de crear un término matriz de documentos con NLTK y pandas. Escribí la siguiente función:
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
para ejecutarlo
import nltk
from nltk.corpus import PlaintextCorpusReader
corpus_root = 'C:/Data/'
newcorpus = PlaintextCorpusReader(corpus_root, '.*')
x = fnDTM_Corpus(newcorpus)
Funciona bien para pocos archivos pequeños en el corpus pero me da unaMemoryError cuando intento ejecutarlo con un corpus de 4,000 archivos (de aproximadamente 2 kb cada uno).
¿Me estoy perdiendo de algo?
Estoy usando un pitón de 32 bits. (Estoy en Windows 7, SO de 64 bits, CPU Core Quad, 8 GB de RAM). ¿Realmente necesito usar 64 bits para un corpus de este tamaño?