Семинар: Natural Language Processing
(автоматическая обработка естественного языка)

Natural Language Processing (автоматическая обработка естественного языка)
13 Октябрь 2012


Морфологический анализатор морфей и многоязычная библиотека diglossa.ru

М.В.Быков (Diglossa.ru, Москва)

Категория: Осень 2012.

Семинар пройдет 13.10.2012

Morpheus [1] — (произносится с ударением на Eu) — простой морфологический анализатор, применяемый в многоязычной библиотеке diglossa.ru [2]. Он разрабатывается с применением стандартных приципов разработки веб-приложений и имеет открытую лицензию GNU GPL[3]. А именно, он построен как набор утилит, которые могут быть объединены в цепочки, ведущие к необходимому результату. Например, сейчас для древнегреческого языка есть только утилиты, обрабатывающие словарь, утилиты исключениий и сами исключения (самые распространенные). А для латыни - словарь, многие исключения, и обработка более ста парадигм. Для санскрита - лишь начальные утилиты обработки словаря. Ключевые слова при разработке - agile, bbd-style. Morpheus включает в себя более 3000 тестов-спецификаций. Для генерации (латинских) тестов использовалась программа Уильяма Уитеккера "words" [4]

В качестве образца для подражания при разработке я использую Natural Language Toolkit [5], используя, однако, Руби, а не Питон в качестве основного языка разработки. Все данные о парадигмах языка хранятся в JSON, открыты и легко читаются и модифицируются человеком. Обрабатываются не строки, а ruby (на сервере) или Javascript (на клиенте) объекты.

Алгоритм работы простого морфологического анализатора таков: Каждая словоформа проходит через сито парадигм и связанных с ним правил, и на первом шаге 1) выявляются парадигмы, способные породить данную словоформу и возможные словарные формы, затем на втором 2) выбираются только те парадигмы, которые порождают действительно существующее в словаре слово и наконец 3) результат кешируется в БД. Вдобавок есть механизм заполнения базы словоформ исключениями, (терминами, не требующими никакого анализа, вне системы парадигм.). Все происходит в NoSQL-БД (поскольку json), а именно в CouchDB [6].

Морфей превращает Диглоссу из свалки текстов в корпус. Все тексты с помощью простого API могут быть преобразованы в любой стандартный формат, используемый сегодня в корпусной лингвистике. Сейчас я использую в качестве образца форматы, описываемые в NLTK, с соответствующими изменениями, диктуемыми флективной природой используемых языков.

Также в докладе будет в рассказано о возможностях участия в проекте Diglossa.