Wednesday, April 28, 2021

Нативная интеграция (отключена)

После реализации поиска ключевых фраз настало время реализовать нативную интеграцию. Есть несколько нюансов.


Исключения

Нативную интеграцию не нужно показывать в чатах HTML Академии и GDG Kaliningrad. Так же нативную интеграцию не нужно показывать при интеграции с мобильным приложением Мафия и с персональным сайтом.

Соответсвенно во всех случаях выше отключить поиск ключевых фраз.


Первая нативная интеграция

Для таких фраз:

  • я жирная
  • я жирный
  • я толстая
  • я толстый
  • надо похудеть
  • хочу похудеть

Необходимо выдавать такую фразу ответом на сообщение:

«Приглашаем стать стройнее с проектом преображение39.рф»


Открытые вопросы

Бот обрабатывает от 50 до 100 тысяч сообщений в сутки. Для каждого сообщения происходит:

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


Upd

Нативная интеграция отключена 30 июня 2023.
30.06.2023

Thursday, April 15, 2021

Закрытие проекта hrchatv2

Введение

Ранее уже были закрыты сайт коттеджного поселка, сайт TheEliteGames, украинский цензор-бот и другие проекты. Сейчас пришло время закрыть hrchatv2.

Что предстоит сделать:

  • удалить сайт с хостинга;
  • удалить сайт из Cloudflare;
  • удалить домен;
  • архивировать исходники на github;
  • удалить функционал из телеграм-бота gdgCensorBot;
  • передать чат HR специалистам;
  • удалить ссылки на сайт из всех постов блога;
  • перенести проект в список завершенных.


Как удалить?

Прежде всего во всех постах данного блога удалены ссылки на чат и на сайт. «Битые» ссылки — это нехорошо.

Удалить сайт с Cloudflare. Удалить сайт с HTS: попросить службу поддержки удалить перенесенный домен, удалить файлы с хостинга, удалить FTP логин. Удалить документацию сайта с Google Disk. 

Удалить исходники локально. В репозитории указать информации о том, что проект закрыт и убрать ссылки. Отключить github actions и удалить из репозитория secrets. Заархивировать исходники на github.

Попросить службу поддержки active.domains удалить домен. 

Удалить функционал из телеграм-бота gdgCensorBot;


Пысы

Вадюш, ты бесконечно нас на это толкаешь. Я даже вижу что ты в легком недоумении и почему мы никак не соберемся. Тут проблема в нехватке мотивации. Нам классно друг с другом, а зачем нам ещё люди? Стоят ли мнимые деньги усилий, которые придется приложить чтобы это организовать?

Thursday, April 8, 2021

Поиск ключевых фраз

Для добавления нативной интеграции необходимо реализовать алгоритм фильтрации сообщений.

Пример фраз, которые годятся для нативной интеграции:


Поиск ключевых фраз

Требования к алгоритму:

  1. Необходимо игнорировать регистр. Фразы идентичны:
    • «я жирная»;
    • «Я жирная»;
    • «Я ЖИРНАЯ».
  2. Между ключевыми словами могут быть разные разделители и разное их количество.  Необходимо учитывать разные разделители. Пример:
    • «я жирная»;
    • «я - жирная»;
    • «я — жирная»;
    • «я      жирная».
  3. Между ключевыми словами могут быть разные усиливающие слова. Алгоритм должен это понимать:
    • «я очень жирная»
    • «я нереально жирная»
    • «я в последнее время конкретно разжирела». 
  4. Нет смысла обрабатывать сообщения, размер которых меньше пяти символов:
    • «ок»;
    • «неа»;
    • «норм».
  5. Возможна ситуация, когда ключевые слова присутствуют в сообщении, но сообщение не является целевым. Пример:
    • «я держусь, а вот подруга — жирная»;
    • «я не хочу ходить в офис, но мне очень нравится работать».
  6. В объемном тексте с большей вероятностью встретится несколько ключевых слов. Искать необходимо только первое совпадение, остальные ключевые — игнорировать. В современности люди пишут короткие сообщения, а объемный текст скорее всего является копией и не представляет интереса. Подразумевается, что сознательное игнорирование дополнительных ключевых слов не является проблемой и не ведет к потере ключевых фраз.

Исходя из пунктов выше видно, что невозможно написать идеальный алгоритм. В пунктах 3 и 5 всегда будет противоречие. 

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


Отображение результата

Вторая задача — отобразить найденное сообщение в удобном для пользователя виде. Предусмотреть минимальное количество текста.

Требования к алгоритму:

  1. Предварить каждую фразу строкой:
    • «🤖 Cовпадение:»
  2. Выделить ключевое слово жирным. Пример: 
    • «🤖 Cовпадение:
      Нам худеть надо к лету😂»
    • «🤖 Cовпадение:
      Да какая гайка, мне нужно пожрать))»
  3. Обрезать длинное сообщение. Иногда текст сообщения очень большой. Ограничить текст сообщения пятьюдесятью символами справа и слева. Пример:
    • «🤖 Cовпадение:
      ...олго молча в трубку. Потом резко выпалила.
      – Я сейчас приеду. И сбросила вызов.
      Через несколько минут, девушка уже стояла в палате и утешала...»
    • «🤖 Cовпадение:
      ...ты покорила меня своим позитивом, добротней, бескорыстной помощью и мудростью💝 спасибо тебе за тебя  😘😘😘 желаю всего прекрасного и что б все твои мечты обязательно сбывались...»
  4. Отключить предпросмотр ссылок.