2009-02-17 60 views
19

Cerco una libreria Python che fa bayesiano Spam Filtering. Ho guardato SpamBayes e OpenBayes, ma entrambi sembrano essere non mantenuti (potrei sbagliarmi).biblioteca filtraggio dello spam Bayesiano per Python

Qualcuno può suggerire una buona libreria Python (o Clojure, Common Lisp, anche Ruby) che implementa bayesiano Filtro posta indesiderata?

Grazie in anticipo.

Chiarimento: Sono in realtà alla ricerca di un bayesiano Spam Classificatore e non necessariamente un filtro anti-spam. Voglio solo addestrarlo utilizzando alcuni dati e in seguito dirmi se alcuni dati forniti sono spam. Ci scusiamo per qualsiasi confusione.

risposta

11

Vuoi filtraggio dello spam o classificazione bayesiana?

Per classificazione bayesiana ci sono una serie di moduli Python. Stavo proprio rivedendo Orange che sembra molto impressionante. R ha un numero di moduli bayesiani. È possibile utilizzare Rpy per collegare in R.

3

tenta di utilizzare bogofilter, io non sono sicuro di come esso può essere utilizzato da Python. Bogofilter è integrato con molti sistemi di posta, il che significa una relativa facilità di interfaccia.

12

Prova Reverend. È un modulo di filtraggio dello spam.

+0

Nota: collegamento interrotto. – dfrankow

+0

@dfrankow: yup, divmod.org non sembra più online. PyPI ha una pagina per Reverendo qui: http://pypi.python.org/pypi/Divmod%20Reverend/0.2.4 –

+0

E su quella pagina, la home page (divmod.org) viene eliminata. Quindi, è possibile installare il pacchetto PyPi, ma la fonte originale del pacchetto è scomparsa. – dfrankow

3

SpamBayesè gestito ed è maturo (vale a dire funziona senza dover avere nuove versioni tutte le volte). Farà facilmente ciò che vuoi. Nota che SpamBayes è solo Bayesiano (usa la combinazione del chi quadrato), ma presumibilmente stai cercando una qualsiasi classificazione statistica basata sui token, piuttosto che qualcosa specificamente bayesiano.

+0

nota: non supporta python3 – Jonathan

1

Un modulo in Python natural language toolkit (nltk) fa naïve Classificazione bayesiana: nltk.classify.naivebayes.

Diniego: So tutto di merda classificazione bayesiana, ingenuo o mondana.

9

RedisBayes guarda bene a me:

http://pypi.python.org/pypi/redisbayes/0.1.3

Nella mia esperienza Redis è un impressionante aggiunta al vostro stack e può aiutare i dati di processo a velocità sorprendenti veloce rispetto a MySQL, PostgreSQL o qualsiasi altro RDBMS.

import redis, redisbayes 
rb = redisbayes.RedisBayes(redis=redis.Redis()) 

rb.train('good', 'sunshine drugs love sex lobster sloth') 
rb.train('bad', 'fear death horror government zombie god') 

assert rb.classify('sloths are so cute i love them') == 'good' 
assert rb.classify('i fear god and love the government') == 'bad' 

print rb.score('i fear god and love the government') 

rb.untrain('good', 'sunshine drugs love sex lobster sloth') 
rb.untrain('bad', 'fear death horror government zombie god') 

La speranza aiuta un po '.