Ejemplo de como hacer un detector de Spam o del idioma en que esta escrito un texto:
Uso de Clasificadores Bayesianos
¿os habéis preguntado como funcionan los detectores de spam en el correo?
¿o como funciona el botón del "detectar idioma" en el http://translate.google.com/?
Pues todo se basa en probabilidades, en especial al teoremas de Bayes y en lo que se llama Clasificadores Bayesianos.
Estos programas clasifican el texto, según el calculo de las probabilidades, según las categorias (Spam / noSpam), y las palabras que contienen el mensaje a analizar.
Previamente este programa "aprende" que tipo de mensajes son spam o no spam, según las palabras (y probabilidades de que aparezcan en el texto),
Para realizar este programa me he basado en el ejemplo del blog Divertimentos Informáticos: La máquina predictora de estados de humor
Además le he añadido varios ejemplos: Detector de Spam, Detector de Idiomas, Comprar Coches y Detectar Estado de Humor.
Datos del "entrenamiento" |
Definiendo Atributos en ele ejemplo del "Detector de Estados de Humor" |
Analizando y mostrando resultados.... |
Para el cálculo de las probabilidades condicionales uso la fórmula:
Donde:
n es el número total de ocurrencias de la clasificación c.
nc es el número de ocurrencias de la clasificación c para el atributo ai.
p es el valor a priori estimado para P(ai|c).
m es el tamaño de muestra equivalente. (valor usado m=3)(vease: http://www.divertimentosinformaticos.com/2011/11/la-maquina-predictora-de-estados-de.html )
Y para el clasificador:
Fuentes: