1

LDAvis提供了一种出色的可视化和探索主题模型的方法。LDAvis 需要 5 个参数:

  1. phi(维度数乘以主题数的矩阵)
  2. theta(具有维度的矩阵文档数乘以主题数)
  3. 每个文档的字数(整数向量)
  4. 词汇表(特征向量)
  5. 整个语料库中的词频(整数向量)

我的问题的简短版本是:在用 vowpal wabbit 拟合 LDA 模型后,如何导出 phi 和 theta?

theta 代表每个文档的主题混合,因此每个文档的总和必须为 1。phi 表示给定主题的术语的概率,因此每个主题的总和必须为 1。

在使用vowpal wabbit ( )运行 LDA 后,vw某种权重会存储在模型中。可以通过提供一个特殊文件来获得该模型的人类可读版本,词汇表中每个术语一个文档,同时停用学习(通过-t参数),例如

vw -t -i weights -d dictionary.vw --readable_model readable.model.txt

根据vowpal wabbit 的文档,所有列都期望readable.model.txt现在的第一个“代表每个单词的主题分布”。

您还可以使用vw, 即为文档集合生成预测

vw -t -i weights -d some-documents.txt -p predictions.txt

两者predictions.txtreadable.model.txt都有一个维度来反映输入(行)的数量和主题(列)的数量,它们都不是概率分布,因为它们的总和不等于 1(不是每行,也不是每列)。

我知道这vw不适合胆小的人,并且我需要一些编程/脚本,但我确信必须有某种方法从vw. 我已经被这个问题困扰了好几天了,请给我一些提示。

4

1 回答 1

0

我不知道如何直接将 pyLDAvis 与 Vowpal Wabbit 一起使用。但是,由于您已经在使用 python 工具,您可以一起使用 Gensim 包装器和 pyLDAvis。

VowpalWabbit 的 python 包装器在gensim (< 4.0.0) 中提供。您可以简单地使用 Gensim,就好像您在使用vwmodel2ldamodel.

如果您不熟悉 Vowpal Wabbit(以及一般的 LDA)的内部结构,此解决方法可能是最简单的方法。

于 2021-05-04T16:58:01.857 回答