LDA Topic Model Performance - Topic Coherence Implementation for scikit-learn
我对围绕scikit-learn构建的LDA模型测量/计算主题一致性有疑问。
主题一致性是衡量给定LDA主题模型的人类可解释性的有用度量。 Gensim的CoherenceModel允许针对给定的LDA模型(包括多个变体)计算主题相关性。
我有兴趣利用scikit-learn的LDA而不是gensim的LDA来简化易用性和文档编制(请注意:我想避免使用gensim来进行scikit-learnpackage器,即实际上是利用sklearna的LDA)。根据我的研究,似乎没有与Gensima的CoherenceModel等效的scikit学习。
是否有办法:
1-将scikit-learna的LDA模型输入gensima的CoherenceModel管道,方法是通过手动将scikit-learn模型转换为gensim格式,或者通过scikit-learn转换为gensimpackage器(我已经看到了package器其他方法)以生成主题连贯性?
或
2-从scikit-learna的LDA模型和CountVectorizer / Tfidf矩阵手动计算主题一致性?
我已经对该在线用例的实现进行了大量研究,但是还没有找到任何解决方案。我仅有的线索是科学文献中记录的方程式。
如果任何人都对任何类似的实现有任何了解,或者如果您可以为我指出为此创建手动方法的正确方向,那就太好了。谢谢!
*侧面说明:我了解scikit-learn中提供了困惑度和对数似然性来进行性能测量,但是从我所阅读的内容来看,这些并不能作为预测性内容。
将scikit-learna的LDA模型输入到gensima的CoherenceModel流水线中
据我所知,没有"简单的方法"可以做到这一点。您必须手动重新格式化sklearn数据结构,以与gensim兼容。我自己没有尝试过,但这使我感到震惊,因为这是不必要的步骤,可能需要很长时间。您可能想看看gensim-sklearn-wrapper的旧python 2.7尝试,但似乎已过时-也许您可以从中获得一些信息/启发。
从scikit-learna的LDA模型和CountVectorizer / Tfidf矩阵中手动计算主题一致性?
通过循环可以轻松实现所需向量的求和。您可以找到用于NMF的"手动"相干计算的代码示例。当然,计算取决于具体的度量,但是sklearn应该可以很容易地向您返回分析所需的数据。
资源
我不清楚您为什么会明确排除gensim-主题一致性管道非常广泛,并且存在文档。
例如,参见这三个教程(在Jupyter笔记本中)。
- Gensim中的主题一致性管道演示
- 使用主题一致性执行模型选择
- 电影数据集上的一致性流水线的基准测试
在这里可以找到几种相干测度的公式。