MALLET与NLTK中的主题建模

Tri*_*daz 28 nltk mallet

我刚刚阅读了一篇关于MALLET如何用于主题建模的精彩文章,但我在网上找不到MALLET和NLTK之间的任何内容,我已经有过一些经验.

它们之间的主要区别是什么?MALLET是一个更"完整"的资源(例如,有更多的工具和算法)?或者回答前两个问题的一些好文章在哪里?

Mat*_*yra 23

并不是一个人比另一个人更完整,更多的是一个人拥有一些东西而另一个人没有的问题,反之亦然.这也是目标受众和目的的问题.

Mallet是一个基于Java的机器学习工具包,旨在为各种自然语言处理任务提供强大而快速的实现.

NLTK是使用Python构建的,并附带了很多额外的东西,比如WordNet等语料库.NLTK更多地针对人们学习NLP,因此更多地被用作学习平台,也许更少作为工程解决方案.

在我看来,两者之间的主要区别在于NLTK更适合作为学习资源,对于机器学习和NLP感兴趣的人,因为它附带了大量的文档,示例,语料库等.

Mallet更瞄准那些在该领域工作并已经知道他们想做什么的研究人员和从业人员.与NLTK广泛收集的一般NLP内容相比,它提供的文档较少(尽管它有很好的示例,并且API已有详细记录).

更新:描述这些的好文章将是http://mallet.cs.umass.edu/上的Mallet文档和示例- 侧边栏包含序列标记,主题建模等的链接.

对于NLTK,NLTK书籍自然语言处理Python是对NLTK和NLP的一个很好的介绍.

UPDATE

我最近发现了sklearn Python库.这更多地针对机器学习,而不是直接针对NLP,但也可以用于此.它配备了大量的建模工具,大部分都依赖于NumPy所以它应该非常快.我已经使用了很多,并且可以说它写得很好并且有文档记录,并且有一个活跃的开发者社区推动它(至少2013年5月).

更新2

我现在也一直在使用mallet(特别是mallet API),并且可以说如果你计划将mallet集成到另一个项目中,你应该非常熟悉Java并准备好花大量时间调试几乎完全没有文档的代码库.

如果您只想使用mallet命令行工具,那很好,使用API​​需要大量挖掘mallet代码本身并通常修复一些错误.请注意,mallet附带了关于API的最少文档.