195145 個のドキュメント、6636308 個の機能、188901082 個のゼロ以外のエントリで LAD を実行する gensim チュートリアルを行います。コードは簡単です:
from gensim import corpora, models, similarities
class MyCorpus(object):
def __iter__(self):
for line in open('/home/pda/xxz149/LDA/DrugPatents.csv'):
# assume there's one document per line, tokens separated by ','
yield dictionary.doc2bow(line.lower().split(','))
dictionary = corpora.Dictionary.load('/home/pda/xxz149/LDA/DrugPatent.dict')
corpus = MyCorpus()
lda = models.ldamodel.LdaModel(corpus, num_topics = 300,id2word=dictionary,distributed = False,chunksize = 15, passes = 1 )
lda.save('/home/pda/xxz149/LDA/lda_DrugPatent.model')
しかし、私は値のエラーを満たしています:
File "/usr/lib/python2.6/site-packages/gensim-0.10.0rc1-py2.6.egg/gensim/models/ldamodel.py", line 79, in __init__
self.sstats = numpy.zeros(shape)
ValueError: array is too big.
gensim はメモリ フレンドリーですが、なぜこのようなことが起こるのでしょうか? どうすれば乗り切れますか?