Использование службы Akismet

Разговор о службе Akismet уведет нас немного в сторону от изучения алгоритмов классификации текстов, но для некоторого класса приложений эта служба позволяет решить задачу фильтрации спама с минимальными усилиями и избавить вас от необходимости строить собственный классификатор.

Первоначально Akismet была подключаемым модулем к системе ведения блогов WordPress, который позволял пользователям извещать о спаме в своих блогах и отфильтровывал новые сообщения, если они были похожи на те, что другие люди определили как спам. Теперь API открыт, и вы можете послать службе Akismet произвольную строку и спросить, считает ли она ее спамом.

Первым делом вам понадобится ключ для работы с API Akismet, который можно получить на сайте http://akismet.com. Для вызова API Akismet применяются обычные HTTP-запросы, и существуют интерфейсные библиотеки на разных языках программирования. В этом

разделе мы будем пользоваться библиотекой, доступной по адресу http://kemayo.wordpress.com/2005/12/02/akismet-py. Скачайте файл akismet.py и поместите его в папку, где находятся все библиотеки Python.

Работать с этим API очень просто. Создайте новый файл akismettest.py и включите в него такую функцию:

import akismet

defaultkey = "ВАШ_КЛЮЧ" pageurl="http://yoururlhere.com"

defaultagent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) " defaultagent+="Gecko/20060Q0Q Firefox/1.5.0.7"

def isspam(comment,author,ipaddress, agent=defaultagent, apikey=defaultkey):

try:

valid = akismet.verify_key(apikey,pageurl) if valid:

return akismet.comment_check(apikey,pageurl, ipaddress,agent,comment_content=comment, comment_author_email=author,comment_type="comment") else:

print ‘Недействительный ключ’ return False except akismet.AkismetError, e: print e.response, e.statuscode return False

Теперь у вас есть метод, который можно вызвать, передав любую строку, и посмотреть, похожа ли она на встречавшиеся в комментариях из блогов. Выполните в интерактивном сеансе такие команды: >>> import akismettest >>> msg=’Make money fast! Online Casino!’ >>> akismettest.isspam(msg,’spammer@spam.com’,’127.0.0.1′) True

Поэкспериментируйте с разными именами пользователей, агентами и IP-адресами и посмотрите, как будут меняться результаты.

Поскольку служба Akismet предназначена в первую очередь для фильтрации спамных комментариев в блогах, то с другими типами документов, например с почтовыми сообщениями, она может справляться не так хорошо. Кроме того, в отличие от классификатора, она не позволяет подстраивать параметры и не сообщает о ходе вычислений, приведших к ответу. Однако спамные комментарии она обрабатывает очень точно, поэтому имеет смысл применить ее в приложениях, где встречаются похожие разновидности спама. Ведь Akismet располагает для сравнения куда большим набором документов, чем сможете собрать вы.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100