gensim lda模型 - 使用看不见的单词调用语料库上的更新

时间:2014-03-05 11:20:52

标签: lda gensim

我正在尝试使用gensim's lda模型。如果我用给定的语料库创建lda模型,然后我想用包含第一个语料库中没有看到的单词的新语料库来更新它,我该怎么做?当我尝试拨打lda_model.update(new_corpus)时,我收到以下错误:

/Library/Python/2.7/site-packages/gensim/models/ldamodel.pyc in inference(self, chunk, collect_sstats)
    361             Elogthetad = Elogtheta[d, :]
    362             expElogthetad = expElogtheta[d, :]
 -->363             expElogbetad = self.expElogbeta[:, ids]
    364 
    365             # The optimal phi_{dwk} is proportional to expElogthetad_k * expElogbetad_w.
   IndexError: index 57 is out of bounds for axis 1 with size 57

我用仅包含57个单词的语料库初始化了lda_model,这就是为什么我们看到大小57绑定的原因。然后我想用更多单词的语料库来调用它的更新,这就失败了。

我如何解决这个问题?我希望能够使用新单词更新我的lda模型,这可能是新单词吗?

1 个答案:

答案 0 :(得分:3)

不,您必须使用相同的字典(单词及其整数ID之间的映射)进行训练,更新和推理。

这意味着您可以使用新文档更新模型,但不能使用新的单词类型。

查看使用"散列技巧的HashDictionary课程"解决这个限制(但散列技巧有其自身的警告)。