¿Qué es un filtro bayesiano de spam?
Estoy harto/aburrido/hastiado del spam en sus múltiples formas. En mi trabajo normalmente recibo alrededor de 20 spam diarios, luego de todos los filtros, tanto a nivel de servidor como de cliente. Eso no es mucho ... pero en nuestro sitio Web personal generado con Joomla, a partir de un componente muy conocido y utilizado de recepción de comentarios para artículos (AkoComment, de Arthur Konze), recibimos alrededor de 100 spam diarios... durante harto tiempo estuve probando varios componentes con filtros de distintos tipos contra el spam (ninguno funcionando adecuadamente por motivos diversos) hasta que decidí hacer un componente propio, con filtro bayesiano :)
El tema del spam es serio. De hecho, el ministerio donde trabajo es responsable de un decreto (el famoso "decreto supremo 93") que obliga a los servicios públicos a realizar ciertas tareas en pos de disminuir la cantidad de spam que llega a los servidores públicos. A nivel institucional y nacional provoca disminución de la eficiencia de los servidores, inversión en "appliances" (firewalls, IDS's y otros aparatos específicamente dedicados y adaptados para filtrar), etc., todo lo que obviamente reduda en baja de la productividad y en pérdida (relativa) de recursos.
Un filtro bayesiano funciona de la siguiente forma: cada vez que se recibe un email/mensaje/comentario, y se declara (a través de una acción explícita del usuario) que éste es spam, se observa la frecuencia relativa de cada una de las palabras del mensaje, y se calcula su probabilidad de ocurrencia, dado el hecho de que el mensaje es considerado spam. Se hace exactamente lo mismo con los mensajes que (a partir de una declaración del usuario) son considerados como no spam.
Luego, cuando ya tenemos "entrenado" a nuestro filtro con muchas palabras de spams y de no-spams, cada vez que llega un nuevo mensaje podemos pedirle que calcule la probabilidad de que éste sea spam. Eso se logra:
- Calculando la probabilidad de que el mensaje sea un spam, dado que contiene una palabra determinada (por ejemplo, "viagra"); esto se repite para cada una de las palabras del mensaje,
- Combinando las probabilidades anteriores en una sola.
Así, llegaremos a calcular la probabilidad de que el mensaje sea spam. A esta cifra se le llama "spamicidad": cuando esta cifra supera (por ejemplo) el 90%, estamos en la práctica seguros de que estamos frente a un spam.
¿Qué ventajas tiene un filtro bayesiano? Entre otras, las siguientes:
- Puede ser entrenado para cada caso particular. Los mensajes que cada uno de nosotros recibimos son distintos, provienen de distintas personas, y por tanto los filtros se comportan de manera distinta en cada caso (lo que es efectivo para mí, no necesariamente lo será para ti); la gracia de un filtro bayesiano es que se adapta a cada situación,
- Una vez entrenado, posee muy pocos "falsos positivos": esto es porque a diferencia de otros filtros, ataca la esencia del problema del spam: el contenido del mensaje.
Finalmente, dos referencias:
- Un excelente artículo (fue clave para mí) donde se describe en la práctica cómo implementar un filtro bayesiano, y
- El link a TmComent v1.0, mi componente de filtro bayesiano para comentarios en Joomla :)
- Tama's blog
- 5542 lecturas
-
Recomendados por los lectores de Manzana Mecánica
- Educar con Libertad — 25 Ago 2010. 896 lecturas.
- Farmacéuticas, Medicamentos y Patentes — 1 Sep 2010. 391 lecturas.
- Punta de Choros - Una Alternativa — 27 Ago 2010. 259 lecturas.
- ¿A quiénes beneficia una ley sobre ofensas cometidas a través de Internet? — 30 Ago 2010. 435 lecturas.
- ¿En qué se parece Deep Blue a Homero Simpson? — 11 Ago 2010. 595 lecturas.
- ¿De verdad quieren más doctores? (de los que no sanan) — 12 Ago 2010. 663 lecturas.
- Chile en el e-Gov Survey 2010: Nada demasiado nuevo bajo el sol — 16 Ago 2010. 536 lecturas.






Comentarios
I am happy to find so many
I am happy to find so many useful information here in the post, thanks for sharing.
Regards,
Jack - fdi london
En artículo original de Paul Graham
Has visto el proyecto al que Graham hace referencia en el artículo original sobre filtro bayesiano de Spam:
http://crm114.sourceforge.net/
me parece ... mmh ... avanzado.
Saludos
Muy bueno
Gran post. Un excelente artículo introductorio para conocer este tipo de filtros.
Spreading the Barsiness...
Barseo del Software
Enviar un comentario