如题
我在用gensim做主体模型的时候,抛出一个MemoryError
我是之前将爬下来的中文语料库通过MmCorpus存到了mm文档中,相应的dictionary也存到了dict文件中,但是在生成LDA模型的时候抛出了一个memoryerror.但是我之前用小范围数据测试的时候是能够生成完整的LDA模型的,求大神解救,纠结了3天了
File "C:\Python34\lib\site-packages\gensim\models\ldamodel.py", line 64, in dirichlet_expectation
result = psi(alpha) - psi(numpy.sum(alpha, 1))[:, numpy.newaxis]
我看异常报告里面是这一句有问题,我之前设置的alpha也是1,但是不起作用
是不是数据太大了,你不要一次保存这么多数据,分块保存到多个文件呢
lda模型中的空间复杂度主要取决于O(KV),其中K是主题的数量,V是字典大小,但是过程中由于复制等操作,大概需要空间是3KV大小,比如你字典大小为100w,topic numbers=100,
数组每位是double型,故为8Byte,那么所需要的空间复杂度就是3*8*10^8Byte=2.4G。所以硬件无法提升,出现memoryerror只能减少topic或者字典大小,
其中filter_extremes可以降低字典大小,