UA Anti Spam Bot: як ми налаштували нейромережу, що рятує життя цивільним і військовим

Коли розпочалося повномасштабне вторгнення Росії, українці часто не знали, як правильно поводитися під час воєнного стану. З першими «прильотами» люди дуже хвилювались за свою безпеку та водночас їм було цікаво, що й де відбувається. Тому під час повітряних тривог мешканці міст одразу починали писати в чати в Telegram, аби уточнити деталі.

В результаті, окремі громадяни публічно описували, де рухається техніка ЗСУ, через що ворог міг готувати облави. Або можна було побачити, на жаль, інформацію про локацію блокпостів. Також люди описували руйнування та координати прильотів, завдяки чому ворог міг коригувати свій вогонь.

Тому деякі користувачі почали просити адміністраторів видаляти подібні шкідливі повідомлення, що несли реальну загрозу життю українців. Однак не всі адміністратори встигали оперативно видаляти такі повідомлення. Більше того, «прильоти» траплялись і у нічний час, коли адміністрація чатів у Telegram була просто недоступною.

З’явилась ідея — використати автоматизацію для вирішення проблеми.

У перші дні повномасштабної війни я розробив алгоритм, який за ключовими словами знаходив подію і локацію, після чого видаляв повідомлення та попереджував користувача, що подібну інформацію не можна поширювати.

Прототип системи був готовий буквально за декілька годин. Я презентував його всередині нашої компанії Master of Code Global. І після підтримки ідеї було прийнято рішення про розробку ввечері того самого дня.

За два дні спільних зусиль із колегами ми підготовали UA Anti Spam Bot. Запустили проєкт для вільного користування, і його одразу взяли на озброєння деякі чати в Telegram. Бот суттєво полегшив роботу адміністраторам чатів, оскільки автоматично видаляв небажані повідомлення.

Як ідентифікувати небажану стратегічну інформацію для видалення з чатів?

Перш за все, потрібно було зрозуміти, які саме повідомлення юзери пишуть, щоб потім можна було розробити алгоритм для їх видалення.

Приклад повідомлень користувачів, які містили «підозрілі» слова, але які не варто було видаляти:

А ось приклад повідомлень, які вже варто було видаляти:

Для аналізу «спаму» ми почали використовувати алгоритм пошуку слів високого ризику та локацій. З цих прикладів ми можемо зрозуміти, що є певні слова і вирази, по яким ми можемо знаходити повідомлення.

Їх можна умовно розділити на дві групи:

  1. Слова високого ризику: горить, палає, приліт, танк, БТР тощо.
  2. Локації: Київ, Черкаси, заправка, парк, завод тощо.

Якщо в повідомленні міститься пара слів із цих двох груп, ми його автоматично виділяємо як «стратегічну інформацію».

Плюсом цього алгоритму є швидкість розробки і розпаралелювання відповідальності: поки одна людина пише код, група волонтерів може збирати подібні слова і локації, що дозволяє нам максимально швидко зробити proof of concept (POC).

Як «натренувати» нейромережу для максимальної точності роботи?

Коли датасет значно виріс, ми стикнулися з проблемою перформансу. Звичайні алгоритми порівняння виявились неефективними, бо вони не враховують контекст повідомлення. Наприклад, маємо повідомлення «сьогодні горить сонце в Києві». Бот аналізував це повідомлення і знаходив слово «горить», а також локацію «Київ», а тому видаляв повідомлення.

Щоб уникнути таких проблем, ми вирішили «натренувати» нейромережу, яка могла б враховувати контекст повідомлення. Для тренування нейромережі необхідно багато даних, які ми не мали на той час. Ми почали вручну збирати повідомлення з чатів в Google Sheet. Це займало багато часу і треба було знаходити джерела інформації самостійно.

За певний час ми змогли назбирати достатньо даних, щоб наша нейромережа змогла доволі точно розуміти, чи є повідомлення спамом. Також результат перевірки був значно швидше, ніж алгоритм порівняння, що дозволило прискорити роботу бота.

В результаті, ми змогли знайти спосіб перевірки повідомлень, що схожий до роботи адміністратора, але звільняє його від постійної перевірки повідомлень. Також бот вміє реагувати на повідомлення одразу, що не дозволяє ворогу прочитати їх першим.

UA Anti Spam Bot еволюціонує та розвивається: додаємо нові корисні фітчі.

Я починав працювати над проєктом один, а зараз наша волонтерська команда складається з десяти осіб, моїх колег по Master of Code Global.

Ми навчили бота блокувати фішингові посилання на фейкову фінансову допомогу, яка імітує єДопомога, допомогу ООН, ВПО та інші. Крім того, ми налаштували автоматичний збір повідомлень — розробили кастомний телеграм-клієнт, на якому крутимо нашу нейромережу для пошуку шахрайських та стратегічних повідомлень.

Також ми додали до меню функціонал повітряних тривог — бот може автоматично відправляти в чат повідомлення про початок і відбій повітряної тривоги в регіоні, а також вимикати чат під час тривоги для запобіганню поширення інформації, що може нашкодити нашим військовим і цивільному населенню.

Станом на 26 жовтня 2022 року, UA Anti Spam Bot охоплює понад 277 000 користувачів. Нині чат-бот використовують у 2 282 чатах, 559 чатах супер-груп, 98 чатах груп, 1 580 приватних чатах та 45 каналах.

Ці цифри свідчать про існування попиту на такий сервіс і велику корисність боту. UA Anti Spam Bot формує культуру обережного поводження з інформацією під час війни та рятує життя українцям. Це надихає нас розвивати бот і надалі.

👍ПодобаєтьсяСподобалось12
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі