ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

JSPAM Trabajo Práctico Teoría de la comunicación


Enviado por   •  25 de Agosto de 2014  •  Tesis  •  1.068 Palabras (5 Páginas)  •  245 Visitas

Página 1 de 5

JSPAM

Trabajo Práctico

Teoría de la comunicación

Versión 1.0

30 de Noviembre de 2008

Índice

 A quien esta dirigido este documento 3

 Prerrequisitos 3

 Introducción 4

 Teorema de Bayes 5

 Naive Bayes 5

 Diseño de la aplicación 6

 Implementación 8

 Set de pruebas 9

 Conclusiones 10

 Manual de usuario 11

Autor 12

 A quien esta dirigido este documento

Este documento esta dirigido a toda persona que quiera informarse sobre como esta construido jSpam. Desde aspectos de lógica de algoritmos hasta detalles de implementación.

 Prerrequisitos

Se deben tener conocimientos básicos de programación orientada a objetos.

 Introducción

Se conoce como spam a aquellos mensajes que son enviados en grandes cantidades a destinatarios que nunca los solicitaron. Generalmente son de índole publicitario, ya sea de un producto genuino o de alguna farsa para el consumidor.

La vía más común para recibir este tipo de mensajes es el correo electrónico. La empresa MessageLabs reporto que para Octubre de 2005, los correos de tipo spam eran el 68% del tráfico total.

Se han desarrollado a lo largo de los años, distintos métodos de clasificación que son utilizados, entre otras cosas, para detectar aquellos mails que son spam de aquellos que no lo son. Otro uso por ejemplo, es para ordenarlos en carpetas. Algunos de estos métodos son: Random Forest, Support Vector Machines, Naive Bayes y Decisión Trees.

jSpam es una aplicación que intenta detectar, dado un listado de mails, aquellos que son spam. Para esto utiliza el algoritmo de clasificación Naive Bayes. Este se basa en el teorema de probabilidad de Bayes.

 Teorema de Bayes

Supongamos un suceso A y otro suceso cualquiera B.

Supongamos que sabemos como se comporta B si se dio A y queremos saber como se comportaría A si se diera primero B.

Por ejemplo sabemos que la probabilidad de que llueva (A) y luego haya accidentes de transito (B) es 0,8. Nos interesaría saber cual es la probabilidad de que haya accidentes de transito (B) y luego llueva (A).

Si nos interesa saber cual es la probabilidad de que suceda A sabiendo que paso B, utilizamos el teorema:

P(A/B) = P(B/A) P(A) / P(B)

Esto se lee como: “La probabilidad de que suceda A sabiendo que paso B es igual a la probabilidad de que suceda B sabiendo que paso A, por la probabilidad de que pase A, dividido la probabilidad de que pase B”.

 Naive Bayes

En nuestro caso el clasificador utiliza el teorema de Bayes para determinar la probabilidad de que un cierto mail sea spam:

P(spam/palabras) = P(palabras/spam) P(spam) / P(palabras)

Esto se lee como: “La probabilidad de que un mail sea spam dado que tiene ciertas palabras es igual a la probabilidad de que esas palabras estén en un mail spam, por la probabilidad de que cualquier mail sea spam, divido la probabilidad de que esas palabras aparezcan en cualquier mail.

Este método requiere de entrenamiento, es decir, indicarle un set de mails ya preclasificados. De esta forma va a contar con la probabilidad de las palabras en un mail spam. Luego al clasificar un mail, cada palabra ira sumando una probabilidad que si llega a un cierto porcentaje va a determinar la clasificación del mismo.

- Ventajas

Se adapta al usuario, ya que las probabilidades son únicas para cada uno.

Evita falsos positivos, en donde se filtra como spam algo que no lo es.

- Desventajas

Susceptible al “envenenamiento bayesiano”, en donde los spammers incluyen palabras que no suelen aparecer en un spam, afectando de esta forma las probabilidades y por lo tanto al algoritmo.

 Diseño de la aplicación

La aplicación tiene un diseño de programación orientada a objetos. Si bien se trato de simplificar el mismo tiene una división en capas para permitir extenderlo, cambiar la presentación y/o acceso a datos en un futuro.

Diagrama de clases:

 Implementación

El desarrollo esta hecho en Java versión 1.5.x.

Como motor de base de datos se utilizo mySql

...

Descargar como (para miembros actualizados)  txt (7.6 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com