在新文档上运行经过训练的主题模型时出错

时间:2015-03-03 04:10:04

标签: python lda topic-modeling gensim

我在postCorp中有文档列表。我正在尝试使用lda model使用gensim来训练主题和相应的概率。 以下是我所在的代码段: 获取每个文档 将其转换为BOW 将它传递给lda以返回主题和 并且还计算每个主题在所有文档上的平均概率。

with open('ldaOutputPost','w') as out:
    topicMean = defaultdict(float)
    count = 0
    for corp in postCorp:
        count += 1
        for (t,p) in lda[dictionary.doc2bow(corp)]:
            topicMean[t] += p 
        out.write(str(lda[dictionary.doc2bow(corp)])+'\n')

如果我只传递一个文档的弓,这可以正常工作。但是,当我遍历所有文件时,它会给我以下错误,我无法找出原因?

Traceback (most recent call last):
  File "C:\test.py", line 110, in <module>
    for (t,p) in lda[dictionary.doc2bow(corp)]:
  File "C:\Python27\lib\site-packages\gensim\models\ldamodel.py", line 752, in __getitem__
    gamma, _ = self.inference([bow])
  File "C:\Python27\lib\site-packages\gensim\models\ldamodel.py", line 380, in inference
    expElogbetad = self.expElogbeta[:, ids]
IndexError: index 6770 is out of bounds for axis 1 with size 6770

任何人都可以帮忙。

P.S:BOW没有问题因为lda[dictionary.doc2bow(preCorp[0])工作正常并且给我正确的输出。

编辑: postCorp是列表,其中内部列表表示文档中所有单词的列表。而字典是dictionary = corpora.Dictionary(combined)这里合并的是所有主题模型都在其上训练的语料库。

0 个答案:

没有答案