将Python字符串传递给Mallet进行主题建模
我正在用BeautifulSoup从HTML中提取一些文本和相关信息,想要建立一个文本库。如果我能在Python中调用Mallet,并让它从Python字符串中分析主题,而不是从文件夹里的文本文件中分析,那就太好了。这样我就可以把Mallet找到的关键词放到每个文件里。
当我运行以下代码时,出现了一个消息,表示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 个回答
1
我曾经尝试在一个NLTK项目中使用Mallet,结果遇到了很多麻烦。这里要强调的是,Mallet是基于Java的,而NLTK是用Python写的。
你可能已经知道这一点,但我想说的是,我在这两种技术混合使用时遇到了困难,因为我对Java不太熟悉。我也听到同事们对用Python调用Mallet的反馈,他们都说:“准备花很多时间调试吧。”
从那以后,我开始使用sklearn这个Python库。它主要是针对机器学习的,虽然不是专门为自然语言处理(NLP)设计的,但也能很好地用于这方面。这个库提供了很多建模工具,而且大部分功能依赖于NumPy,所以运行速度应该很快。我用得不少,觉得它写得很好,文档也很清晰。
我并不是想让你放弃使用Mallet,尤其是因为我这么说。但如果你愿意考虑其他选择,我觉得在用NLTK构建项目时,使用Python模块会简单得多,因为NLTK本身就是用Python写的。希望这些对你有帮助!