Байесовская библиотека фильтрации спама для Python

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

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

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

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


person Baishampayan Ghose    schedule 17.02.2009    source источник


Ответы (6)


Вам нужна фильтрация спама или байесовская классификация?

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

person Daniel    schedule 17.02.2009

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

person Seun Osewa    schedule 18.02.2009
comment
@dfrankow: да, divmod.org больше не в сети. У PyPI есть страница для Reverend здесь: pypi.python.org/pypi/Divmod% 20Преподобный/0.2.4 - person Paul D. Waite; 06.03.2011
comment
И на этой странице домашняя страница (divmod.org) сломана. Таким образом, можно установить пакет PyPi, но исходный источник пакета исчез. - person dfrankow; 10.03.2011
comment
Я связался с людьми из divmod и спросил о преподобном. Оригинальный исходный код Reverend доступен здесь: bazaar.launchpad.net/~divmod-dev/divmod.org/trunk/files/head:/ - person Emil Stenström; 13.03.2011

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

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

По моему опыту, Redis — отличное дополнение к вашему стеку и может помочь обрабатывать данные с молниеносной скоростью по сравнению с MySQL, PostgreSQL или любой другой СУБД.

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

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

person gnrfan    schedule 11.08.2012

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

person gimel    schedule 17.02.2009

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

person Tony Meyer    schedule 30.04.2009

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

Отказ от ответственности: я знаю всю чушь о байесовской классификации, наивную или мирскую.

person Paul D. Waite    schedule 10.06.2009