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)
コーパス内のいくつかの小さなファイルではうまく機能しますが 、4,000 個のファイル (それぞれ約 2 kb) のコーパスで実行しようとすると、 MemoryErrorが発生します。
何か不足していますか?
私は32ビットのpythonを使用しています。(Windows 7、64 ビット OS、Core Quad CPU、8 GB RAM を使用しています)。このサイズのコーパスに本当に 64 ビットを使用する必要がありますか?