使用预先训练的MaltParser模型和NLTK

时间:2012-01-27 00:09:04

标签: python parsing nltk

有谁能告诉我如何在nltk.parse.malt中使用预先训练好的MaltParser模型(http://maltparser.org/mco/english_parser/engmalt.html)?唯一的选择似乎是从文件中训练(如果有人可以指向一个好的,公开的培训文件的方向,那也很棒)。

2 个答案:

答案 0 :(得分:3)

旧版NLTK中的MaltParser接口用于硬编码模型的路径。这已在提交e9e443中修复。您现在可以执行以下操作:

maltparser = MaltParser(mco="/path/to/your/model.mco")

在撰写本文时,easy_install和pip仍然安装了一个不包含此修复程序的NLTK版本(2.0.1rc4)。如果您无法负担转换到最新版本,您可以使用以下hack:

maltparser = MaltParser()
maltparser.mco = "/path/to/your/model.mco"

可以在MaltParser's official website上找到预先训练过的模型。

答案 1 :(得分:1)


关于使用预训练模型 - 在nltk开发论坛中,似乎已经(并且似乎仍然是)一个开放的主题: https://github.com/nltk/nltk/issues/145

根据我的理解,你可以通过设置一些内部变量来实现:

  

“虽然你可以在对象上手动设置mco字段,但是没有公开   API,   并且没有挖掘代码的用户不会知道这一点。“

然而,我无法找到具体的地方。

关于获得预训练模型 - 我在SO上引用了这个主题:

Does NLTK have a tool for dependency parsing?