PyLDAvis 可视化与生成的主题不一致

PyLDAvis visualisation does not align with generated topics

我正在使用 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:

示例 2:

这是已知错误还是正常现象? 有人可以帮忙吗?

默认情况下,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