Я думаю, что для победы над спамом, о котором вы упомянули, важен не метод обучения, а то, какие функции вы тренируете. Я использую OSBF-Lua от Fidelis Assis, который является очень успешным фильтром: он продолжает побеждать в конкурсах на спам-фильтры. Он использует байесовское обучение, но я думаю, что настоящая причина его успеха - три принципа:
Он тренируется не по отдельным словам, а по разреженным биграммам : пара слов, разделенных от 0 до 4 словами "все равно". Спаммеры должны поместить свое сообщение в где-нибудь , и разреженные биграммы очень хороши в их разоблачении. Он даже находит спам вложения!
Он проводит дополнительное обучение заголовкам сообщений, поскольку спамерам сложно их замаскировать. Пример: сообщение, которое отправляется в вашу сеть и никогда не проходит через ретранслятор вне сети, вероятно, не является спамом.
Если спам-фильтр имеет низкую достоверность своей классификации, он запрашивает ввод от человека. (На практике это добавляет поле заголовка с надписью «Пожалуйста, обучите меня этому сообщению»; человек может игнорировать запрос.) Это означает, что, поскольку спаммеры развивают новые методы, ваш фильтр развивается в соответствии.
Эта комбинация техник чрезвычайно эффективна.
Отказ от ответственности: я работал с Fidelis над рефакторингом некоторого программного обеспечения, чтобы его можно было использовать для других целей, таких как классификация обычной почты по группам или, возможно, однажды, чтобы обнаружить спам в комментариях блога и других местах.