# is_spam.py # coding: utf-8 import sys sys.path.insert(1, "../lib") import cgi, cgitb cgitb.enable() from common import http_answer from bayes import is_spam form = cgi.FieldStorage() if "body" not in form: http_answer("ERROR: body must be provided in cgi parameter 'body'") sys.exit(0) body = unicode(form.getfirst("body"), "utf-8") result = "SPAM" if is_spam(body) else "NOT SPAM" http_answer(result)
# register.py # coding: utf-8 import sys sys.path.insert(1, '../lib') import cgi, cgitb cgitb.enable() from common import http_answer from bayes import mark_not_spam form = cgi.FieldStorage() if "body" not in form: http_answer("ERROR: body must be provided in cgi parameter 'body'") sys.exit(0) body = unicode( form.getfirst("body"), "utf-8" ) c = mark_not_spam(body) #http_answer("OK: " + c.encode("utf-8")) http_answer("OK: " + str(c))
import sys sys.path.insert(1, '../lib') import cgitb cgitb.enable() from common import http_answer http_answer("""Hello world!<br> <br> Это скрипт для демонстрации работы наивного Байесовского алгоритма на основе Google App Engine для решения задачи определения спама. Ниже есть форма для загрузки текстов как для обучения системы, так и проверки на спам.<br> <br> Внимание! Система рассчитана на работу с utf-8, что автоматически обеспечивается при работе через нижепредставленную форму; но при дергании скриптов вручную надо это учитывать.<br> Поддерживаются английские и русские тексты.<br> Если после сабмита формы кидает сюда же, видимо, у Вас отключен Javascript.<br> И да, сейчас систему легко скомпрометировать, неверно её обучив. Не делайте так, пожалуйста.<br> <br> <form name="spam" method="post" action="/"> Текст письма:<br> <textarea name="body" rows="40" cols="120"></textarea> <br> <input type="submit" value="спам" onclick="this.form.action = '/register_spam'"><br> <input type="submit" value="не спам" onclick="this.form.action = '/register_organic'"><br> <input type="submit" value="проверить" onclick="this.form.action = '/is_spam'"> </form>""")