Bayes Filter manuell trainieren
Frage / Problem
Wie kann ich den SpamAssassin Bayes-Filter trainieren?
Antwort / Lösung
Der SpamAssassin Bayes-Filter kann über die beiden Anwendungen sa-learn.exe oder spamc.exe trainiert werden. Bei der Benutzung auf einem Windows-System ist dabei zu beachten, dass sa-learn die Bayes-Datenbank des lokalen Benutzers trainiert, während spamc zu trainierende Nachrichten an den SpamAssassin-Dämon (spamd) weitergibt, der diese dann im Kontext desjenigen Benutzers trainiert, von dem aus der Dämon gestartet wurde. Das spielt insbesondere dann eine Rolle, wenn Sie den SpamAssassin-Dämon beispielsweise im Kontext eines Systemdienstes ausführen (wie es beispielsweise bei SpamAssassin in a Box der Fall ist). Ein Training mit sa-learn wäre in diesem Fall nutzlos, da die Datenbank nicht für den Benutzeraccount des Systemdienstes, sondern für den aktuellen Windows-Benutzer trainiert werden würde.
Für das manuelle Training des Bayes-Filters steht im Installationsverzeichnis von SpamAssassin in a Box ein Batch-Skript zur Verfügung. Neben dem Ordnerpfad, in dem die zu trainierenden Nachrichten liegen, muss bei der Verwendung des Batch-Skripts angegeben werden, ob die Nachrichten als Spam oder als Ham trainiert werden. Bitte beachten Sie, dass die zu trainierenden Nachrichten RFC822-konform sein müssen, damit der Bayes-Filter sinnvoll trainiert werden kann. Sollten Sie Microsoft Outlook verwenden, so müssen Sie die im .MSG-Format vorliegenden Dateien daher zunächst konvertieren. Das Skript versucht dann, die Nachrichten mit Hilfe von spamc zu trainieren. Sollte dies scheitern, weil auf dem lokalen Rechner keine Instanz des SpamAssassin-Dämon verfügbar ist, so verwendet das Skript alternativ sa-learn (da in diesem Fall davon ausgegangen wird, dass die Spamfilterung nicht über den SpamAssassin-Dämon erfolgt). Zur Benutzung des Batch-Skripts folgen Sie bitte diesen Anweisungen:
1. Öffnen Sie eine Eingabeaufforderung (run > cmd.exe).
2. Wechseln Sie mit Hilfe des cd Kommandos ins Installationsverzeichnis von SpamAssassin in a Box.
3. Führen Sie das folgende Kommando aus: trainbayes.bat
4. Folgen Sie den Anweisungen des Batch-Skripts.
Möchten Sie den Ordnerpfad einmalig angeben, können Sie die Zeile
if not defined FOLDER set "Folder=Hier_Pfad_einfügen"
unter der Zeile
set /P FOLDER=
in der trainbayes.bat Datei einfügen.