Есть ли в открытом доступе инструменты компьютерной лингвистики с целью анализа предложений русского языка?
Есть ли в открытом доступе (на любом ЯП) инструменты, которые способны анализировать и преобразовывать предложения русского языка, в различных сложных формах, в какую-то модель или в какой-то упорядоченный алгоритм? К примеру, программы-переводчики каким-то образом анализируют предложения и различают смысл оборотов.
Желательно чтобы было определение действий сущностей, к примеру:
"Человек подарил 50 коробок с конфетами своей подруге в бане на даче".
Алгоритм должен определить, что:
- Подруга находилась в момент подарка в бане, а баня находится на даче (Объект баня это поле объекта дача)
- В коробках конфеты (Коробки это массив)
Готового решения нет, но возможно вас заинтересуют следующие проекты:
Dostoevsky - Sentiment analysis library for russian language
Natasha - библиотека для поиска и извлечения именованных сущностей (Named-entity recognition) из текстов на русском языке. На данный момент разбираются упоминания персон, даты и суммы денег.
Yargy is a Earley parser, that uses russian morphology for facts extraction process, and written in pure python
razdel — библиотека для разделения русскоязычного текста на токены и предложения. Система построена на правилах.
SyntaxNet (ссылка на Хабр) — это основанная на TensorFlow библиотека определения синтаксических связей, использует нейронную сеть. В настоящий момент поддерживается 40 языков, в том числе и Русский.
Дѣаволъ, В Яндекс-Томите есть возможность задавать свои структуры слов, которые нужно найти из текста/строки. К примеру:
Глагол совершённого вида + любое существительное в винительном падеже
Томита позволяет задать "мощный" поисковой шаблон (используя свой синтаксис), и будут извлечены все сущности в тексте, подпадающие под эти правила. Таким образом Томита является большим расширением регулярных выражений, способное находить по специфическим фильтрам русского языка. Также можно указать на жёсткую связь двух слов в роде, числе и падеже.
Но остальная работа по анализу текста и нахождению логических связей скорее всего ляжет на плечи программистов.
Похоже вы ищите так называемый "фактограф", в английской терминологии "Information Extraction".
На русском насколько я понимаю есть либо коммерческие системы, либо довольно сырые студенческие поделки. Если найдете opensource проект понимающий русский - будет круто.