我正在使用 PyLDAvis 可视化 Mallet 的 LDA 结果。
在此之前,我需要 gensim 库的包装器:
model = gensim.models.wrappers.ldamallet.malletmodel2ldamodel(model_list[8])
当我打印找到的主题时,它们是从 0-10 排序的。
但是,当我使用 pyLDAvis 可视化主题时,主题顺序 (0-10) 与打印主题不一致。
示例:
(5,
'0.042*"euro" + 0.030*"smartpho" + 0.022*"camera" + 0.020*"display" + '
'0.018*"model" + 0.016*"picture" + 0.012*"price" + 0.010*"android"')
如您所见,本主题是关于智能手机的。
但是,当我使用 pyLDAvis 可视化模型时,主题 5 不是关于智能手机,而是关于另一个主题(例如汽车)。智能手机主题不再是 5,而是主题 1。
示例 1:
这是已知错误还是正常现象? 有人可以帮忙吗?
最佳答案
默认情况下,pyLDAvis 按主题比例对主题进行排序——要保持原始排序顺序,请将 sort_topics=False
传递给 pyLDAvis.prepare()
。请注意,pyLDAvis 主题仍将相差一个(即,pyLDAvis 中的主题 1 将是 gensim 中的主题 0)。
这里有一个类似的问题:Is there any way to match Gensim LDA output with topics in pyLDAvis graph?
以及 pyLDAvis 存储库上的相关问题:https://github.com/bmabey/pyLDAvis/issues/127
关于python - PyLDAvis 可视化与生成的主题不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59322409/