Вопрос
Я застрял в том, чтобы написать простой спам -фильтр, я не совсем уверен в том, как я собираюсь это сделать.
На данный момент я придумал фильтрацию по спискам слов и доменам, которая будет давать или удалять баллы до определенного порога.
Например, если вы пишете о «v1agr4» с домена, занесенного в черный список, вы получите около 2 баллов за спам, но если вы пишете о «v1agr4» с учетной записи hotmail.com, вы получите только 1. «спам-точка».
Ребята, есть ли у вас какие-либо другие предложения/ресурсы?
Речь идет больше об изучении спам-фильтров, чем о разработке чего-то корпоративного уровня.
Решение
Здесь действительно хорошая информация об алгоритме:
http://www.paulgraham.com/spam.html
http://www.paulgraham.com/better.html
Но, если серьезно, зачем изобретать велосипед?
Просто загрузите K9: http://keir.net/k9.html
Другие советы
Некоторые Java-проекты с открытым исходным кодом, связанные с байесовской фильтрацией спама (о которой упоминалось LFSR Consulting):
И еще одно для C++:
Просмотрите байесовскую фильтрацию спама .
Я знаю, что в Perl есть библиотека, поэтому я предполагаю, что у java тоже будет такая.
Я написал один со всеми прибамбасами .
Вы можете делегировать это распределенному сервису. Akismet - очень хорошее решение.
Написание спам-фильтра зависит от ваших требований к масштабируемости.
Если вы хотите масштабируемое решение, то фильтрация контента, вероятно, не является разумным выбором, так как она потребляет очень много ресурсов процессора и памяти, и вместо этого вы бы предпочли выбрать либо фильтрацию на основе репутации, либо фильтрацию на основе черного списка, что будет весьма кстати. более дружественный к процессору на вашем сервере, а также намного легче писать.
Я написал сообщение на мой блог , в котором объясняется идея написания спам-фильтра с точки зрения программиста и рассматриваются все варианты от фильтрации на основе контента до фильтрации на основе черного списка.