用于执行主题建模/ LDA的R包:只是“ topicmodels”和“ lda” [关闭]


29

在我看来,只有两个R程序包能够执行Latent Dirichlet分配

一个是lda,由乔纳森·张(Jonathan Chang)撰写;另一个topicmodels由BettinaGrün和Kurt Hornik撰写。

这两个软件包在性能,实现细节和可扩展性方面有什么区别?

Answers:


26

实现:topicmodels软件包为Blei等人的主题模型提供了GSL C和C ++代码的接口。和潘等人。对于较早的版本,它使用变分EM;对于后者的Gibbs采样,它使用。参见http://www.jstatsoft.org/v40/i13/paper。该软件包可与tm软件包中的实用程序很好地配合使用。

lda软件包对多个模型使用折叠的Gibbs采样器,这些模型与GSL库中的模型相似。但是,它是由软件包作者自己实现的,而不是由Blei等人实现的。因此,这种实现方式与引入这些模型变体的原始论文中提出的估计技术通常有所不同,在原始论文中通常采用VEM算法。另一方面,该程序包提供了比其他程序包更多的功能。该软件包还提供了文本挖掘功能。

可扩展性:关于可扩展性,topicmodel代码本质上可以扩展为与其他用C和C ++编写的主题模型代码接口。lda软件包似乎更依赖于作者提供的特定实现,但是Gibbs采样器可能允许您指定自己的主题模型。对于可扩展性问题,前者是根据GPL-2许可的,而后者是LGPL的许可,因此它可能取决于您需要对其进行扩展(GPL-2在开放源代码方面更为严格,即您不能使用它在专有软件中)。

性能:在这里我无能为力,到目前为止,我只使用了主题模型。

结论:
我个人使用topicmodels,因为它已被很好地证明(请参阅上面的JSS论文),并且我相信作者(Grün也实现了flexmix,而Hornik是R的核心成员)。


7
首先,我确定topicmodels是一个很好的程序包,并且我同意它已被很好地记录下来。关于“信任” LDA软件包的作者,Jonathan Chang是我的博士生,我完全信任他的代码。他既是一位出色的软件工程师,又是学者。他的程序包很简单,可以很好地缩放到相当大的集合,并且很好地探索R中的结果。(我喜欢并且我习惯于稀疏地表示文档。)值得注意的是,LDA还实现了其他模型,包括关系模型主题模型,受监督的LDA(带有GLM)和混合成员随机块模型。

感谢您的参与。我确定lda程序包很棒,我并不是要暗示它的lda代码有些劣等。我说了个人印象(文档显得有些草率)。因为那是> 2年前,所以我稍微编辑了答案(CRAN页面上的错别字仍然存在,我认为对他们进行修复将是一件好事,但电子邮件似乎已经丢失了)。
Momo 2014年

我猜您对这两个软件包都有丰富的经验,并且对一般主题最了解,如何提供一个列出两个软件包的优缺点的答案?我没有使用过lda,所以无法对其进行实证评估。提供这一点肯定会帮助OP和其他所有人,并纠正任何可能的不公正行为(这不是故意的)。谢谢!
Momo 2014年

1
我也尝试了两者,并发现该lda软件包包含更多选项。但是,很难理解如何格式化数据以使其适合模型。该topicmodels程序包与tm程序包配合良好,而lda程序包要求提供一个列表,该列表不清楚如何创建。
Omri374 2015年

12

主题模型 +1 。@Momo的答案非常全面。我只是添加topicmodels将输入作为文档术语矩阵,可以tm使用软件包或使用python 轻松制作。该lda软件包使用了更深奥的输入形式(基于Blei的LDA-C),而且我对使用内置函数将dtm转换为lda软件包格式没有任何运气(如Momo所述,LDA文档非常差)。

我有一些代码,与原始文本开始,预先处理它tm,并把它通过topicmodels(包括寻找主题的最佳数量提前与输出工作)在这里topicmodels对于第一次来的人可能有用。


3
对于尚未使用tm并希望使用lda的用户JFreq还将纯文本放入LDA-C的首选格式中。
共轭

很高兴了解JFreq,我之前从未见过。谢谢你的提示!
2012年

1
我只是read_dtm_Blei_et_altm包中发现了功能相同的功能。
2012年

3

Molly Roberts,Brandon Stewart和Dustin Tingley的R结构主题模型(STM)软件包也是一个不错的选择。建立在tm包之上,它是使用文档级协变量信息进行主题建模的通用框架。

http://structuraltopicmodel.com/

STM软件包包括确定主题数量的一系列方法(网格搜索)和度量(语义一致性,残差和排他性)。将主题数设置为0还将使模型确定最佳主题数。

stmBrowser软件包是出色的数据可视化补充,可以可视化外部变量对主题的影响。请参阅与2016年总统辩论有关的示例:http : //alexperrier.github.io/stm-visualization/index.html


0

我使用了所有三个库,在所有三个库中,topicmodels,lda,stm;并非每个人都使用n克。topicmodels库具有良好的估计能力,并且也可以使用n克。但是,如果有人在用unig工作,那么从业人员可能会首选stm,因为它会提供结构化的输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.