我正在使用Latent Dirichlet Allocation和来自六个不同来源的新闻数据集。我对主题演变,出现感兴趣,并希望比较各种来源是如何相似的,并且随着时间的推移彼此不同。我知道有许多修改过的LDA算法,例如Author-Topic模型,The Topics Over Time等。
我的问题是这些备用模型规范中很少有以任何标准格式实现。有些是Java版本,但大多数仅作为会议论文存在。我自己实现其中一些算法的最佳方法是什么?我非常精通R和jags,并且在给出足够长的时间内可以在Python中绊倒。我愿意编写代码,但我真的不知道从哪里开始,我不知道C或Java。我可以使用手稿中的公式在JAGS或Python中构建模型吗?如果是这样,有人能指出我这样做的一个例子吗?感谢。
答案 0 :(得分:5)
我朋友的回复如下,请原谅这句话。
首先,我写了一个在这里看到的崩溃的Gibbs采样器的Python实现(http://www.pnas.org/content/101/suppl.1/5228.full.pdf+html)并在这里充实(http ://cxwangyi.files.wordpress.com/2012/01/llt.pdf)。球很慢。
然后我使用了本文的C实现的Python包装(http://books.nips.cc/papers/files/nips19/NIPS2006_0511.pdf)。这与f * ck一样快,但结果并不像NMF那样大。
但是我已经看到了使用scitkits的NMF实现,甚至与scipy稀疏兼容的最近发布的NIMFA库,它们都会在任何大小的语料库上吹嘘f * ck。我的新白鲸是切片的分布式实施。这将是非平凡的。
答案 1 :(得分:3)
在Python中,你知道PyMC吗?它可以灵活地指定模型和拟合算法。
此外,从R和JAGS开始时,this tutorial on "Using JAGS in R with the rjags Package"与a collection of examples一起。