是否可以使用LDA的Mallet实现绘制pyLDAvis?我没有LDA_Model的麻烦但是当我使用Mallet时我得到:
'LdaMallet' object has no attribute 'inference'
我的代码:
pyLDAvis.enable_notebook()
vis = pyLDAvis.gensim.prepare(mallet_model, corpus, id2word)
vis
答案 0 :(得分:5)
运行此行,在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
答案 1 :(得分:0)
我希望我能帮上忙。
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
答案 2 :(得分:0)
我发现这个 blog post 很有帮助,直接使用 MALLET 生成的状态文件,该文件也是使用 Gensim 的 Mallet 包装器生成的。