首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(gensim) LdaMallet vs LdaModel?

(gensim) LdaMallet vs LdaModel?
EN

Stack Overflow用户
提问于 2020-06-26 02:19:06
回答 1查看 2.3K关注 0票数 4

使用gensim.models.LdaMalletgensim.models.LdaModel有什么区别?我注意到参数并不完全相同,我想知道什么时候应该使用一个参数而不是另一个参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-13 18:27:38

TL;DR:两者都是潜在Dirichlet分配的两个完全独立的实现。如果您只是想尝试LDA,并且对Mallet的特殊功能不感兴趣,请使用gensim。

gensim.models.LdaModel是在gensim中实现的LDA的单核版本。在gensim (gensim.models.ldamulticore)中也有并行的LDA版本。两种Gensim实现都使用在线变分贝叶斯(VB)算法进行潜在狄利克雷分配,如Hoffman et al. 1中所述。

Gensim算法(不限于LDA)是独立于内存的w.r.t。语料库大小(可以处理大于RAM的输入、流式输入、核心外输入)。

Gensim还为流行的工具Mallet (Java)和Vowpal Wabbit (C++)提供了包装器。

gensim.models.wrappers.LdaVowpalWabbit使用与Gensim的LdaModel基于1的相同的在线变分贝叶斯(VB)算法。

gensim.models.wrappers.LdaMallet使用optimized Gibbs sampling algorithm进行潜在狄利克雷分配2。这就是不同参数的原因。然而,大多数参数,例如主题的数量,α和(b)eta)在两个算法之间共享,因为两个算法都实现了LDA。

两个包装器(gensim.models.wrappers.LdaVowpalWabbitgensim.models.wrappers.LdaMallet)都需要安装相应的工具(独立于gensim)。因此,gensim更容易使用。

除此之外,尝试不同的实现,看看哪种实现适合您。

参考文献

1霍夫曼,马修,弗朗西斯·R·巴赫和大卫·M·布莱伊。“潜在dirichlet分配的在线学习。”神经信息处理系统的进展。2010年。

2姚,利明,大卫米诺和安德鲁McCallum。“在流式文档集合上进行主题模型推断的有效方法。”第15届ACM SIGKDD知识发现和数据挖掘国际会议论文集。2009年。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62581874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档