潜在的Dirichlet分配,陷阱,提示和程序

Gre*_*ind 21 algorithm statistics nlp

我正在尝试使用Latent Dirichlet Allocation主题消除歧义和分配,我正在寻找建议.

  1. 哪个程序是"最好的",最好的是最容易使用,最佳先验估计,快速的组合
  2. 我如何结合我对话题性的直觉.假设我想我知道语料库中的某些项目实际上属于同一类别,就像同一作者的所有文章一样.我可以将其添加到分析中吗?
  3. 在登船之前我应该​​知道任何意想不到的陷阱或提示?

我更喜欢任何程序都有R或Python前端,但我希望(并接受)我将与C打交道.

Adi*_*rji 17

  1. http://mallet.cs.umass.edu/是IMHO最强大的即插即用LDA软件包..它使用Gibbs采样来估计主题,并且有一个非常简单的命令行界面,有很多额外的铃声-n-Whistles(一些更复杂的模型,超参数优化等)

  2. 最好让算法完成它的工作.可能存在LDA(和pLSI等)的变体,它们可以让你做一些半监督的事情......我现在还不知道.

  3. 我发现删除停止词和其他真正的高频词似乎提高了我的主题的质量(通过查看每个主题的顶部词,而不是任何严格的度量评估)..我猜词​​干/词形还原会有所帮助好.


Ben*_*Ben 6

  1. 你提到了R的偏好,你可以使用两个包topicmodels(慢)或lda(快).Python有deltaLDA,pyLDA,Gensim等.

  2. 使用指定主题或单词进行主题建模是非常棘手的,David Andrzejewski有一些似乎可以做到的Python代码.有一个C++实现监督LDA的位置.关于相关方法的大量论文(DiscLDA,Labeled LDA,但不是一个易于使用的形式,对我来说无论如何......

  3. 正如@ adi92所说,删除停用词,空格,数字,标点符号和词干都会改进很多东西.一个可能的缺陷是错误(或不适当)的主题数量.目前,对于给定大小的coprus等,有多少主题是最佳的,没有直接的诊断.MALLET (最快)有一些主题质量的测量,非常方便.


Gre*_*ind 1

除了通常的 来源之外,似乎讨论这个问题最活跃的领域是主题模型列表服务。根据我的初步调查,最容易理解的包是LDA Matlab 包

这根本不是轻量级的东西,所以我对很难找到好的资源并不感到惊讶。