De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Douglas Adriano Augusto
Data de Publicação: 29 de Janeiro de 2004
Eu desenvolvi uma shell script para o treinamento inicial do bogofilter através do spamassassin. Funciona da seguinte maneira: dado um conjunto de mensagens de e-mail (cada qual em um arquivo), contendo spams e não spams, o spamassassin classifica cada uma delas, assim como o bogofilter. Em cada mensagem que a classificação do bogofilter diferir da classificação do spamassasin, este é retreinado de acordo com o palpite do spamassassin.
Com uma variedade considerável de e-mails, o bogofilter é capaz de assimilar com bastante fidelidade a experiência do spamassassin. A partir deste momento, o bogofilter já pode seguir rumo próprio, apenas refinando à medida que for necessário.
Abaixo o script:
### bogoassassin.sh ### #!/bin/sh # Treina a base do Bogofilter utilizando o conhecimento do Spamassassin, para # uma dada mensagem. Se o Bogofilter classificar incorretamente (sob a # perspectiva do spamassassin), este será re-treinado para o caso onde falhou. # Train On Error (TOE) # O objetivo é aproveitar toda a experiência do Spamassasin e, então, apenas # refinar a base de dados do Bogofilter ao decorrer do tempo. # Douglas Augusto (douglas@coc.ufrj.br), 15/Set/2003 - Sob GPL # Uso: ./bogoassassin.sh arquivo-mensagem # É recomendado o processamento em lote, tendo como base todas as mensagens # previamente arquivadas: # Ex.: for i in $(ls); do ./bogoassassin.sh $i; done # (processa todas as mensagens do diretório atual) # localização dos binários BOGOFILTER="/usr/bin/bogofilter"; SPAMASSASSIN="/usr/bin/spamassassin"; SPAMASSASSINCLIENT="/usr/bin/spamc"; $BOGOFILTER < $* # 0 = SPAM, 1 = NONSPAM CLASS_BOGO=$? # Classificação pelo SpamAssassin # Modo normal (mais lento), habilitado por padrão: $SPAMASSASSIN -e < $* > /dev/null # Caso utilize o spamd/spamc. Este método é recomendado para o processamento em # lote, por ser mais veloz. É necessário, entretanto, que o servidor 'spamd' # esteja rodando. Descomente a linha a seguir e comente a linha referente ao modo normal. #$SPAMASSASSINCLIENT -c < $* > /dev/null # 0 = NONSPAM, >0 = SPAM if [ $? = 0 ]; then # nao é SPAM, segundo o spamassassin echo "- NONSPAM" "["$*"] (Spamassassin)" if [ $CLASS_BOGO = 0 ]; then # o bogo acusou erroneamente SPAM echo " SPAM ["$*"] (Bogofilter): Re-treinando!" # fazer a correção $BOGOFILTER -n < $* else echo " NONSPAM ["$*"] (Bogofilter): Ok!" fi else # é SPAM, segundo o spamassassin echo "- SPAM" "["$*"] (Spamassassin)" if [ $CLASS_BOGO != 0 ]; then # o bogo não acusou SPAM :( echo " NONSPAM ["$*"] (Bogofilter): Re-treinando!" # fazer a correção $BOGOFILTER -s < $* else echo " SPAM ["$*"] (Bogofilter): Ok!" fi fi ###
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários