2009-09-09 3 views
5

Ich habe eine englischsprachige Forumsite in Perl geschrieben, die ständig mit Spam auf Russisch bombardiert wird. Gibt es eine Möglichkeit, Perl und Regex zu verwenden, um russischen Text zu erkennen, damit ich ihn blockieren kann?Wie kann ich russische Spam-Posts mit Perl erkennen?

+3

Um Russisch zu erkennen, müssen Sie nach Wörtern suchen, die nur in der russischen Sprache verwendet werden. Oder willst du nur nach kyrillischen Buchstaben suchen? – Gumbo

+8

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

+0

@Gumbo nur Kyrillisch erkennen ist gut genug, da das Forum sowieso auf Englisch ist. –

Antwort

8

können Sie die folgenden Befehle verwenden Cyrillic Zeichen zu erkennen (in russischer Sprache verwendet):

[\u0400-\u04FF]+ 

Wenn Sie wirklich nur russische Zeichen möchten, können Sie einen Blick auf die oben genannten Dokument nehmen, die die genaue Bereich enthält verwendet für das grundlegende russische Alphabet, das [\u0410-\u044F] ist. Natürlich müssen Sie auch extension kyrillische Zeichen berücksichtigen, die ausschließlich in Russisch verwendet werden - auch im Dokument erwähnt.

3

mit dem Unicode-Cyrillic-Zeichensatz, wie von JG vorgeschlagen, ist in Ordnung, wenn alles als solches codiert ist. Dies ist jedoch Spam und die meisten Dinge sind es nicht. Außerdem werden Spammer sehr oft eine Mischung aus Zeichensätzen in Spam verwenden, was diesen Ansatz weiter verkompliziert.

ich finde, dass der beste Weg (oder zumindest der vorläufige Schritt in dem Prozess) des Erfassens russischen Spam für die am häufigsten verwendeten charsets grep ist:

koi8-r 
windows-1251 
iso-8859-5 

nächster Schritt, nachdem das wäre zu versuchen, einige Spracherkennungsalgorithmen auf was bleibt. Wenn es ein großes Problem ist, verwenden Sie einen kostenpflichtigen Dienst wie Google Translate (der auch "erkennt") oder Xerox. Diese Dienste bieten IMO die beste Spracherkennung in der Umgebung.

+0

Ich verstehe Ihren Punkt, aber da es ein englisches Forum ist, kann die Erkennung, ob ein Beitrag kyrillische Zeichen enthält, ausreichen, um festzustellen, dass es sich um Spam handelt. –

+0

hmmm, ich * dachte * das ursprüngliche Poster sprach über E-Mail-Spam ... Wenn das nicht der Fall ist und der Spam über die Website selbst eingegeben wird (zB in einem Forum), würde ich dem zustimmen, was du bist Sprichwort. –