Saturday, April 21, 2018

Telegram-бот и Томита-парсер (часть 3)

 

Проблема

Цель данного поста - исследовать, как можно использовать Томита-парсер в цензура боте. Можно ли извлекать маты из текста с его помощью?

Список вопросов по теме можно почитать в прошлой статье Telegram-бот. Цензура чата (часть 2).

Полезные ссылки

Что такое Томита-парсер, как Яндекс с его помощью понимает естественный язык, и как вы с его помощью сможете извлекать факты из текстов:
https://habrahabr.ru/company/yandex/blog/219311/

Заглавная страница с видеокурсом и документацией:
https://tech.yandex.ru/tomita/

Исходники:
https://github.com/yandex/tomita-parser

Как использовать парсер в своих проектах:
https://habrahabr.ru/company/yandex/blog/225723/

Исследование

Интересно, что в боте реализован GLR-парсинг для самого простого случая. Томита-парсер основан на этой же технологии.

Томита-парсер используется компанией для сбора объявлений с разных площадок, например.
Написан на С++. На момент написания статьи - 44 открытых бага:

Что нужно для того чтобы использовать парсер в своих проектах?

  1. Разобраться с правилами написания грамматик и словарей;
  2. Интегрировать парсер в свой проект. Интеграция может занять много времени.

Что может дать парсер цензор боту?

Парсер может вычленять факты:
  • Вася послал Петю;
  • Коля злится на РКН;
  • Маша устала от своей работы.
С помощью Томита-парсера бот сможет более разумно цензурировать речь. Например:
Было:
- Иди ты в жопу.
Стало:
- Вам пора в баню.

Было:
- Ах ты ж хабалка наглая.
Стало:
- Ах Вы подлая женщина.

Вывод

Томита-парсер не решает проблему обучения и не имеет к этому никакого отношения. Стоит ли интегрировать парсер в бота? Пока нет.

О том, как реализован REST API бота, можно почитать в части 4.