Pull to refresh

FreeLing — мультиязычная библиотека для обработки текстов

Ранее на страницах хабра пару раз делались обзоры NLP (Natural Language Processing) инструментов, для обработки текстовых данных, предлагаю вашему вниманию еще один развивающийся продукт.

Пожалуй, пропущу развернутое описание истории создания продукта, отмечу лишь, что создан он в начале 2004 года, в Исследовательском Центре политехнического университета в Каталонии. С тех пор претерпел множественные изменения и дорос до версии 3.0. Теперь более подробно по технической части:

Основные возможности FreeLing:

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


О вышеперечисленном более содержательно:

  • Разметка текста (токенизация): Представляет функционал по разделению предложения на составляющие: слова, знаки препинания.
  • Выделение предложений: Разбивает текст на предложения, учитывая знаки препинания, использующиеся для сокращений (например имен, отчеств, слов-сокращений), все необходимые параметры находятся и легко конфигурируются из файла настроек.
  • Морфологический анализ : Позволяет определить нормальную форму слова (или формы если их несколько), словарь содержит около 140 000 слов и постоянно пополняется и редактируется.
  • Определение составных слов:
  • Вероятностное определение части речи, в том числе — неизвестного слова: В системе существует два вида функционала, для вероятностного распознавания части речи в заданном предложении — это известные всем цепи того самого Маркова и relax tagger, который представляет из себя смесь статистического и рукописного (hand-made правила) анализаторов, сильно и в худшую сторону отличается от марковского — скоростью работы. Ошибка в определении «простой» части речи (род-падеж) составляет не более 4.7% и «полной» (вся информация о слове) не более 12%. Обучающий корпус постоянно пополняется, что заставляет верить в то, что, ошибки со временем будут уменьшаться.
  • Обнаружение и определение именной группы: Выделение таких обьектов как: названия городов, фирм, персоны. (русская часть — в стадии тестирования)
  • Нормализация дат, чисел, физ. величин: Не секрет, что записать чисто или дату можно сто одним способом или даже 102-мя, для нормализации подобных случаев написания и существует данный функционал.


Сборка и инсталляция:

Основная сборка и тестирование производится под Linux, но существует экспериментальная сборка под msvc, которую я тоже стараюсь поддерживать в актуальном состоянии.

На этом пока все. Более расширенная документация, исходные коды и файлы с данными находятся на сайте проекта.

FreeLing
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.