在Python/R中查找LDA之后不同主题的数量

在Python/R中查找LDA之后不同主题的数量,python,r,lda,topic-modeling,text-analysis,Python,R,Lda,Topic Modeling,Text Analysis,据我所知,我需要确定Python/R中LDA建模的主题数量。但是,假设我设置了topic=10,结果显示,对于一个文档,九个主题都是关于“健康”的,而该文档的主题数量实际上是2。我如何在不检查每个主题的关键词和手动计算真正不同的主题的情况下发现它 另外,我在谷歌上搜索了一下,发现有按主题列出的词汇词表(词库),我可以根据词表将每个主题与一个主题配对。如果几个主题属于同一主题,那么我可以将它们组合成一个不同的主题。我想这是一种值得尝试的方法,我正在寻找更聪明的想法,谢谢。首先,你的问题有点假设LD

据我所知,我需要确定Python/R中LDA建模的主题数量。但是,假设我设置了
topic=10
,结果显示,对于一个文档,九个主题都是关于“健康”的,而该文档的主题数量实际上是
2
。我如何在不检查每个主题的关键词和手动计算真正不同的主题的情况下发现它


另外,我在谷歌上搜索了一下,发现有按主题列出的词汇词表(词库),我可以根据词表将每个主题与一个主题配对。如果几个主题属于同一主题,那么我可以将它们组合成一个不同的主题。我想这是一种值得尝试的方法,我正在寻找更聪明的想法,谢谢。

首先,你的问题有点假设LDA确定的主题对应于真正的语义主题-我会非常小心这个假设,并查看分配给你想要以这种方式解释的主题的文档和单词,由于LDA通常会随机分配额外的单词,因此可以将两个或多个实际主题合并为一个主题(尤其是总体主题很少),并且可能根本没有意义(“垃圾”主题)

那么在回答你的问题时:“不同数量的主题”的概念一点也不清楚。我看到的大多数工作都使用一个简单的阈值来确定文档主题的比例是否“重要”

一种更具原则性的方法是查看文档中出现的分配给该主题的词的比例——如果它“显著”高于平均值,则该主题在文档中是重要的,但同样,这涉及到一个任意的阈值。我认为没有什么能比仔细阅读一些例子来做出有意义的选择更好的了

我应该注意到,根据您在之前(通常是beta版)如何设置文档主题,您可能不会让每个文档只关注几个主题(就像您的情况一样),而是更均匀的混合。在这种情况下,“不同数量的主题”开始没有什么意义

另外,使用在你的应用程序中有意义的单词列表是确定感兴趣的候选主题的好方法。如果模型中有许多主题(:

p.p.S.:我希望你有一个合理数量的文档(至少几千份),因为LDA往往不太有意义,因为它捕捉的是单词共现的机会,而不是有意义的。 P.P.P.S.:我会选择更多的参数优化主题(由Mallet LDA实施提供)-这有效地为您的模型选择了合理数量的主题,很少有词指定给“额外”主题