4

我正在使用 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 知识的情况下操作这些方法。

抱歉,这是我的第一次牛仔竞技表演。

4

2 回答 2

2

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

于 2014-12-03T00:09:51.767 回答
1

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

你已经知道了,但我个人的观点是,我在混合这些技术方面遇到了困难,因为我没有很强的 Java 背景。我从同事那里收到了关于使用 Python 进行 Mallet 的相同反馈,“准备好花大量时间进行调试。”

从那时起,我一直在使用 Python 的sklearn库。它更广泛地针对机器学习,不直接用于 NLP,但可以很好地用于它。它提供了非常多的建模工具选择,而且其中大部分似乎都依赖于NumPy,因此它应该非常快。我已经用过很多次了,可以说它写得很好,文档也很好。

我不想阻止您使用 Mallet,尤其是因为我这么说。但是,如果您愿意接受替代方案,我想您会发现在使用 NLTK 构建项目时,使用 Python 模块要容易得多,因为它本身是用 Python 编写的。我希望这有帮助!

于 2014-03-18T13:57:22.380 回答