Answers:
实现: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的核心成员)。
lda
程序包很棒,我并不是要暗示它的lda
代码有些劣等。我说了个人印象(文档显得有些草率)。因为那是> 2年前,所以我稍微编辑了答案(CRAN页面上的错别字仍然存在,我认为对他们进行修复将是一件好事,但电子邮件似乎已经丢失了)。
lda
,所以无法对其进行实证评估。提供这一点肯定会帮助OP和其他所有人,并纠正任何可能的不公正行为(这不是故意的)。谢谢!
lda
软件包包含更多选项。但是,很难理解如何格式化数据以使其适合模型。该topicmodels
程序包与tm
程序包配合良好,而lda
程序包要求提供一个列表,该列表不清楚如何创建。
为主题模型 +1 。@Momo的答案非常全面。我只是添加topicmodels
将输入作为文档术语矩阵,可以tm
使用软件包或使用python 轻松制作。该lda
软件包使用了更深奥的输入形式(基于Blei的LDA-C),而且我对使用内置函数将dtm转换为lda
软件包格式没有任何运气(如Momo所述,LDA文档非常差)。
我有一些代码,与原始文本开始,预先处理它tm
,并把它通过topicmodels
(包括寻找主题的最佳数量提前与输出工作)在这里。topicmodels
对于第一次来的人可能有用。
read_dtm_Blei_et_al
在tm
包中发现了功能相同的功能。
Molly Roberts,Brandon Stewart和Dustin Tingley的R结构主题模型(STM)软件包也是一个不错的选择。建立在tm包之上,它是使用文档级协变量信息进行主题建模的通用框架。
http://structuraltopicmodel.com/
STM软件包包括确定主题数量的一系列方法(网格搜索)和度量(语义一致性,残差和排他性)。将主题数设置为0还将使模型确定最佳主题数。
stmBrowser软件包是出色的数据可视化补充,可以可视化外部变量对主题的影响。请参阅与2016年总统辩论有关的示例:http : //alexperrier.github.io/stm-visualization/index.html。