Я застрял в необходимости написать простой спам-фильтр Я не совсем уверен, как я собираюсь это сделать.
До сих пор я придумал фильтры слов и доменов, которые будут давать или удалять баллы до определенного порога.
Например, если вы пишете о «v1agr4» из домена, занесенного в черный список, вы получите примерно 2 балла за спам, но если вы пишете о «v1agr4» из учетной записи hotmail.com, вы получите только 1 «точка спама».
Ребята, у вас есть другие предложения / ресурсы?
Это больше об изучении спам-фильтров, чем о разработке чего-то корпоративного уровня.




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