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

标签 python gensim lda topic-modeling mallet

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

enter image description here

例子2: enter image description here

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

最佳答案

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

相关文章:

python - 了解 Gensim LDA 模型中的参数

classification - 获取 doc2vec 中未见过的段落的段落表示

python - Gensim Doc2vec Finalize_vocab 内存错误

python - 动态创建 lambda 函数

python - 在我的 Eclipse 项目中重命名源文件logging.py之一后,无法导入logging.py

python - 谁能告诉我 Gensim 使用的模型(skipgram/CBOW)?

python - 将 pyLDAvis 图导出为 pdf

python - LDA主题建模输入数据

python - 无法在 django 中为 forms.ChoiceField 设置初始值

python - PySpark:如何在 rdd join 期间从左表中选择 *