Testmails speichern |
Top Previous Next |
Weitere Möglichkeiten > Testmails speichern
Während der Entwicklungsphase eines neuen Projektes ist es hilfreich die Klassifikation im TextTransformer-Debugger schrittweise testen zu können, falls sie nicht korrekt war.
Das Projekt SaveTests.ttp enthält Code, der dafür sorgt, die Texte der E-Mails in verschiedene Verzeichnisse geschrieben werden, je nachdem, ob es indifferente Mails waren oder Spam oder Nicht-Spam.
Das Projekt setzt voraus, dass es auf der Festplatte einen Ordner mit folgender Struktur gibt:
..\impfilter\Spam ..\impfilter\NonSpam ..\impfilter\Indifferent ..\impfilter\OnError // für CopyTextToDisk in NonFree
Das impfilter-Verzeichnis ist entweder, wie im Projekt erwartet direkt auf den Laufwerk C: zu erstellen oder der Pfad muss im Projekt angepasst werden.
{{ str sTestDir = "C:\\impfilter"; <- anpassen str sTestFile; int iResult = 0; }} SpamAndNonSpam[iResult] {{ out << 0; // test only
switch(iResult) { case 1: sTestDir += "\\NonSpam"; break; case 0: sTestDir += "\\Indifferent"; break; case -1: sTestDir += "\\Spam"; break; }
sTestFile = append_path(sTestDir, ExtraParam() + ".txt");
if(exists(sTestDir)) { RedirectOutput(sTestFile); out << xState.lp_str(); // text, der von der letzten Produjtion erkannt wurde //out << xState.text(0); // in der freien Version des TextTransformer nicht erlaubt //ResetOutput(); } }}
Das Projekt beeinträchtigt die Spamihilator Filter nicht, da immer der Wert 0 für indifferente Mails zurückgegeben wird. Aber die Mail werden so in die Verzeichnisse sortiert, wie sie klassifiziert würden, wenn iResult statt 0 zurückgegeben würde. iResult wird hier berechnet wie im Projekt SpamAndNonSpam. Die Startregel von SpamAndNonSpam wird hier als Unterregel aufgerufen. Das ist ein Trick, um den gesamten Mailtext mit xState.lp_str() ( -> siehe Hilfe zum TextTransformer) ausgeben zu können. Diese Funktion darf in der freien Version des TextTransformers verwendet werden. im Unterschied zur text-Funktion die sich sonst anböte.
Im Projekt NonFree ist ähnlicher Code als Funktion CopyTextToDisk eingebaut. Dort werden auch Mails gespeichert, bei denen ein Parserfehler auftrat.
|