Использование предварительно обученной модели MaltParser с NLTK - PullRequest
5 голосов
/ 27 января 2012

Может кто-нибудь сказать мне, как использовать предварительно обученную модель MaltParser (http://maltparser.org/mco/english_parser/engmalt.html) в nltk.parse.malt? Кажется, что единственный вариант - тренироваться из файла (Если кто-то может указать мне в направлении хорошего , общедоступный учебный файл, это тоже было бы здорово).

Ответы [ 2 ]

3 голосов
/ 31 августа 2012

Интерфейс MaltParser в более старых версиях NLTK использовался для жесткого кодирования пути к модели.Это было исправлено в коммите e9e443 .Теперь вы можете сделать следующее:

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

На момент написания этой статьи easy_install и pip по-прежнему устанавливают версию NLTK, в которую не входит это исправление (2.0.1rc4).Если вы не можете позволить себе перейти на новейшую версию, вы можете использовать следующий хак:

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

Предварительно обученные модели можно найти на официальном сайте MaltParser .

1 голос
/ 06 апреля 2012


Относительно использования предварительно обученной модели - Кажется, это была (и кажется, все еще) открытая тема на форуме nltk dev: https://github.com/nltk/nltk/issues/145

Насколько я понимаю, вы можете сделать это, установив некоторую внутреннюю переменную:

"И хотя вы можете вручную установить поле mco для объекта, оно не отображается в API, и пользователь, который не копался в коде, не знал бы этого. "

И все же мне не удалось найти конкретное место для этого.

Что касается получения предварительно обученной модели - я отсылаю вас к этой теме на SO:

Есть ли в NLTK инструмент для анализа зависимостей?

...