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

时间:2015-02-23 15:34:17

标签: python lda topic-modeling gensim

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

  1. 我打印出每个主题最常用的单词(我试过10,20,50个主题),发现单词的分布非常“扁平”:意思是即使是最常用的单词也只有1个%概率......

  2. 大多数主题都是相似的:意味着每个主题的最常用单词重叠很多,而且这些主题的高频词语几乎都是相同的单词集......

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

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

1 个答案:

答案 0 :(得分:0)

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

  

“对应用程序特别有用的另一个优点   本文提出的是NMF能够识别利基   在传统的LDA方法中往往报告不足的主题“(第6页)

     

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

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

如果你已经习惯了Gensim并且已经预处理了一切,那么genesis有一些实用工具来转换语料库顶级的Scikit兼容结构。但是我认为只使用所有Scikit实际上会更简单。有一个使用NMF here的好例子。