Байесовская библиотека фильтрации спама для Python - PullRequest
19 голосов
/ 17 февраля 2009

Я ищу библиотеку Python, которая выполняет байесовскую фильтрацию спама. Я посмотрел на SpamBayes и OpenBayes, но оба они, кажется, не поддерживаются (я могу ошибаться).

Кто-нибудь может предложить хорошую библиотеку Python (или Clojure, Common Lisp, даже Ruby), которая реализует байесовскую фильтрацию спама?

Заранее спасибо.

Уточнение : Я на самом деле ищу Байесовский классификатор спама и не обязательно фильтр спама. Я просто хочу обучить его, используя некоторые данные, а потом сказать, являются ли некоторые данные спамом. Извините за путаницу.

Ответы [ 6 ]

12 голосов
/ 18 февраля 2009

Попробуйте Преподобный . Это модуль фильтрации спама.

11 голосов
/ 17 февраля 2009

Хотите ли вы фильтрацию спама или байесовскую классификацию?

Для байесовской классификации существует ряд модулей Python. Я только недавно просматривал Orange , который выглядит очень впечатляюще. R имеет ряд байесовских модулей. Вы можете использовать Rpy , чтобы подключиться к R.

9 голосов
/ 12 августа 2012

RedisBayes выглядит хорошо для меня:

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

По моему опыту, Redis является отличным дополнением к вашему стеку и может помочь обрабатывать данные с невероятной скоростью по сравнению с MySQL, PostgreSQL или любой другой 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')

Надеюсь, это немного поможет.

3 голосов
/ 30 апреля 2009

SpamBayes поддерживается и является зрелым (т. Е. Работает без необходимости постоянно выпускать новые выпуски). Он легко сделает то, что вы хотите. Обратите внимание, что SpamBayes только слабо байесовский (он использует комбинирование по хи-квадрат), но, вероятно, вы предпочитаете какой-либо статистический токен, а не что-то конкретно байесовское.

3 голосов
/ 17 февраля 2009

Попробуйте использовать bogofilter , я не уверен, как его можно использовать из Python. Bogofilter интегрирован со многими почтовыми системами, что означает относительную простоту взаимодействия.

1 голос
/ 11 июня 2009

Модуль в наборе инструментов Python для естественного языка (nltk) делает наивную байесовскую классификацию: nltk.classify.naivebayes.

Отказ от ответственности: Я знаю дерьмо все о байесовской классификации, наивной или мирской.

...