【发布时间】:2021-04-19 23:42:19
【问题描述】:
LDAvis 提供了一种可视化和探索主题模型的绝佳方式。 LDAvis 需要 5 个参数:
- phi(维度数乘以主题数的矩阵)
- theta(维度为文档数乘以主题数的矩阵)
- 每个文档的字数(整数向量)
- 词汇表(字符向量)
- 整个语料库中的词频(整数向量)
我的问题的简短版本是:用 vowpal wabbit 拟合 LDA 模型后,如何导出 phi 和 theta?
theta 表示每个文档的主题混合,因此每个文档的总和必须为 1。 phi 表示给定主题的术语的概率,因此每个主题的总和必须为 1。
在使用vowpal wabbit (vw) 运行 LDA 后,某种权重会存储在模型中。可以通过提供一个特殊文件来获取该模型的人类可读版本,词汇表中每个术语一个文档,同时停用学习(通过-t 参数),例如
vw -t -i weights -d dictionary.vw --readable_model readable.model.txt
根据documentation of vowpal wabbit,所有列都期望readable.model.txt 的第一个现在“代表每个单词的主题分布”。
您还可以使用vw 生成预测,即针对文档集合
vw -t -i weights -d some-documents.txt -p predictions.txt
predictions.txt 和 readable.model.txt 都有一个维度来反映输入(行)和主题(列)的数量,它们都不是概率分布,因为它们不总和为 1(不是每行,也不是每列)。
我知道vw 不适合胆小的人,我需要一些编程/脚本,但我确信必须有某种方法来导出 theta 和 phi来自vw 的一些输出。我已经被这个问题困扰了好几天了,请给我一些提示。
【问题讨论】:
标签: lda vowpalwabbit pyldavis