哪些观察与带有 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 中的主题模型相关联的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:没有名为“sklearn.lda”的模块
python 使用GenSim的LDA和sklearn的示例