pyLDAvis with Mallet LDA 实现:LdaMallet 对象没有属性'inference'



是否可以用LDA的Mallet实现绘制pyLDAvis?我对LDA_Model没有任何问题,但是当我使用Mallet时,我得到:

'LdaMallet' object has no attribute 'inference'

我的代码 :

pyLDAvis.enable_notebook()
vis = pyLDAvis.gensim.prepare(mallet_model, corpus, id2word)
vis

运行此行以在 pyLDAvis 之前将木槌模型的类转换为 LdaModel

[编辑]:编辑代码以改用 gensim 中的内置函数。我刚刚尝试过,但无法在转换后的木槌模型上使用 pyLDAvis 获得有意义的结果;主题似乎包含随机术语。以前有人遇到过吗?

import gensim    
model = gensim.models.wrappers.ldamallet.malletmodel2ldamodel(mallet_model)

从下面的链接得到这个,请浏览它,第 565 - 590 行

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/wrappers/ldamallet.py#L359

我希望我有所帮助。

from gensim.models.ldamodel import LdaModel
def convertldaGenToldaMallet(mallet_model):
model_gensim = LdaModel(
id2word=mallet_model.id2word, num_topics=mallet_model.num_topics,
alpha=mallet_model.alpha, eta=0,
)
model_gensim.state.sstats[...] = mallet_model.wordtopics
model_gensim.sync_state()
return model_gensim

我发现这篇博文很有帮助,直接使用MALLET生成的状态文件,该状态文件也是使用Gensim的Mallet包装器生成的。

相关内容

  • 没有找到相关文章

最新更新