哪些观察与带有 sklearn 包实现的 LDA 中的主题模型相关联

Posted

技术标签:

【中文标题】哪些观察与带有 sklearn 包实现的 LDA 中的主题模型相关联【英文标题】:Which observations are associated to the topic model in LDA with sklearn package implementation 【发布时间】:2017-03-17 22:37:46 【问题描述】:

我已经成功实现了这个example in Sklearn 并且我可以很好地看到主题,但是我如何恢复到形成这些主题的观察结果?我知道使用 SAS 企业矿工可以做到这一点,但我不知道如何在 sklearn 中做到这一点。 任何帮助,将不胜感激!谢谢。

【问题讨论】:

【参考方案1】:

LDA 中的transform 方法和NMF 有助于给出属于主题的观察概率。

【讨论】:

【参考方案2】:

NMF(非负矩阵分解)将正矩阵分解为两个正矩阵的乘积,如下所示。

在您的情况下,V 是从您的文本语料库中获得的 TF-IDF 矩阵。 NMF 将其分解为 W,称为 topic 矩阵,因为每列代表一个主题(每一行是该主题的代表词)和 H,称为 activation 矩阵(权重)。

因此,您的每个文本语料库都是主题的线性组合。所以你不能真正谈论主题成员 - 哪个文本属于哪个主题 - 因为它可以在一定程度上属于所有主题。

【讨论】:

我能够弄清楚哪些观察结果与哪个主题相关。在 LDA 和NMF 中使用了transform 方法。不过感谢您的帮助!【参考方案3】:

当您在处理数据之前加载数据时,fetch_20newsgroups 方法正是这样做的。

Here 是函数文档的链接,如果您想了解它是如何工作的。

基本上,当您使用 sklearn datasets 时,您会导入模块 datasets 并调用一些函数来处理本地数据集目录中的数据.

这里是你可以找到数据的地方:

它包含一个带有一些 csv 文件的 data 目录:

【讨论】:

我不确定我们说的是不是同一个问题。例如,我有 30 个主题,我希望能够查看哪些观察对应于主题 2,哪些观察对应于主题 15,等等。20newsgroup 函数只是抓取数据集,以便您可以对它做任何您想做的事情。跨度>

以上是关于哪些观察与带有 sklearn 包实现的 LDA 中的主题模型相关联的主要内容,如果未能解决你的问题,请参考以下文章

sklearn中带有词袋和附加情感特征的文本分类器

ImportError:没有名为“sklearn.lda”的模块

LDA 实战技巧

python 使用GenSim的LDA和sklearn的示例

带有 SKLEARN、PANDAS 和 NUMPY 问题的 Python 部署包?

您可以使用 LDA(线性判别分析)作为 sklearn 管道的一部分进行预处理吗?