Как я со спамерами боролся
Задолбали меня спамеры, с однотипными предложениями продвинуть группу, устроить розыгрыш, и все такое одинаково назойливое.
Как один из вариантов борьбы - я написал бота.
Простого, как пять копеек, который мониторит все входящие сообщения.
Разбивает их на предложения, каждое предложение разбивает на слова, и сравнивает с таблицей слов/синонимов/словосочетаний, на каждое из которых у него есть ответ. Если ответ(ы) найдены, то берет самое высокоприоритетное и вуаля - отвечает.
Но столкнулся с моментом, который и побудил меня написать этот пост.
Спамеры могли писать заменяя часть русских букв их английскими аналогами, например:
Привеm!
Вроде и написано понятно, но это уже не "привет".
Решение пришло быстро, и отсекает ВСЮ подобную хрень:
0. Пишется функция транслитерации (ч->ch,...)
1. Пишется функция замены английских похожих на русские (k->к, e->е...)
2. Пишется функция анализа английское ли слово (содержит только английские буквы, результат транслитерации равен самому слову)
И далее: если "Слово не английское полностью" и "результат замены не равен слову" - то слово спамное.
Понимаю, звучит запутано, но работает.
И ВСЕ!!!!
Далее остается анализировать только "нормально написанный спам", разобрать который уже легче тем, что в нем могут встречаться спамные слова "продвинем, ведение групп инстаграм;приносила прибыль;" и тому подобное.
В принципе получившимся роботом - готовы поделиться со всеми желающими, если нужно.
Сделали админку, настроить его можно без нашей помощи.
Нас спасает. Базу спамных словосочетаний пополняем. Есть полезные функции удаления "собачек" из групп, и автоблокировки спамера во всех своих группах. Написав в одну - он больше не сможет написать ни в одну другую.