Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



lunes, 31 de marzo de 2014

Ejemplo de como hacer un detector de Spam o del idioma en que esta escrito un texto: Uso de Clasificadores Bayesianos

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:





Descargar



Fuentes: