Myaso

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

Myaso — это языконезависимый инструмент морфологической разметки текстов, построенный на основе скрытых Марковских моделей с использованием удалённой интерполяции и алгоритма Витерби.

Доступность

Анализатор Myaso распространяется на условиях лицензии MIT. Исходные коды доступны на GitHub.

Установка

Поскольку Myaso разработано на языке Ruby, то перед установкой анализатора необходимо установить Ruby версии не ниже 1.9. Обеспечивается совместимость анализатора с альтернативными реализациями языка Ruby: Rubinius и JRuby.

При наличии Ruby установка анализатора выполняется одной командой:

% gem install myaso

Для использования анализатора необходимо инициализировать его двумя файлами:

  • файлом со статистикой по n-граммам;
  • файлом лексикона.

Для удобства пользователей, анализатор использует формат другого таггера — TnT. Обученную модель для русского языка можно найти на странице Tools for processing Russian, на которой представлены различные инструменты и модели для статистической обработки текста на русском языке[1].

Использование

Командная строка

Анализатор можно использовать в качестве утилиты командной строки.

В поток стандартного ввода передаются токены, разделённые знаком переноса строки. В каждой строке потока стандартного вывода будет записан токен и тег, разделённые знаком табуляции \t.

Например, токенизацию можно выполнить при помощи анализатора Greeb.

% echo 'Как поспал, проголодался наверное?' | greeb | myaso -n snyat-msd.123 -l snyat-msd.lex tagger
Как	P-----r
поспал	Vmis-sma
, 	,
проголодался	Vmis-sma
наверное	R
?	SENT

Ruby

Поскольку Myaso распространяется как гем, то можно легко встроить анализатор в сторонние решения на языке Ruby. Анализатор предоставляет простой программный интерфейс.

Перед выполнением разметки текста необходимо провести токенизацию, то есть разбить текст на составляющие. Это можно сделать, например, при помощи анализатора Greeb.

tagger = Myaso::Tagger.new('model.123', 'model.lex')
pp tagger.annotate(%w(Как поспал , проголодался наверное ?))
=begin
["P-----r", "Vmis-sma", ",", "Vmis-sma", "R", "SENT"]
=end

Возможные проблемы

Текущая реализация Myaso имеет два значительных недостатка:

  1. таггер аварийно завершает работу при обнаружении в текста слова, не имеющегося в словаре;
  2. несмотря на то, что разметка текста выполняется достаточно быстро, единовременная инициализация анализатора занимает продолжительное время (около минуты).

Ссылки

См. также

Примечания

  1. S. Sharoff & J. Nivre (2011), The proper place of men and machines in language technology: Processing Russian without any linguistic knowledge