lea*_*guy 8 nlp lda gensim topic-modeling scikit-learn
我有一个关于测量/计算 scikit-learn 中构建的 LDA 模型的主题一致性的问题。
主题一致性是衡量给定 LDA 主题模型的人类可解释性的有用指标。Gensim 的CoherenceModel允许为给定的 LDA 模型(包括几个变体)计算 Topic Coherence。
我对利用scikit-learn 的 LDA而不是gensim 的 LDA 感兴趣,以便于使用和记录(注意:我想避免使用 gensim 到 scikit-learn 包装器,即实际上利用 sklearn 的 LDA)。根据我的研究,似乎没有与 Gensim 的 CoherenceModel 等效的 scikit-learn。
有没有办法:
1 - 将 scikit-learn 的 LDA 模型输入到 gensim 的 CoherenceModel 管道中,通过手动将 scikit-learn 模型转换为 gensim 格式,或者通过 scikit-learn 到 gensim 包装器(我已经看到了包装器)来生成主题一致性?
或者
2 - 从 scikit-learn 的 LDA 模型和 CountVectorizer/Tfidf 矩阵手动计算主题一致性?
我在网上对这个用例的实现做了很多研究,但还没有看到任何解决方案。我唯一的线索是科学文献中记录的方程式。
如果有人对任何类似的实现有任何了解,或者如果您能指出我为此创建手动方法的正确方向,那就太好了。谢谢!
*旁注:我知道在 scikit-learn 中可以使用 perplexity 和 log-likelihood 进行性能测量,但从我读到的内容来看,这些并没有那么预测。
小智 3
将 scikit-learn\xe2\x80\x99s LDA 模型输入 gensim\xe2\x80\x99s CoherenceModel 管道
\n\n据我所知,没有“简单的方法”可以做到这一点。您必须手动重新格式化 sklearn 数据结构才能与 gensim 兼容。我自己没有尝试过这样做,但我认为这是一个不必要的步骤,可能需要很长时间。有一个旧的 Python 2.7 尝试gensim-sklearn-wrapper您可能想看看,但它似乎已被弃用 - 也许您可以从中获得一些信息/灵感。
\n\n从 scikit-learn\xe2\x80\x99s LDA 模型和 CountVectorizer/Tfidf 矩阵手动计算主题一致性?
\n\n您可以通过循环轻松实现所需向量的求和。您可以找到NMF 的“手动”相干性计算的代码示例。当然,计算取决于具体的测量,但 sklearn 应该很容易地返回分析所需的数据。
\n\n资源
\n\n我不清楚为什么你会明确排除 gensim - 主题连贯性管道非常广泛,并且存在文档。
\n\n例如,请参阅这三个教程(在 Jupyter 笔记本中)。
\n\n\n\n几种一致性度量的公式可以在本文中找到。
\n