MaltParser для русского языка
mp4ru это парсер для русского языка. Реализация парсера основана на MaltParser.
Имеется четырне варианта использования mp4ru:
- mp4ru как docker контейнер
- mp4ru как сервис
- mp4ru как приложение
- mp4ru как библиотека
Для загрузки последней версии docker образа из Docker Hub необходимо выполнить следующую команду:
docker pull oxaoo/mp4ru-service
И запустить загруженный mp4ru-service:
docker run -d --name mp4ru-service -p 2000:2000 oxaoo/mp4ru-service
Docker контейнер будет доступен для запросов по адресу http://localhost:2000
.
После чего можно выполнять парсинг текста. mp4ru-service поддерживает следующие HTTP методы:
GET http://localhost:2000/parse HTTP/1.1
POST http://localhost:2000/parse HTTP/1.1
Примеры запросов с помощью curl:
curl -X GET 'http://localhost:2000/parse?text=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%2C%20%D0%BA%D0%B0%D0%BA%20%D0%B4%D0%B5%D0%BB%D0%B0%3F'
curl -X POST http://localhost:2000/parse -d 'Привет, как дела?'
Также в проекте имеется postman коллекция, содержащая примеры запросов. Коллекция расположена в папке postman-collection/
.
Если на локальной машине не установлен docker и нет возможности это сделать, то можно использовать mp4ru как сервис.
Для этого необходимо иметь как минимум JRE,
maven
и дополнительные файлы ресурсов используемые для парсера, которые доступны для загрузки по этому адресу.
Сначала необходимо собрать склонированный проект с помощью maven.
Выберите корневую директорию mp4ru/
и выполните команду mvn clean install
.
Затем, по следующему пути mp4ru/mp4ru-service/target/
будет доступен jar файл mp4ru-service.
Загруженные файлы ресурсов необходимо разархивировать и разместить рядом с jar файлом.
Содержимое директории должно выглядить, примерно, следующим образом:
mp4ru\mp4ru-service\target
│ mp4ru-service-1.0.0.jar
│
└───res
│ russian-utf8.par
│ russian.mco
│
└───bin
tree-tagger <-- файл необходимый для выполнения на linux
tree-tagger.exe <-- файл необходимый для выполнения на windows
Для того чтобы запустить сервис, необходимо выполнить следующую инструкции в командной строке:
java -jar mp4ru-service-1.0.0.jar
После этого можно выполнять разбор текста, используя HTTP методы, которые были описаны в предыдущем разделе.
Данный способ актуален для одноразового парсинга. Для этого необходимо иметь (как и в предыдущем разделе) JRE, maven и файлы ресурсов.
Необходимо выбрать поддиректорию mp4ru/mp4ru/
и собрать проект с помощью команды mvn clean install
.
После чего mp4ru jar файл будет доступен по следующему пути: mp4ru/mp4ru/target/
.
Загруженные файлы ресурсов необходимо разархивировать и разместить рядом с jar файлом.
Содержимое директории должно выглядить, примерно, следующим образом:
mp4ru\mp4ru\target
│ mp4ru-1.0.0.jar
│
├───res
│ russian-utf8.par
│ russian.mco
│
└───bin
tree-tagger <-- файл необходимый для выполнения на linux
tree-tagger.exe <-- файл необходимый для выполнения на windows
Теперь, для запуска приложения и парсинга текста необходимо выполнить следующую инструкцию в командной строке:
java -jar mp4ru-1.0.0.jar -cm res/russian-utf8.par -tt res/ -pc res/russian.mco -tf res/text.txt
Результат парсинга будет доступен в файле res/text.txt
.
Для вызова справки, используйте следующую команду:
java -jar mp4ru-1.0.0.jar -h
mp4ru может также использоваться как библиотека. Для этого необходимо выбрать поддиректорию mp4ru/mp4ru/
и собрать проект mvn clean install
.
После этого mp4ru jar будет доступен по следующему адресу: mp4ru/mp4ru/target/
.
Далее необходимо добавить артефакт в локальный репозиторий maven (необходимо скорректировать команду в зависимости от версии):
mvn install:install-file -DgeneratePom=true -Dpackaging=jar -DgroupId=com.github.oxaoo -DartifactId=mp4ru -Dversion=1.0.0 -Dfile=mp4ru-1.0.0.jar
Теперь, артефакт может быть использоваться в проекте, для этого достаточно добавить зависимость на библиотеку в pom:
<dependency>
<groupId>com.github.oxaoo</groupId>
<artifactId>mp4ru</artifactId>
<version>1.0.0</version>
</dependency>
Файлы ресурсов могут быть загружены одним архивом по этой ссылке. Этот архив содержит необходимые файлы для парсинга:
- Модель классификатора для морфологического анализа. Файл russian-utf8.par содержит обучаемый набор тегов, который можно скачать отдельно по следующему адресу. Файл russian-big-utf8.par содержит расширенный обучаемый набор тегов, доступный по адресу. Автор обоих наборов тегов Сергей Шаров
- Исполняемый файл TreeTagger, выполняющий частеречную разметку текста. TreeTagger может быть загружен по следующему адресу: TreeTagger v.3.2
- Файл конфигурации парсера russian.mco, доступный для загрузки по адресу, автором данной работы является Марилена Ди Бари.