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

Ingo Wiarda <[email protected]> Thu, 6 Nov 2003 11:43:34 +0100
Newsgroups gmane.mail.spam.spamassassin.devel.de
Message-ID <[email protected]>
Moin Wolfram;

Am Mittwoch 05 November 2003 17:01 schrieb Wolfram Schroeder:
> Ingo Wiarda schrieb:
> >>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?

> >
> > Ich würde so etwas (Spam-Bewertung in Relation zum Vorkommen guter/böser
> > Worte) lieber durch den Bayes Filter machen lassen. 

> 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.
>

Outlook/Exchange habe ich nicht, aber vielleicht hilft der 1. Link zum Thema 
bei Google: http://www.sci.fi/~fuerte/SpamAddIn.htm

> 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.

Ok, der eval-Test erspart natürlich die wiederholte Verwendung einer 
Monsterregex in den Rules.

Die Performance geht aber sowieso in den Keller bei dieser Methode :)
Wenn man mal überlegt, wieviele Backtracking bei
m/(?:klicken|anmelden|abmelden|mails|newsletter).{1,80}(?:usw)/
auftreten wird, dann kann es schon gruselig werden.
Um .{1,80} bzw. eine intelligente Variante davon kommt man kaum herum, denn 
irgendwie muß man ja klar machen, daß da zwischen dem 1. und dem 2. Wort 
etwas (aber nicht zuviel) stehen darf. 

Aber vielleicht sehe ich das auch zu schwarz. Es käme auf einen Versuch an 
(wie immer ;) ).

> 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)

rawbody && word_is_near_to wird bei HTML-Mails nicht funktionieren (vgl. 
<sdalkjsdf>klic<salkjlkj>ken)


Ingo

-- 
http://dewarim.de



-------------------------------------------------------
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/