7

我正在使用潜在狄利克雷分配与来自六个不同来源的新闻数据语料库。我对主题的演变、出现很感兴趣,并想比较这些来源随着时间的推移是如何相似和不同的。我知道有许多修改过的 LDA 算法,例如 Author-Topic 模型、Topics Over Time 等等。

我的问题是这些替代模型规范中很少以任何标准格式实现。一些在 Java 中可用,但大多数仅作为会议论文存在。自己实现其中一些算法的最佳方法是什么?我对 R 和 jags 相当精通,并且只要给予足够长的时间,我就会在 Python 中跌跌撞撞。我愿意编写代码,但我真的不知道从哪里开始,也不知道 C 或 Java。我可以仅使用手稿中的公式在 JAGS 或 Python 中构建模型吗?如果是这样,有人可以指出我这样做的一个例子吗?谢谢。

4

2 回答 2

4

我朋友的回复如下,请原谅语言。

首先,我编写了一个折叠的 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 看到的那么好。

但是我见过的 NMF 实现,使用 scitkits,甚至使用最近发布的与 scipy sparse 兼容的 NIMFA 库,它们都在任何大型语料库上炸毁了 f*ck。我的新白鲸是一个切片的分布式实现。这将是不平凡的。

于 2012-04-16T15:48:40.290 回答
3

在 Python 中,你知道PyMC吗?它可以灵活地指定模型和拟合算法。

此外,当从 R 和 JAGS 开始时,还有一个关于“在 R 中使用 JAGS 和 rjags 包”的教程以及一系列示例

于 2012-04-16T16:20:54.050 回答