Artikel mit Tag bayes
Gedanken zu Blog-Spamerkennung mittels bogofilter
Folgendes habe ich gerade im Serendipity Forum eingekippt - vielleicht interessiert es ja auch die Leser hier:Da Akismet und auch TypePad Antispam tlw. ein wenig viel wegfiltern - gerade Kommentare auf Deutsch - habe ich gestern ein wenig begonnen, mir über Alternativen Gedanken zu machen. Erst wollte ich Spamassassin zur Erkennung von Spam/Ham verwenden, bin dann aber bei bogofilter gelandet, da Spamassassin sehr viele Tests für Mailheader hat und diese auch erwartet (Received-Zeilen etc.).
Da bogofilter ein Bayes-basierter Filter ist, muss er erst lernen, was gut und was schlechte Kommentare sind. Dazu habe ich zwei Dinge getan:
Alle guten Kommentare je in eine Datei pro Kommentar geschrieben:
SELECT
author,url,body FROM serendipity_comments WHERE STATUS = 'approved';
Alle erkannten und abgelehnten Spamkommentare in je eine Datei pro Kommentar geschrieben:
SELECT
author,url,body FROM serendipity_spamblocklog WHERE
type = 'REJECTED';
In meinem Fall ergab das dann zwei Verzeichnisse, einmal "blogspam" mit fat 370.000 abgelehnten Spams und ein "blogham" Verzeichnis mit 700 guten Kommentaren und Trackbacks. Jede der Dateien hatte untereinander author, url und body stehen.
Jetzt zum lernen:
CODE:
loco@bigboy ~ $ bogofilter -v -H -n -B blogham/
# 6663 words, 696 messages
CODE:
loco@bigboy ~ $ bogofilter -v -H -s -B blogspam/
# 331002 words, 369836 messages
Wenn ich jetzt je einen neue Spamkommentar und einen erfundenen, aber validen sauberen Kommentar zur Prüfung durch den bogofilter jage, erkennt er das brav:
CODE:
loco@bigboy ~ $ bogofilter -v -H < test.blog
X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.7
CODE:
loco@bigboy ~ $ bogofilter -v -H < test.blog
X-Bogosity: Spam, tests=bogofilter, spamicity=1.000000, version=1.1.7
Manuell tut das jetzt alles - aber wie verwende ich das in Serendipity? Ich bin SysAdmin, habe es überhaupt nicht mit der PHP Programmierung. Gäbe es denn Interessierte, die diesen Ansatz der Spamfilterung mittels Bayesfilter weiter verfolgen möchten und evtl. in ein Spamblock-Plugin giessen?
Kategorie: Technik




