POPfile — 'байесов' автоклассификатор почты
POPfile — открытый проект, разработка которого началась в сентябре 2002 г на SourceForge. Страница программы —
![](/e4a/web.gif)
Идея использовать теорему Байеса для классификации почты пришла в голову
![](/e4a/web.gif)
![](/e4a/smiles/icon_smile.gif)
Описание идеи байесовой фильтрации
![](/e4a/web.gif)
![](/e4a/web.gif)
![](/e4a/web.gif)
StatisticalSpamFiltering — наша статья
Авторы PopFile дали также хорошее описание теории:
![](/e4a/web.gif)
![](/e4a/smiles/icon_smile.gif)
![](/e4a/web.gif)
Принцип работы POPfile
Основной режим работы PopFile — в качестве "личного" POP3-proxy: он устанавливается на компьютер пользователя и включается в цепочку обработки почты между почтовым клиентом и POP3-сервером. Почтовый клиент настраивается на получение почты с PopFile, а PopFile при подключении клиента идет на заданный в логине внешний POP3-сервер, получает сообщения, классифицирует их, записывает названия "классов" в заголовки сообщений и отдает клиенту. Почтовый клиент, соответственно, может по заголовкам автоматически сортировать почту по локальным папкам, включая папку spam.Классификация основана на вычисление (по теореме Байеса) вероятности нахождения сообщения в том или ином классе (в PopFile классы называются buckets, в русской версии — "корзины") по вероятностям слов, которые в свою очередь вычисляются PopFile по частотным словарям корзин. Словари заполняются во время "обучения" PopFile, и именно от правильности процесса обучения зависит правильность работы PopFile. Обучать PopFile легко: при установке ему просто "скармливаются" коллекции писем разных классов (предполагается, что у всякий пользователь при чтении почты создает у себя папки с почтой на разные темы, вот эти папки и может принять PopFile). Т.е. он фактически "обучается на примерах". При дальнейшей работе PopFile (уже когда почта принимается через него) вся проходящая через PopFile почта копируется им в свой каталог, доступный через web-интерфейс, аналогичный WebMail. Если сообщение классифицируется неверно, его можно там же переклассифицировать (т.е. указать новую "корзину", куда помещать подобные сообщения впредь), PopFile соответственно модифицирует словари. Таким образом, чем больше почты PopFile читает, тем "умнее" становится. Если, конечно, пользователь не забывает исправлять его ошибки — переклассифицировать неверно классифицированные сообщения. Достаточно быстро точность работы PopFile достигает 98-99%, и тогда папку spam можно контролировать (на предмет ложных срабатываний) лишь эпизодически. В этой экономии времени и состоит "экономический эффект" PopFile, смысл его использования.
PopFile для фильтрации спама на SMTP-сервере
Идея использования PopFile на SMTP-сервере для классификации почты "на лету" очень заманчива по нескольким причинам:- не нужно ставить PopFile на каждый компьютер, обслуживать, обновлять
- использование уже обученного PopFile на общем сервере — избавляет всех пользователей всех доменов этого сервера от необходимости самостоятельной начальной "тренировки" PopFile
- можно спам оставить на сервере в отдельной папке, а не засорять базы почтовых клиентов у пользователей
- можно отправителю спама прямо во время SMTP-сессии в ответ на команду DATA сказать, что его сообщение классифицировано на этом сервере как спам, и получателю доставлено не будет, и тут же привести URL с инструкцией, что делать в случае, если это было ложное срабатывание. MTA отправителя вернет отправителю письмо и описание ошибки , и таким образом отправитель сразу будет знать, что сообщение не достигло адресата, и что по этому поводу предпринять. Это сводит к нулю возможный ущерб от ложных срабатываний (false positives), и фактически возлагает функцию "доучивания" PopFile на отправителей: те меньше 1% отправителей, чьи письма ошибочно классифицированы как спам, должны будут нажать на URL, и на этом их затруднение решается, и PopFile становится умнее.
Скачать POPfile + XMLRPC
Серверные версии PopFile:28.01.2005 EservPopfileRC7
10.02.2004 EservPopfileRC6
04.02.2004 EservPopfileRC5
02.02.2004 EservPopfileRC4
30.01.2004 EservPopfileRC3 — новая сборка PopFile + XMLRPC + SQLite с инсталятором. Без словарей spam+clear (можно использовать от прошлой версии или натренировать Popfile самостоятельно).
12.09.2003
![](/e4a/file.gif)
11.09.2003
![](/e4a/file.gif)
- Реализована оценка "неуверенности" фильтра (см. ChiSquaredDistribution)
- Используется BerkeleyDB для хранения словарей (старые словари автоматически конвертируются). Переклассификация стала работать на порядок быстрее! Внимание! В ActivePerl и старых версиях PopFile (включая 6Мб билд ниже) BerkeleyDB не установлен по умолчанию, об этом надо отдельно позаботиться. См. BerkeleyDB. Если используется наша сборка PopFile от 12.09.2003 (выше), то качать отдельно BerkeleyDB не нужно — уже есть в комплекте.
- fork в PopFile Pop3proxy теперь опционален (в Windows по умолчанию отключен).
- Включено в нашу версию PopFile от 12.09.2003, качать отдельно не нужно. 14.08.2003
![](/e4a/file.gif)
![](/e4a/file.gif)
Работа в качестве POP3-proxy
А в качестве POP3-proxy (штатный режим PopFile) POPfile можно использовать совместно с любым POP3-сервером, включая любую версию Eserv. См. например![](/e4a/web.gif)
![](/e4a/web.gif)
Outclass — MS Outlook plugin для PopFile
![](/e4a/web.gif)
См. также:
StatisticalSpamFiltering, AntiSpamNews, AntiSpam, EservAntiSpam, ForthWiki:PopFile, ForthWiki:AntiSpam