【发布时间】:2019-02-05 17:58:29
【问题描述】:
我有一个关于测量/计算 scikit-learn 中构建的 LDA 模型的主题连贯性的问题。
主题一致性是衡量给定 LDA 主题模型的人类可解释性的有用指标。 Gensim 的CoherenceModel 允许为给定的 LDA 模型计算主题连贯性(包括几个变体)。
我有兴趣利用 scikit-learn's LDA 而不是 gensim's 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 中可以使用困惑度和对数似然来进行性能测量,但从我所阅读的内容来看,这些并不具有预测性。
【问题讨论】:
-
我没有直接回答你的问题。但是,为什么不直接使用 gensim 来拟合新的 LDA 模型呢?我在 scikit-learn 中没有使用 LDA 的经验,但我知道 gensim 非常快速且好用
-
老实说,当语料库变得非常大并且您要求 50 多个主题时,Gensim 自己的 LDA 并没有那么快。它的结果也往往比 MALLET 的结果差。我和作者有同样的问题。
标签: scikit-learn nlp gensim lda topic-modeling