URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91047
[ Назад ]

Исходное сообщение
"Вопросик по поводу обучения SpamAssassin'а"

Отправлено fen , 01-Мрт-11 10:42 
Сейчас перешли с другого антиспамера на спамассассин, в связи с этим возник вопрос.
Байесовская база находится в /var/amavis/.spamassassin/
Делаем обучение по --spam и --ham ручками. Потом выполняем sa-learn --dump magic и
видим точное кол-во скормленных писем:
300 - nspam
250 - nham
Почта начинает фильтроваться, в письмах появляется BAYES_XX, появляется файл journal...
вроде бы все ок. Но у меня возник вопрос. В файле local.cf в настройках спамассассина стоят параметры:
use_bayes 1
bayes_auto_learn 1
т.е. как бы байесовская база сама по идеи тоже должна "развиваться" на основании обработанных писем уже после того, как я выполнил sa-learn. Как это увидеть? Должно ли кол-во nspam и nham в sa-learn --dump magic само увеличиваться или это происходит только когда, сам ручками выполняешь sa-learn --spam и sa-learn --ham? Другими словами, как убедиться в том, что байесовский анализатор не только использует базу основанную на нашем первичном обучении ручками, но и сам автоматически развивается?

Содержание

Сообщения в этом обсуждении
"Вопросик по поводу обучения SpamAssassin'а"
Отправлено Pahanivo , 01-Мрт-11 11:00 
>[оверквотинг удален]
> и
> видим точное кол-во скормленных писем:
> 300 - nspam
> 250 - nham
> Почта начинает фильтроваться, в письмах появляется BAYES_XX, появляется файл journal...
> вроде бы все ок. Но у меня возник вопрос. В файле local.cf
> в настройках спамассассина стоят параметры:
> use_bayes 1
> bayes_auto_learn 1
> т.е. как бы байесовская база сама по идеи тоже должна "развиваться" на

ручками вы обучаете по СВОЕЙ конкретной выборке, аутолён насколько я помню, обучает базу после того как письмо было классифицировано (спам-хам) на автомате
> основании обработанных писем уже после того, как я выполнил sa-learn. Как
> это увидеть? Должно ли кол-во nspam и nham в sa-learn --dump
> magic само увеличиваться или это происходит только когда, сам ручками выполняешь
> sa-learn --spam и sa-learn --ham? Другими словами, как убедиться в том,
> что байесовский анализатор не только использует базу основанную на нашем первичном
> обучении ручками, но и сам автоматически развивается?

ну видимо самой тривиальный способ просто посмотреть на дату БД асасина



"Вопросик по поводу обучения SpamAssassin'а"
Отправлено fen , 01-Мрт-11 11:17 
> ручками вы обучаете по СВОЕЙ конкретной выборке, аутолён насколько я помню, обучает
> базу после того как письмо было классифицировано (спам-хам) на автомате

Да, для начала обучили по своей конкретной выборке (иначе слишком много будет пропускать) и пока смотрим на то, как работает... Да, я согласен, с тем, что аутолён будет обучать после того, как письмо автоматически обработалось...

> ну видимо самой тривиальный способ просто посмотреть на дату БД асасина

Ну, в принципе, конечно да, можно, дата меняется, просто пока не очень понятно на каком кол-ве писем она, ну скажем так, построена что ли... т.е. в ней пока указано то кол-во спамовых писеми и не спамовых, которое я ввел ручками через sa-learn, но, как вы правильно сказалия, дата то меняется базы, значит по идеи с ней что-то происходит...
Вот только пока непонятно что конкретно. Это то и хочется узнать.


"Вопросик по поводу обучения SpamAssassin'а"
Отправлено fen , 01-Мрт-11 12:21 
все, во всем разобрался..
вопрос снят...

"Вопросик по поводу обучения SpamAssassin'а"
Отправлено DeadLoco , 01-Мрт-11 12:38 
> как убедиться в том, что байесовский анализатор не только использует базу основанную
> на нашем первичном обучении ручками, но и сам автоматически развивается?

Проще всего настроить логирование работы СА. У меня он вызывается из экзима, и никаких манипуляций не выполняет, только насчитывает баллы, которые сообщает обратно экзиму. При этом пишется лог вот такого вида:

Feb  2 13:42:35 ### spamd[35249]: spamd: connection from localhost [127.0.0.1] at port 49398
Feb  2 13:42:35 ### spamd[35249]: spamd: setuid to spamd succeeded
Feb  2 13:42:35 ### spamd[35249]: spamd: checking message <E1Pkb6N-000384-00.sachuk-08-mail-ru@f270.mail.ru> for spamd:58
Feb  2 13:42:35  spamd[35249]: spamd: identified spam (8.3/4.9) for spamd:58 in 0.2 seconds, 85937 bytes.
Feb  2 13:42:35 ### spamd[35249]: spamd: result: Y 8 - BAYES_05, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,FSL_RU_URL, HTML_MESSAGE, HTML_TAG_BALANCE_BODY, MISSING_SUBJECT, RATWARE_MPOP_WEBMAIL, T_DKIM_INVALID, T_FREEMAIL_DOC_PDF, T_TO_NO_BRKTS_FREEMAIL scantime=0.2, size=85937, user=spamd, uid=58, required_score=4.9, rhost=localhost, raddr=127.0.0.1, rport=49398, mid=<E1Pkb6N-000384-00.sachuk-08-mail-ru@f270.mail.ru>, bayes=0.038427, autolearn=spam

В последней строке видно перечень заваленных тестов, балл, начисленный байесом и запуск автолерна.

Надо учитывать, что модуль автолерна стартует не всегда, когда письмо наберет больше некоего порога очков, а при одновременном выполнении трех условий:
1. сигнатуры письма нет в базе байеса bayes_seen
2. тесты, проверяющие хедеры письма, дали в сумме больше 3 баллов
3. тесты, проверяющие тело письма, дали в сумме больше 3 баллов

Иными словами, письмо может получить много баллов, но не запустить самообучения. Если письмо набирает меньше 6 баллов, автообучения не может случиться в принципе. Эти значения (3+3) конфигами не регулируются, это внутренняя логика модуля автолерна.