关于nlp:LDA主题模型性能-scikit-learn的主题一致性实现

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中的主题一致性管道演示
  • 使用主题一致性执行模型选择
  • 电影数据集上的一致性流水线的基准测试

在这里可以找到几种相干测度的公式。