Реализация модуля морфологического анализа текста в рамках инфраструктуры Apache UIMA – Предсказание морфохарактеристик – Оптимизация



Реализация модуля морфологического анализа текста в рамках инфраструктуры Apache UIMA – Предсказание морфохарактеристик – Оптимизация

1 1


morph-presentation

Reveal.js based presentation about my work on morphology component

On Github fsqcds / morph-presentation

Реализация модуля морфологического анализа текста в рамках инфраструктуры Apache UIMA

Автор: Николаев Фёдор Александрович

Работа вылолнялась в рамках открытого проекта UIMA.Ext Лаборатории математической и компьютерной лингвистики КФУ, её результаты используются в рамках крупного научно-исследовательского проекта, поддержанного Фондом содействия развитию малых форм предприятий в научно-технической сфере.

Задача морфоанализа

Определение морфохарактеристик (часть речи, падеж и т.д.)

Пример: маме — сущ., одуш., ж. р., ед. ч., дат. п.

Существующие решения

  • AOT (конечные автоматы)
  • mystem (префиксные деревья)
  • pymorphy2 (DAWG)

Зачади

Предсказание морфохарактеристик несловарных слов. Оптимизация по памяти.

Решение: троичное дерево поиска

она они лес лето ты я

Предсказание морфохарактеристик

Осуществляется при помощи поиска в словаре слов с наибольшим совпадающим суффиксом

джоулево (прилагательное, ср. род, ед. число, им. падеж)

  • булево +
  • каракулево (краткое прилагательное)
  • пачулево (краткое прилагательное)

Реализация предсказания

  • ПрефиксноеСуффиксное дерево
  • Жадный поиск

Тестирование эффективности

Аккуратность:

Результаты

  • На дорожке «редкие слова» форума «Оценка методов АОТ» (http://ru-eval.ru) аккуратность составила 0.68
  • На выборке из словаря — 0.8

Оптимизация

Троичное дерево эффективнее для хранения слов, чем хэш-таблица, в которой на каждый символ каждого слова расходуется память.

Результаты оптимизации

Потребляемая память сократилась почти в два раза.

110 граммем, 388733 лемм, 5094084 форм в индексе

931Mb → 530Mb

Apache UIMA

Фреймворк для работы с неструктурированной информацией

  • Java
  • Всё — это аннотации
  • Работа по принципу конвейера

Заключение

Можно заключить, что троичное дерево хорошо подходит в качестве основной структуры при разработке морфоанализаторов и других, работающих со словарями, систем ОЕЯ.