使用LDA(主题模型):每个主题对单词的分布是相似的并且"平坦"

Rub*_*uby 6 python lda gensim topic-modeling

Latent Dirichlet Allocation(LDA)是一个主题模型,用于查找一堆文档的潜在变量(主题).我正在使用python gensim包,有两个问题:

--- 1,我打印出每个主题最常用的单词(我试过10,20,50个主题),发现单词的分布非常"平淡":意思是即使是最常用的单词也只有1%可能性...

--- 2,大多数主题都是相似的:意味着每个主题的最常用单词重叠很多,主题分享几乎相同的高频词组...

我想问题可能是由于我的文档:我的文档实际上属于特定类别,例如,它们都是介绍不同在线游戏的文档.对于我的情况,LDA是否仍然有效,因为文件本身非常相似,所以基于"词袋"的模型可能不是一个好的尝试方法?

有人能给我一些建议吗?谢谢!

Jam*_*son 2

我发现当语料库较小并且更集中于特定主题时,NMF 表现更好。在大约 250 个文档的语料库中,所有文档都讨论同一问题,NMF 能够提取 7 个不同的连贯主题。其他研究人员也报告了这一点......

“对于本文提出的应用特别有用的另一个优点是 NMF 能够识别在传统 LDA 方法中往往被低估的利基主题”(第 6 页)

Greene & Cross,使用动态主题建模方法探索欧洲议会的政治议程,PDF

不幸的是 Gensim 没有 NMF 的实现,但它在 Scikit-Learn 中。为了有效地工作,您需要向 NMF 提供一些 TFIDF 加权词向量,而不是像 LDA 那样提供频率计数。

如果您习惯了 Gensim 并已经预处理了所有内容,那么 genesis 有一些实用程序可以转换语料库顶级 Scikit 兼容结构。但我认为仅使用所有 Scikit 实际上会更简单。这里有一个使用 NMF 的好例子。