Напрошенные рекламные рассылки по электронной почте являются одной из наиболее серьезных проблем интернета. На их чтение и удаление тратится большое количество рабочего времени, а существующие на сегодняшний день фильтры не отличаются совершенством. Нередки случаи, когда спам проникает сквозь фильтры, а обычные письма, напротив, оказываются в папке со спамом.
Однако работа по совершенствованию спам-фильтров продолжается. Например, американский программист и предприниматель Пол Грэм опубликовал в интернете статью, весьма подробно описывающую эффективный метод борьбы с рекламными письмами. Этот метод основывается на теории вероятности и использует для фильтрации спама алгоритм Бейеса.
В настоящее время большинство фильтров относят письмо к спаму на основании наличия у него определенного набора признаков. Это могут быть слова или их сочетания, целые предложения или тэги HTML. Такие методы могут оказаться весьма эффективными. Например, созданный Грэмом простой фильтр смог обнаружить 79,7% спама, и лишь в 1,2% случаев к спаму были отнесены обычные письма.
Однако усовершенствование этой системы оказалось более сложной задачей. Грэм посвятил ее решению более полугода, пока ему не пришло в голову использовать для фильтрации спама статистические алгоритмы. В разработанном Грэмом прототипе фильтра каждому встречающемуся в электронной переписке слову или тэгу присваивается значение вероятности его наличия в спаме. На основе этих вероятностей с помощью алгоритма Бейеса вычисляется вероятность того, что данное письмо является спамом.
Высокая вероятность присваивается как излюбленным спамерами словам, вроде sexy или promotion, так и таким неожиданным, на первый взгляд, сочетаниям как ff0000 - код ярко-красного цвета в HTML. Соответственно, низкая вероятность соответствует профессиональным терминам или просто редко использующимся в рекламе словам вроде standardization или mandatory.
В процессе испытания системы фильтрации спама Грэм пропустил через нее 8000 писем, половина из которых являлась спамом. В результате, через фильтры смогли просочиться лишь 0,5% рекламных сообщений, а количество ошибочных срабатываний фильтра на основе бейесовского подхода оказалось нулевым.
По мнению Грэма, для того чтобы система была действительно эффективной, она должна поддерживать возможность индивидуальной настройки, поскольку терминология, использующаяся в электронной переписке разными людьми, отличается. Если же пользователь будет регулярно помечать рекламные письма как спам, то программа сможет накопить достаточно информации для эффективной фильтрации электронной почты.
Грэм разработал вариант своего фильтра на созданном им самим языке Arc (вариант LISP). В свою очередь, группа энтузиастов в настоящее время работает над проектом spambayes. Его целью является разработка спам-фильтра на основе бейесовского алгоритма и языка Python.