Pregunta

Estoy atrapado en tener que escribir un filtro de spam simple No estoy realmente seguro de cómo voy a hacerlo.

Hasta ahora he creado una lista de palabras y un filtro de dominio, que otorgará o eliminará puntos hasta cierto umbral.

Por ejemplo, si está escribiendo sobre "v1agr4" de un dominio en la lista negra, obtendrá como 2 puntos por correo no deseado, pero si está escribiendo sobre "v1agr4" de una cuenta de hotmail.com, obtendrá solo 1 "punto de spam".

¿Tienen alguna otra sugerencia / recurso?

Se trata más de aprender filtros de spam que de desarrollar algo de grado empresarial

¿Fue útil?

Solución

Aquí hay información de algoritmo realmente buena:

http://www.paulgraham.com/spam.html

http://www.paulgraham.com/better.html

Pero, en serio, ¿por qué reinventar la rueda?

Simplemente descargue K9: http://keir.net/k9.html

Otros consejos

Algunos proyectos Java de código abierto relacionados con el filtrado de spam bayesiano (mencionado por LFSR Consulting):

Y uno extra para C ++:

Mire Bayesian Spam Filtering .

Sé que Perl tiene una biblioteca para él, así que supongo que Java también tendrá una.

Puede delegar eso a un servicio distribuido. Akismet es una muy buena solución.

Escribir un filtro de spam depende de sus demandas de escalabilidad.

Si desea una solución escalable, entonces el filtrado de contenido probablemente no sea la opción inteligente, ya que consume mucha CPU y memoria, y en su lugar preferiría el filtrado basado en la reputación o el filtrado basado en la lista negra, que será más amigable con la CPU en su servidor y mucho más fácil de escribir.

Escribí una una publicación en mi blog que explica la idea detrás de escribir un filtro de spam desde el punto de vista de un programador y cubre todas las opciones, desde el filtrado basado en contenido hasta el filtrado basado en listas negras.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top