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