O documento descreve um sistema de filtragem de spam desenvolvido por João Ferreira, Ernesto Barbosa e André Morgado em 2012. O sistema utiliza um parser para extrair atributos de emails e aplicar regras para classificá-los. Métodos como J48, Naive Bayes e regras de associação foram testados, com taxas variadas de sucesso. Os autores concluem que escolher os atributos corretos foi o maior desafio.
4. Spam - Definição
• Spam não é mais do que uma mensagem de correio
eletrónico não solicitada.
• A principal motivação para a prática do spamming é o
baixo custo associado ao envio de mensagens eletrônicas.
João Ferreira | Ernesto Barbosa | André Morgado
6. Dificuldades
• Como efetuar um Parser
• Quais atributos são necessários analisar
• Que regras aplicar a cada um para validar se é ou não
spam
• Como criar o dataset para ser analisado no WEKA
João Ferreira | Ernesto Barbosa | André Morgado
7. Características
• O nosso parser utiliza expressões regulares para retirar dos
emails a informação que nós achamos necessária.
• Após retirar a informação, testa se a informação está conforme
algumas regras que definimos.
• Cada regra que não seja satisfeita, implica uma penalização
para esse email.
• Existe um valor máximo que um email não pode ultrapassar, de
modo a evitar ser considerado spam.
João Ferreira | Ernesto Barbosa | André Morgado
8. Características
• Após avaliar todas as regras, ele posteriormente gera o
dataset de treino.
• Em seguida, utilizando o weka, classifica as instâncias
de um dataset de teste, segundo o que aprendeu.
• Todas as novas instâncias, são depois adicionadas ao
dataset de treino.
João Ferreira | Ernesto Barbosa | André Morgado
9. Atributos considerados
• Message-ID
• From
• To
• Bcc
• Cc
• Número de total de contatos
• Número de contatos não repetidos
• Html
João Ferreira | Ernesto Barbosa | André Morgado
10. Regras
• No nosso projeto para considerarmos os emails como spam
tinham de ter algumas das seguintes características:
• !To && (Bcc || Cc)
• Message-ID
• #To >10 || #Cc >10
• Body == HTML
• #Total Contactos > Contactos
• Assunto = “viagra”, “medicamentos”, “meds”, “porno”
• Assunto = “ ”
• From = “no-reply”
João Ferreira | Ernesto Barbosa | André Morgado
11. Fluxo de Sistema
Emails
João Ferreira | Ernesto Barbosa | André Morgado
19. Regras
• Estas foram as regras de associação que o WEKA conseguiu retirar do
nosso dataset:
• To = true and #Contacts <= 7 -> Ham (108.0 / 8.0)
• Cc = false : Spam (17.0)
• To = false : Spam (8.0)
• #Contacts <= 25 : Ham (3.0)
• :Spam (2.0)
João Ferreira | Ernesto Barbosa | André Morgado
20. Part
João Ferreira | Ernesto Barbosa | André Morgado
21. Conclusões
• Foi um trabalho desafiante e interessante.
• Decidir quais os atributos a considerar foi maior problema
na realização deste trabalho.
• Parser adaptado a um determinado formato de email.
• Regras de associação fracas devido ao seu pouco
suporte.
João Ferreira | Ernesto Barbosa | André Morgado
22. MINERAÇÃO DE DADOS
SPAM FILTER
2012
Sistemas de Suporte à Decisão
João Ferreira | Ernesto Barbosa | André Morgado