2009-09-09 15 views
5

Tengo un sitio del foro en idioma inglés escrito en perl que está continuamente bombardeado con spam en ruso. ¿Hay alguna manera de usar Perl y regex para detectar texto en ruso para poder bloquearlo?¿Cómo puedo detectar mensajes de correo no deseado en ruso con Perl?

+3

Para detectar el ruso, deberá buscar las palabras que solo se usan en el idioma ruso. ¿O solo quieres probar letras cirílicas? – Gumbo

+8

if ($ text ~ =/vodka /) {$ language = "ru"; } – tunnuz

+0

@Gumbo simplemente detectando cirílico es lo suficientemente bueno ya que el foro está en inglés de todos modos. –

Respuesta

8

Se puede utilizar el siguiente para detectar Cyrillic caracteres (utilizado en ruso):

[\u0400-\u04FF]+ 

Si realmente quiere caracteres rusos, se puede echar un vistazo en el citado documento, que contiene el rango exacto utilizado para el alfabeto ruso básico que es [\u0410-\u044F]. Por supuesto, también necesitaría considerar los caracteres cirílicos de extensión que se usan exclusivamente en ruso, también mencionados en el documento.

3

usando el juego de caracteres cirílicos unicode como lo sugiere JG está bien si todo está codificado como tal. sin embargo, esto es correo no deseado y, en su mayor parte, las cosas no lo son. Además, los remitentes de correo no deseado muy a menudo utilizarán una combinación de conjuntos de caracteres en spams, lo que complica aún más este enfoque.

Me parece que la mejor manera (o al menos la etapa preliminar en el proceso) para detectar ruso spam es a grep para los juegos de caracteres utilizados más comúnmente:

koi8-r 
windows-1251 
iso-8859-5 

siguiente paso después de eso sería para tratar algunos algoritmos de detección de lenguaje en lo que queda. si es un problema lo suficientemente grande, use un servicio pago como google translate (que también "detecta") o xerox. estos servicios proporcionan a IMO la mejor detección de idiomas.

+0

Entiendo su punto, pero dado que es un foro en inglés, detectar si una publicación contiene caracteres cirílicos puede ser suficiente para determinar si se trata de correo no deseado. –

+0

hmmm, yo * estaba * pensando que el póster original hablaba de spam de correo electrónico ... si ese no es el caso, y el correo no deseado se ingresa a través del sitio mismo (por ejemplo, en un foro), entonces estaría de acuerdo con lo que eres diciendo. –

Cuestiones relacionadas