Bayes-Statistiken in Spamassassin

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bayes-Statistiken in Spamassassin

Beitragvon Leonidas » Sonntag 6. April 2008, 11:55

Hi,

in der SpamAssassin-Dokumentation steht, dass der Bayes-Filter erst einschreitet, wenn genug Spam und Ham trainiert wurde, wobei genug für 200 Mails steht. Jetzt scheint es nicht wirklich ein Tool zu geben, dass einem anzeigt, wie viel man schon hat, daher habe ich mir selbst was geschrieben. SpamAssassin 3.1 nutzt eine BSDDB Hash-Datenbank, die man in Python mit Bordmitteln leicht auslesen kann:

Code: Alles auswählen

#!/usr/bin/env python
import bsddb, os.path, sys

bayes_seen_path = os.path.expanduser('~/.spamassassin/bayes_seen')
try:
    bayes_seen = bsddb.hashopen(bayes_seen_path, 'r')
except bsddb.db.DBNoSuchFileError:
    print >> sys.stderr, 'Bayes DB does not exist, check %s' % bayes_seen_path
    sys.exit(1)
else:
    stats = {'h' : 0, 's' : 0}
    for value in bayes_seen.values():
        stats[value] = stats.get(value, 0) + 1
    bayes_seen.close()
    print 'Ham mails seen: %d\tSpam mails seen: %d' % (stats['h'], stats['s'])


Ausgabe sieht dann so aus:
[code=]$ ./sa-bayes-stats
Ham mails seen: 13692 Spam mails seen: 232[/code]
Na, ab jetzt sollte der Filter greifen :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder