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

问题描述 投票:4回答:2

我有一个关于测量/计算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 to gensim wrapper(我已经看到包装器反过来)来生成Topic Coherence?

要么

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

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

如果任何人对任何类似的实现有任何了解,或者你可以指出我正确的方向为此创建一个手动方法,那将是伟大的。谢谢!

*旁注:我理解scikit-learn可用于性能测量的困惑和对数似然,但这些并不像我读过的那样具有预测性。

scikit-learn nlp gensim lda topic-modeling
2个回答
1
投票

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

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

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

通过循环可以轻松实现所需矢量的总和。您可以找到“手动”coherence calculation for NMF的代码示例。当然,计算取决于具体的度量,但sklearn应该很容易地返回分析所需的数据。

资源

我不清楚为什么你会明确地排除gensim - 主题一致性管道相当广泛,文档存在。

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

几个连贯性测量的公式可以在本文here中找到。


0
投票

Gensim是独家文本库。

它功能更强大,功能更丰富,可用于文本分析。

请退房,

LDA MALLET - It's more accurate than other LDA implementations

DISTRIBUTED LDA - Makes LDA Faster using Parallel Programming

© www.soinside.com 2019 - 2024. All rights reserved.