TAWT (Tools for Automated Work with Text) - набор инструментов для работы с текстом на русском языке.

NB! Проект в процессе развития!

Цель:

  1. Как часто бывает, что новичок в компьютерной лингвистки не находит подходящий парсер текста или не находит открытую морфологическую библиотеку, пытается придумать и реализовать свой инструментарий и тратит время на это, хотя это не его основная цель? Поэтому первая цель, предоставить новичку удобные и простые инструменты для работы с текстом. Чтобы убрать издержки на написание инструментов, которые применяются при каждом анализе текста.
  2. Пул инструментов должен релизовать самые первые этапы анализа: графоматический, морфологический, семантико-синтаксический, а также выделение словосочетаний, выделение понятий и накапливание их в единой базе данных для последующей обработке (для последующего исследований).
  3. Инструменты должны быть максимально слабосвязанные, чтобы при изменении в одном инструменте не влияли на другой инструмент и при этом была возможность заменять какой-то инструмент на другой (сторонний инструмент/библиотеку).

Структурная схема взаимодействия между инструментами TATT, показа в упрощённой диаграмме (https://photos.app.goo.gl/uuOYj9hUfuByphhM2).

В TAWT входит:

  1. Parser - графематический парсер (https://github.com/jalexpr/Parser/).
  2. JMorfMorf - морфологическая библиотека (https://github.com/jalexpr/JMorfSdk). Библиотека имеет 5млн. словоформ, 390 т. уникальных слов.При загрузке занимает 500-600МБ оперативной памяти. Занимает 120мб на диске. Время загрузки 15 секунд. Благодаря реализации на основе HashMap выборка характеристик происходит с высокой скоростью. Библиотека имеет два режима:
    • Режим генерации слова из слова в начальной форме по заданным характеристикам.
    • Режим анализа слова и возвращения его морфологических характеристик (реализован полностью).
  3. GAMA (Graphematic and morphological analysis) – прослойка, позволяющая не заморачиваться подключением парсера и морфологическим разбором. На вход принимает String – на выходе распарсенные слова с их морфологическими характеристиками. (https://github.com/jalexpr/Gama)
  4. SPN v2 (Search possible notion) - поиск потенциальных понятий с помощью выделение словосочетаний. Предыдущая версия SPN доступна тут (https://github.com/jalexpr/SPN). В данном варианте выступает, как инструмент выделение словосочетаний.
  5. Инструмент работы с БД словосочетаний – (не реализован)
  6. БД по частоту словосочетаний - (разворачивается тут http://textanalysis.ru/, будет доступно, после написания инструменты работы с БД словосочетаний).
  7. AWF (ambiguity words filter) – фильтру устранения неоднозначности слова. Один из ключевых инструментов разработанный в этом комплексе инструментов, аналог реализован в первых версиях SPN. Реализация показала, что удается с более 50% точностью устранить неоднозначность слова. Поэтому этот фильтр и вынесен в отдельный инструмент, его применение возможно отдельно от SPN. Интерфейс такой же как при общении с SPN. (https://github.com/jalexpr/AWFilter)
  8. RFC (rules for compatibility) - правила сочетаемости слов) - в планах вынести в облако, для динамически обновления правил без необходимости перекомпиляции всех инструментов.
  9. MS (morphological structures) - единая, изменение, которое не потребует перекомпиляции инструментов. При этом структура гарантирует 100% совместимость инструментов между собою. Единственные условия: структура наследуется от интерфейса List и использует определенную вложенность. (Реализовано https://github.com/jalexpr/MorphologicalStructures).

Лицензия: Apache License 2.0