2016-08-11 65 views
0

据我所知,我需要修复Python/R中LDA建模的主题数量。但是,假设我设置了topic=10,而结果显示一个文件,九个主题都是关于“健康”的,这个文件的主题数量确实是2。如何在不检查每个主题的关键词并手动计算真正独特的主题的情况下发现它?查找Python/R中LDA之后的不同主题的数量

P.S.我用Google搜索了解到,按主题列出了词汇词汇表(Word Banks),我可以根据单词列表将每个主题与主题配对。如果几个主题属于同一主题,那么我可以将它们组合成一个不同的主题。我想这是一种值得尝试的方法,我在寻找更聪明的想法,谢谢。

回答

1

首先,你的问题那种假定由LDA确定的主题对应于实际语义主题 - 我会很小心的是假设,看看分配给要解释这样的主题的文件,也就是说,由于LDA通常会分配随机的额外词汇,因此可以将两个或更多个实际主题合并为一个(尤其是总体上只有很少的主题),并且可能根本没有意义(“垃圾”主题)。

在回答你的问题,然后:一个“独特的若干议题”的想法是不明确的。大多数我见过的工作,使用简单的阈值来决定,如果一个文件的主题比例“显著”。

更原则的方法是查看文档中出现的分配给该主题的单词的比例 - 如果“明显”高于平均水平,则该主题在文档中很重要,但同样涉及到有些武断的门槛我不认为任何东西都可以剔除一些例子在这里做出有意义的选择。

我应该注意到,根据您如何设置文档主题以前(通常为beta),您可能没有将每个文档集中在几个主题上(似乎是您的情况),而是更平均混合。在这种情况下,“不同数量的主题”开始变得不那么有意义。

P.S.使用在您的应用程序中有意义的单词列表并不是确定感兴趣的候选主题的不好方法。如果您的模型中有很多主题,则特别有用(:

PPS:我希望您有合理数量的文档(至少有几千个),因为LDA往往意义不大,意义不大,捕获机会词共现而不是那些有意义PPPS :我会去与参数优化主题(由槌LDA实现提供)更多数量的 - 这有效地选择课题的合理数量模型,与分配给很少说话“额外”主题。