Вышла новая версия программного анализатора языка FreeLing 3.1, представляющий собой инструментальный пакет ПО с открытым исходным кодом, предназначенный для аналитической обработки естественного языка.

Проект FreeLing стартовал в 2004 г. В настоящее время его развитие и поддержка осуществляется группой научно-исследовательского центра TALP Политехнического университета в Каталонии (Испания) под руководством проф. Луиса Падро (Lluís Padro).

Исходный код FreeLing распространяется на условиях лицензии GNU GPL, что, по мнению его разработчиков, удобно для некоммерческих проектов и академических исследований. В то же время лицензия не позволяет использование FreeLing в составе коммерческого продукта — в таких случаях придется обратиться к разработчикам и лицензировать ПО FreeLing или отдельные модули в индивидуальном порядке.

Ключевые улучшения в анализаторе относительно предыдущей версии:

  • Потокобезопасность — допускает параллельную обработку текстов (например, через веб-сервисы).
  • Расширенный API для аналитических модулей.
  • Улучшенный API для управления и навигации по полученным в результате обработки текста лингвистическим структурам.
  • Новая функциональность (на базе компилятора языка FOMA) для обработки нестандартного текста обеспечивает при помощи потокового текстового редактора (SED — Stream EDitor) поиск в словаре схожих с заданной строкой слов.
  • Встроенный модуль регулярных выражений позволяет выбрать в качестве основного компонента boost::regex или boost::xpressive.
  • Упрощена инсталляция и сборка в MacOSX и Windows (с MSVC).
  • Документация дополнена примерами.

Программный лингвистический анализатор FreeLing написан на С++ и построен по модульному принципу. Как отмечается, он предоставляет пользователю богатый функционал для анализа текста с учетом специфики естественного языка. Анализатор выполняет разметку текста (токенизацию — разделение предложения на составляющие: слова, знаки препинания); выделение предложений с учетом знаков препинания, использующихся для сокращений; морфологический анализ; определение составных слов; вероятностное определение части речи неизвестного слова (hmm tagger); обнаружение и определение именной группы; классификацию именной группы; построение дерева зависимостей (слов в предложении); определение местоимений (местоименных словоформ); нормализацию и определение дат, чисел, процентных соотношений, валюты и физических величин (скорость, вес, температура, плотность и др.).

Вероятностное определение части речи построено на основе обучения, проводившегося по большому массиву размеченных предложений со снятой омонимией. На вход анализатора поступает предложение, на выходе — вероятностные характеристики части речи для каждого слова (даже если слово отсутствует в словаре). При этом используется классическая вероятностная схема Маркова. На данный момент ошибка в определении краткой (часть речи — род) формы, по утверждению разработчиков, составляет не более 4,7% и полной (вся информация о слове) — не более 12%. Обучающий корпус постоянно пополняется, что, как ожидается, в перспективе количество ошибок будет уменьшаться.

Распределенная версия Freeling включает в себя ряд морфологических словарей. Русский словарь содержит свыше 1,63 млн. слов. Благодаря мощному аналитическому модулю при обработке текста используется множество дополнительных слов, образованных с помощью суффиксов, глагольных форм, прилагательных и др., отсутствующих в основном словаре.

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

FreeLing поддерживает несколько языков, включая русский.