pyLDAvis与Mallet LDA实现:LdaMallet对象没有属性“推理”

时间:2018-05-15 00:12:49

标签: gensim topic-modeling mallet

是否可以使用LDA的Mallet实现绘制pyLDAvis?我没有LDA_Model的麻烦但是当我使用Mallet时我得到:

'LdaMallet' object has no attribute 'inference'

我的代码:

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

3 个答案:

答案 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 包装器生成的。