将Python字符串传递给Mallet以进行主题建模

时间:2014-03-18 13:37:14

标签: python nlp nltk topic-modeling mallet

我正在使用BeautifulSoup构建一个与HTML中的元数据一起收集的文本语料库。如果我可以从Python中调用Mallet并让它从Python字符串中模拟主题,而不是从目录中的文本文件中进行建模,那将会非常有用。这样我就可以将Mallet定位的n个关键字放入每个文件中。

我收到一条消息,说我跑的时候已经识别出Mallet:

from nltk.classify import mallet
from subprocess import call
mallet.config_mallet("malletdir/mallet-2.0.7/bin")

但是我对接下来的步骤没有任何好运,甚至不确定Mallet是否接受了除保存文件以外的任何内容。

我无法找到任何我真正理解的文档。有人看过这个可摘文件吗? (NLTK书没有进入Mallet)。我也很乐意在Python中学习任何其他主题建模方法,我可以在没有深入Python知识的情况下进行操作。

对不起,这是我的第一个牛仔竞技表演。

2 个答案:

答案 0 :(得分:2)

如果您仍在寻找解决方案:Gensim(一个Python主题建模/机器学习包)有一个Mallet的包装器,它易于使用且记录良好。 Here是一些Gensim教程,也是Mallet包装器的特定tutorial。您可能还想阅读一些安装说明(主要是关于设置Java内存的部分)here,然后您就可以开始了。

答案 1 :(得分:1)

我曾尝试用NLTK项目实现Mallet,但在死胡同之后我也陷入了死胡同。我认为要保留的主要内容是Mallet是基于Java的,而NLTK是用Python编写的。

你已经知道了,但我个人认为我在混合技术方面遇到了困难,因为我没有扎实的Java背景。我收到了同事关于使用Python的Mallet的相同反馈,"准备好花大量时间进行调试。"

从那时起,我一直在使用sklearn库来进行Python。它更普遍地针对机器学习,而不是直接针对NLP,但可以很好地用于它。它附带了大量的建模工具,大部分都依赖于NumPy所以它应该非常快。我已经使用了很多,并且可以说它写得很好并且有文档记录。

我不想阻止你使用Mallet,特别是因为我这么说。但是如果您对替代方案持开放态度,我认为您会发现在使用NLTK构建项目时,使用Python模块要容易得多,因为它本身是用Python编写的。我希望这有帮助!