Я пытаюсь создать матрицу терминов документов с NLTK и pandas. Я написал следующую функцию:
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-битный питон. (am на Windows 7, 64-битная ОС, Core Quad CPU, 8 ГБ оперативной памяти). Действительно ли мне нужно использовать 64 бит для корпуса такого размера?