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

将Python字符串传递给Mallet以进行主题建模,python,nlp,nltk,topic-modeling,mallet,Python,Nlp,Nltk,Topic Modeling,Mallet,我正在用BeautifulSoup构建一个文本语料库,其中包含一些HTML元数据。如果我可以从Python内部调用Mallet,并让它从Python字符串而不是从目录中的文本文件中为主题建模,那将非常有帮助。这样我就可以将Mallet定位的n个关键字放入每个文件中 我收到一条消息说,当我跑步时,木槌已被识别: from nltk.classify import mallet from subprocess import call mallet.config_mallet("malletdir/m

我正在用BeautifulSoup构建一个文本语料库,其中包含一些HTML元数据。如果我可以从Python内部调用Mallet,并让它从Python字符串而不是从目录中的文本文件中为主题建模,那将非常有帮助。这样我就可以将Mallet定位的n个关键字放入每个文件中

我收到一条消息说,当我跑步时,木槌已被识别:

from nltk.classify import mallet
from subprocess import call
mallet.config_mallet("malletdir/mallet-2.0.7/bin")
但我在接下来的步骤中没有任何运气,甚至不确定Mallet是否接受保存的文件以外的任何内容

我还没有找到任何我能真正理解的文档。有人看过这方面的可消化文档吗?(NLTK的书没有进入木槌)。我也很高兴了解到Python中的任何其他主题建模方法,我可以在没有真正深入的Python知识的情况下使用这些方法

对不起,这是我第一次参加牛仔竞技表演。

我曾经尝试实施NLTK项目,但我也遇到了一个又一个死胡同。我认为这里要保留的主要内容是Mallet是基于Java的,而NLTK是用Python编写的

你已经知道了,但我个人的观点是,我很难混合这些技术,因为我对Java没有很强的背景。我收到了同事们关于Mallet与Python的相同反馈,“准备好花大量时间调试。”

从那时起,我一直在使用Python库。它的目标更一般地是机器学习,不是直接用于NLP,而是可以很好地用于NLP。它有大量的建模工具可供选择,而且大多数工具似乎都依赖于它,所以它应该非常快。我经常使用它,可以说它写得很好,有文档记录


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

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

是的,我读了一些关于sklearn的内容,但是让事情正常运行也同样糟糕,目前——我使用的是OSX Lion,我无法让Scipy或matplotlib正确安装!假设我可以,这个方法对你来说合适吗?很抱歉打扰你——总的来说,这是一篇论文的一个相当小的部分,我不希望有太多的死胡同。是的,这是一个很好的例子。