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



我有一个关于测量/计算scikit-learn中内置LDA模型的主题一致性的问题。

主题一致性是衡量给定LDA主题模型的人类可解释性的有用指标。Gensim的一致性模型允许为给定的LDA模型计算主题一致性(包括几个变体(。

我有兴趣利用scikit-learn的LDA而不是gensim的LDA,以方便使用和文档(注意:我想避免使用gensim来scikit-learn包装器,即实际利用sklearn的LDA(。根据我的研究,似乎没有scikit-learn可以等同于Gensim的CoherenceModel。

有没有办法:

1 - 将scikit-learn的LDA模型馈送到gensim的CoherenceModel管道中,通过手动将scikit-learn模型转换为gensim格式或通过scikit-learn到gensim包装器(我已经看到了包装器相反的方式(来生成主题一致性?

2- 从scikit-learn的LDA模型和CountVectorizer/Tfidf矩阵手动计算主题一致性?

我已经在网上对这个用例的实现做了相当多的研究,但没有看到任何解决方案。我唯一的线索是科学文献中记录的方程式。

如果有人对任何类似的实现有任何了解,或者如果您能指出我为此创建手动方法的正确方向,那就太好了。谢谢!

*旁注:我知道scikit-learn中提供了用于性能测量的困惑和对数可能性,但从我所读到的内容来看,这些并不能预测。

将scikit-learn的LDA模型输入gensim的CoherenceModel管道

据我所知,没有"简单的方法"可以做到这一点。您必须手动重新格式化 sklearn 数据结构以与 gensim 兼容。我自己没有尝试过,但这对我来说是一个不必要的步骤,可能需要很长时间。有一个旧的Python 2.7尝试使用gensim-sklearn包装器,你可能想看看,但它似乎已被弃用 - 也许你可以从中获得一些信息/灵感。

从scikit-learn的LDA模型和CountVectorizer/Tfidf矩阵手动计算主题一致性?

您需要的向量求和可以通过循环轻松实现。您可以找到 NMF 的"手动"一致性计算的代码示例。当然,计算取决于具体的测量值,但sklearn应该很容易地返回分析所需的数据。

资源

我不清楚为什么你会断然排除 gensim - 主题一致性管道非常广泛,并且存在文档。

例如,请参阅这三个教程(在 Jupyter 笔记本中(。

  • Gensim 中主题一致性管道的演示
  • 使用主题一致性执行模型选择
  • 电影数据集上一致性管道的基准测试

几种一致性措施的公式可以在本文中找到。

最新更新