A Plan fo Spam | Explicando de forma simples como Paul Graham revolucionou o filtro de e-mails usando matemática
A Plan for Spam é um artigo escrito por Paul Graham, em 2002, que revolucionou o combate a spam usando conceitos matemáticos. Ele introduziu uma abordagem baseada em probabilidade, utilizando a teoria bayesiana. O objetivo é ajudar um programa de e-mail a identificar se uma mensagem é spam ou não com base em palavras e padrões encontrados no texto.
Neste artigo, explicarei de forma simples como funciona essa teoria e mostrarei exemplos práticos.
O que é Spam e Como o Reconhecemos?
Spam são aquelas mensagens de e-mail indesejadas, geralmente propagandas ou até golpes. Paul Graham percebeu que é possível prever se um e-mail é spam observando as palavras nele. Por exemplo:
- Palavras como "desconto", "grátis" e "clique aqui" aparecem muito em spams.
- Palavras como "projeto", "trabalho" e "anexo" são mais comuns em e-mails normais.
Mas como o computador "aprende" a diferenciar essas palavras? É aí que entra a matemática!
A Matemática por Trás do Combate ao Spam
Graham usou a teoria de Bayes, que calcula a probabilidade de algo acontecer com base em eventos anteriores. Aqui está a fórmula:
O que cada parte significa:
- (P(S|W)): A probabilidade de um e-mail ser spam dado que contém uma palavra (W).
- (P(W|S)): A probabilidade de a palavra (W) aparecer em e-mails de spam.
- (P(S)): A probabilidade de qualquer e-mail ser spam.
- (P(W|H)): A probabilidade de a palavra (W) aparecer em e-mails legítimos (não spam).
- (P(H)): A probabilidade de qualquer e-mail ser legítimo.
Como funciona?
- O programa analisa um grande número de e-mails anteriores para calcular (P(W|S)) e (P(W|H)).
- Com esses dados, ele aplica a fórmula para calcular (P(S|W)), ou seja, quão provável é que um e-mail com a palavra (W) seja spam.
Exemplo Prático
Imagine que estamos treinando o programa com o seguinte conjunto de e-mails:
- 100 e-mails, sendo 60 spams e 40 legítimos.
- A palavra "desconto" aparece em 30 e-mails de spam e 5 e-mails legítimos.
Agora vamos calcular:
- Probabilidade da palavra em spams ((P(W|S))):
- Probabilidade da palavra em e-mails legítimos ((P(W|H))):
- Probabilidade de ser spam ((P(S))) e legítimo ((P(H))):
Agora aplicamos à fórmula de Bayes:
Substituímos os valores:
Calculando o denominador:
Logo:
Resultado:
A probabilidade de um e-mail contendo a palavra "desconto" ser spam é 85,7%.
Como Isso é Usado na Prática?
Os filtros de spam analisam cada palavra do e-mail e fazem esse cálculo para várias palavras. Eles combinam as probabilidades para decidir se o e-mail é spam ou não.
- Se a probabilidade combinada for alta (ex.: acima de 90%), o e-mail é marcado como spam.
- Se for baixa, o e-mail é considerado legítimo.
Conclusão
Paul Graham mostrou como usar a matemática para resolver um problema prático. Hoje, quase todos os filtros de e-mail usam alguma versão dessa ideia para proteger você de spams. Entender isso não é só útil para aprender sobre probabilidade, mas também para ver como a matemática pode fazer parte do nosso dia a dia.