2012-03-07 84 views
4

我已经学习了几个星期的LDA和Topic模型。但由于我的数学能力很差,我无法完全理解它的内部算法。我使用了GibbsLDA实现,输入了很多文档,并设置了题目数为100,我得到了一个名为“final.theta”的文件,其中存储了每个文档中每个主题的主题比例。这个结果是好的,我可以使用主题比例来做很多其他事情。 但是,当我尝试在LDA上Blei的C语言实现时,我只有一个名为final.gamma的文件,但我不知道如何将此文件转换为主题比例样式。 任何人都可以帮助我。 我了解到,LDA模型有很多改进的版本(如CTM,HLDA),如果我能找到类似于LDA的主题模型,我的意思是当我输入大量文档时,它可以直接输出主题比例文档。 非常感谢!LDA和主题模型

+0

+1为LDA参考 - 这是一个新的想法给我。谢谢。 – duffymo 2012-03-07 13:11:59

回答

1

我觉得跟Blei执行的问题是,你正在运行做变推论:

$ LDA INF [参数...]

当你想要做的话题估计,与:

$ LDA EST [参数...]

一旦运行,就会出现无论是在当前目录或由可选的最后一个参数指定的目录中的文件“final.beta”。然后运行包含在tar中的python脚本“topics.py”。这里的自述:http://www.cs.princeton.edu/~blei/lda-c/readme.txt描述了这一切,尤其是部分B和D.

(如果这仍然没有任何意义,让我知道)

至于改进,如CTM等:我不知道知道关于HLDA的任何事情,但我过去曾使用过LDA和CTM,我可以说这两者都不比其他更好 - 这是对不同数据更好的一种情况。 CTM假定文档是相关的,并且只要它是真实的,就使用该假设来改进结果。

希望这会有所帮助!

+0

谢谢你的帮助,但我想要的是如何将结果文件转换为话题比例?我的意思是theta。 – ShenYi 2012-03-12 03:00:08

+0

我认为,这个答案是误导性的。虽然OP询问主题比例(每个主题在文档中出现的次数 - theta),但答案是关于主题(分布在单词 - beta中)。 – rarry 2018-01-29 14:01:07

0

要获得E [θ]只是规范化每一行内的gammas。它来自Dirichlet分布的性质。