Re: [SAde] "in der Nähe von"

Wolfram Schroeder <[email protected]> Wed, 05 Nov 2003 17:01:07 +0100
Newsgroups gmane.mail.spam.spamassassin.devel.de
Message-ID <[email protected]>
Ingo Wiarda schrieb:
> Am Mittwoch 05 November 2003 01:21 schrieb Wolfram Schroeder:
> 
> 
>>kann jemand eine eval-Regel erstellen für "bla ist in der Nähe von
>>blub", z.B. bis zu 2 Zeilen oder bis zu 25 Worte entfernt?
> 
> 
> Das müßte mit einer Regex gehen... ganz primitiv z.B. mit
> 
> m/Gewinn.{1,140}garantiert!/sm; # 140 Zeichen ~ 2-4 Zeilen.
> 
> Aber selbst wenn man das mit einem Test auf Wortgrenzen verfeinert, dürfte der 
> Aufwand (Rechenzeit) zu hoch sein.
> 
> Ich würde so etwas (Spam-Bewertung in Relation zum Vorkommen guter/böser 
> Worte) lieber durch den Bayes Filter machen lassen. Oder hattest du etwas 
> bestimmtes im Sinn, das dadurch nicht abgedeckt wird?
> 
> Ingo
> 

Hi Ingo,

der Bayes-Filter ist bestimmt nett mit SA zusammen, ich kann ihn aber 
bei mir im Laden nicht einsetzen, weil ich die Mails (Ham/Spam) aus 
Outlook/Exchange nicht wieder rauskriege. Von daher bin ich auf 
Regelsätze und Razor/Pyzor/DCC reduziert.

Meine Idee war, die Absätze härter zu treffen, die die üblichen 
Abmeldestatements enthalten, d.h. Punkte zu vergeben für einen Absatz, 
in dem z.B. in beliebiger Reihenfolge vorkommt "ab(zu?)melden", 
"klicken", "nicht mehr|keine weiteren" und "Mails|Newsletter". Wie das 
Beispiel zeigt, bin ich gestern beim Erweitern einer Regel im Wiki drauf 
gekommen :-) Ich will auch, dass die Worte in vertauschter Reihenfolge 
stehen können.

Das geht ungefähr auch mit RE, aber die Anzahl der Regeln bzw. 
Alternativen explodiert ja mit der Anzahl der Worte, die "in der Nähe 
von"-einander stehen sollen, und das notwendige .{1,80} ist auch nicht 
wirklich gut für die Performance und nicht wirklich das, was ich meine.

Meine Idee dazu war etwas wie

rawbody __BLA1 eval:word_is_near_to("klicken", "abmelden")
rawbody __BLA2 eval:word_is_near_to("klicken", "abzumelden")
rawbody __BLA3 eval:word_is_near_to("klicken", "mails")
rawbody __BLA3 eval:word_is_near_to("klicken", "newsletter")
meta    ABMELDEABSATZ (__BLA1 || __BLA2) && (__BLA3 || __BLA4)

schreiben zu können (bildet das Beispiel nur z.T. ab).

Ähnliche Anwendungen gibt es zuhauf.

Wolfram



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/