MaltParser

Материал из NLPub
Перейти к: навигация, поиск

MaltParser — инструмент для работы с деревьями зависимостей. Позволяет построить модель по размеченному корпусу и строить деревья для новых данных основываясь на ней. Реализует несколько алгоритмов построения деревьев. По утверждениям авторов "достиг передовых показателей на некоторых языках". Для последней версии существуют готовые модели для английского, французского, шведского и испанского языков. Модель для русского языка, натренированная на корпусе SynTagRus доступна для версии 1.5. Инструмент распространяется под свободной лицензией.

Русский язык

Сергей Шаров подготовил всё необходимое для обработки русского языка от голого текста до получения дерева зависимостей с помощью MaltParser-а, попутно описав основные проблемы в работе с русским языком. Более подробно с результатами можно ознакомиться на специальной странице.

Для того чтоб получить у себя готовый к работе набор инструментов, достаточно запустить следующий shell-скрипт, который загрузит и объединит все необходимые инструменты. После чего в папке installation рядом со скриптом будет создана полностью рабочий конвейер по обработке русского языка, пользоваться которым можно как-нибудь так:

$ installation/russian-malt.sh <input-file.txt >output-file

На данный момент работоспособность обеспечена только под Linux. Следует отметить, что модели тренированы в 2011 году. С тех пор и SynTagRus вырос, и вышло несколько новых версий MaltParser-а, в т.ч. несовместимые с версией 1.5. Поэтому не стоит ожидать актуальных результатов от использования этих инструментов.

Образ Docker

NLPub поддерживает Docker-образ, содержащий MaltParser, корректно собранный для обработки русского языка (russian-malt-docker на GitHub).

docker pull nlpub/maltparser

В простейшем случае, можно запустить интерпретатор команд bash и запускать парсер внутри временного контейнера.

$ docker run --rm -it nlpub/maltparser /bin/bash
root@503fa2570005:/malt# echo Данное программное обеспечение работает корректно | ./russian-malt.sh
root@503fa2570005:/malt# cat tmpmalttext.parse
1	Данное	данный	P	P	P--nsna	3	опред	_	_
2	программное	программный	A	A	Afpnsnf	3	опред	_	_
3	обеспечение	обеспечение	N	N	Ncnsnn	4	предик	_	_
4	работает	работать	V	V	Vmip3s-a-e	0	ROOT	_	_
5	корректно	корректно	R	R	R	4	обст	_	_