- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
Latent Dirichlet Allocation(LDA) 是一种主题模型,用于查找隐藏在一堆文档之下的变量(主题)。我正在使用 python gensim 包并遇到两个问题:
我打印出每个主题最常用的词(我尝试了 10、20、50 个主题),发现词的分布非常“平坦”:这意味着即使是最常用的词也只有 1 % 概率...
大多数主题都是相似的:这意味着每个主题的最常用词有很多重叠,并且这些主题的高频词几乎共享同一组词...
<我猜问题可能出在我的文档上:我的文档实际上属于一个特定的类别,例如,它们都是介绍不同网络游戏的文档。对于我的情况,LDA 是否仍然有效,因为文档本身非常相似,所以基于“词袋”的模型可能不是尝试的好方法?
谁能给我一些建议?谢谢!
最佳答案
我发现当语料库较小且更专注于特定主题时,NMF 的性能会更好。在约 250 份文档的语料库中,所有讨论同一问题的 NMF 能够提取 7 个不同的连贯主题。其他研究人员也报告了这一点......
"Another advantage that is particularly useful for the appli- cationpresented in this paper is that NMF is capable of identifying nichetopics that tend to be under-reported in traditional LDA approaches" (p.6)
Greene & Cross, Exploring the Political Agenda of the European Parliament Using a Dynamic Topic Modeling Approach, PDF
不幸的是,Gensim 没有 NMF 的实现,但它是 in Scikit-Learn .为了有效地工作,您需要向 NMF 提供一些 TFIDF 加权词向量,而不是像您对 LDA 所做的那样进行频率计数。
如果您习惯使用 Gensim 并以这种方式预处理所有内容,genesis 有一些实用程序可以将语料库转换为与 Scikit 兼容的顶级结构。但是我认为只使用所有 Scikit 实际上会更简单。有一个使用 NMF 的好例子 here .
关于python - 使用 LDA(主题模型): the distrubution of each topic over words are similar and "flat",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28677350/
Latent Dirichlet Allocation(LDA) 是一种主题模型,用于查找隐藏在一堆文档之下的变量(主题)。我正在使用 python gensim 包并遇到两个问题: 我打印出每个主题
我是一名优秀的程序员,十分优秀!