• 14610
  • 181
  • 10
Нравится блог?
Подписывайтесь!

Очередной способ борьбы со спамом

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

Одной из таких ситуаций может стать пример, который я хочу сейчас рассмотреть. Пользователь пишет сообщение "вася васечкин - лох". Его можно добавить в фильтры, но пользователь может изменить сообщение и написать его так: "в.а.с.я.в.а.с.е.ч.к.и.н.л.о.х" - с точки зрения смысловой нагрузки - это одно и то же сообщение. Пытаться его побороть шинглами бесполезно - определить границы слов программно (без использования словарей) - невозможно. Мы можем оставить только буквы в обоих сообщениях - сработает. А если пользователь напишет "в_а_с_я_в_а_с_е_ч_к_и_н_л_о_х_qwerty"?

Решение достаточно элементарно и лежит на поверхности :)

1. Переводим строку в нижний (или верхний - без разницы) регистр
2. Делаем два варианта строки - оставляем только русские и только латинские буквы
3. Выбираем самую длинную из полученных строк (очевидно, количество мусора в строке должно быть меньше, чем смысловой нагрузки)
4. Берём хэши (md5 и sha1 - чтобы снизить вероятность коллизии) и смотрим в базе комментариев
5. Если нашли - запрещаем отправку комментария, если нет - разрешаем.

Небольшой hint - для хранения хэшей в MySQL лучше использовать поле типа BINARY размером в половину строки с хэшем и использовать функцию UNHEX($string) при вставке.

Этот метод имеет несколько недостатков:

1. При небольшом изменении строки хэши будут другими и комментарий пройдёт. Здесь можно каким-то образом объединить этот метод с алгоритмом шинглов.

2. Если добавлять мусор из букв того же языка, что и смысловая часть комментария хэши опять-таки будут другими.

29 октября 2010, 11:10
538

Загрузка...
Loading...

Комментарии

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Зачем Forbes.kz пытается дискредитировать программу латинизации?

Зачем Forbes.kz пытается дискредитировать программу латинизации?

Буквально вчера заинтересовался одним любопытным сайтом. Не зря заинтересовался, взбесил он меня не по-детски. Да и не только меня. С этим хитрым сайтом был связан настоящий взрыв негатива в Казнете.
Rulan_Oteshev
13 сент. 2017 / 16:32
Почему GGG, при любом результате боя, не войдёт в историю как великий боксёр

Почему GGG, при любом результате боя, не войдёт в историю как великий боксёр

16 сентября в Лас-Вегасе состоится боксёрский вечер, главным событием на котором станет бой за титул чемпиона мира в среднем весе между Геннадием Головкиным и Саулем «Канело» Альваресом.
openqazaqstan
13 сент. 2017 / 13:44
  • 5006
  • 33
Дорога Алматы – Хоргос. Впечатления от первой поездки

Дорога Алматы – Хоргос. Впечатления от первой поездки

Если раньше путь до Хоргоса занимал около 5 часов по Кульджинской трассе, то сейчас время до границы с Китаем сокращается до 2,5-3 часов. Уже сейчас можно ехать по 4-полосной дороге с цементобетонным покрытием.
theYakov
15 сент. 2017 / 9:35
  • 5049
  • 12
Посол Польши: «Переход на латиницу для Казахстана станет цивилизационной революцией»

Посол Польши: «Переход на латиницу для Казахстана станет цивилизационной революцией»

Сегодня в Казахстане активно обсуждают предложенный латинский алфавит казахского языка в Парламенте, мнения высказываются самые разные, некоторые даже предпочли вообще отказаться от такого перехода.
Shimanskaya
13 сент. 2017 / 12:28
  • 2902
  • 45
Работа в Mc Donald's. Советы и лайфхаки для гостей

Работа в Mc Donald's. Советы и лайфхаки для гостей

За три месяца я поработала в трёх разных сферах. И сегодня, хочу поведать вам о работе в одной из богатейших компаний мира. Звучит значительно лучше, чем «Я работаю в Mc Donald’s».
madiNAtty
15 сент. 2017 / 12:44
  • 2803
  • 16
Фильм «Крылья, подаренные матерью» учит ценить своих близких в любых ситуациях

Фильм «Крылья, подаренные матерью» учит ценить своих близких в любых ситуациях

Вчера состоялся предпремьерный показ нашего отечественного фильма "Крылья, подаренные матерью", после просмотра которого защемило сердце - настолько правдоподобной казалась эта история.
Gulmira-I
14 сент. 2017 / 9:34
  • 2114
  • 0
Фотопрогулка по Алматы. Иностранцам не интересны наши стеклянные здания и моллы

Фотопрогулка по Алматы. Иностранцам не интересны наши стеклянные здания и моллы

Алматы - самый лучший город для меня, так как родной и самый близкий. Так как я много лет прожил за рубежом, могу сказать свою точку зрения, что надо делать у нас.
Ispanec
15 сент. 2017 / 6:20
  • 1802
  • 21
«Моя депрессия длилась больше двух лет». История о том, как я была готова сдаться

«Моя депрессия длилась больше двух лет». История о том, как я была готова сдаться

По данным статистики 2017 года Казахстан занимает 4 место по самоубийствам. Говорить об этом - социальное табу. Мы игнорируем разговоры о депрессиях. Потому что нам страшно.
goribaldi
вчера / 15:45
  • 1568
  • 16
Бой Головкина и Альвареса завершился ничьей

Бой Головкина и Альвареса завершился ничьей

Канело согласен на реванш, что неудивительно, Гена тоже "за". Все это было немного ожидаемо - эксперты отмечали, что промоутеры надавят на поединок, и захотят растянуть его на трилогию.
Trequartista
17 сент. 2017 / 0:15
  • 1888
  • 17