用bogofilter对django_评论进行贝叶斯垃圾邮件过滤

django-bogofilter的Python项目详细描述


说明

贝叶斯过滤应用于评论垃圾邮件。

当Captcha不能再切割时,Akismet和Discs不是一个选项 而黄鼠狼们正在逼近,是时候看看问题是什么了 对付有史以来最大的垃圾邮件目标:电子邮件。统计 对单个信息的词频分析证明是简单的, 提供足够的训练数据,快速可靠。

使用专为评论垃圾邮件设计的工具的诀窍是 使用评论数据动态生成电子邮件。自定义电子邮件 标题允许我们给bogofilter输入任何我们认为相关的字段。培训 是从django管理器中完成的,使用自定义的仲裁类进行仲裁 而且这个应用程序是高度可配置的。

用法

  • 如果你没有custom comments app, 制作一个

  • 在自定义评论应用程序中,将模型从 bogofilter.model s.bogofiltercoment(这是一个代理模型,不会 添加任何新字段)

  • 从bogofilter.forms.bogofiltercomentform将表单子类化

  • register bogofilter.moderation.bogofiltercomentrator或其子类 对于您的评论所附加到的模型。你可以这样做 应用程序的models.py文件中有类似的内容(假设 目标模型为条目:

    ifEntrynotinmoderator._registry:moderator.register(Entry,BogofilterCommentModerator)
  • 在admin.py中,您可能希望更改 自定义管理模型。将bogofilter.admin.bogo_status用作 列表显示。注册您的管理模型子类 bogofilter.admin.bogofiltercomentsadmin如下:

    admin.site.unregister(BogofilterComment)admin.site.register(MyComment,MyCommentAdmin)
  • 从管理员那里,训练博戈菲尔和一批通缉犯 不需要的(垃圾邮件)评论。每100个都是一个好的开始。在这之后 过滤“不确定”并相应地标记。下一个筛选依据 “不匹配”。假设你的火腿评论是公开的, 而垃圾邮件则不是。修复Bogofilter之间的任何冲突 通过将评论标记为垃圾邮件或火腿来显示状态和您的公共状态。

  • 您可以通过 设置中的bogofilter_args变量。py:

    BOGOFILTER_ARGS=['-o','0.7']# lower the spam_cutoff from the default 0.95
  • 如果你在同一件事上不止一次使用博戈菲尔 帐户,您需要指定默认目录以外的目录 ~/.bogofilter:

    BOGOFILTER_ARGS=['-d','./bogofilter_test_dir','-o','0.7']

提示

  • 一些垃圾邮件机器人只在页面上停留几秒钟,这样它们就可以被清除 基于这个。您可以从 表单(它是一个浮点时间戳),将其存储在模型中,然后 如果是,则从版主类的“allow”方法返回false 小于某个值(4秒应足以避免错误 底片)。
  • 出于某种原因,中庸信号可能会丢失,并发出垃圾评论 如果.bogotype()为's'(垃圾邮件)或页面上的时间低于 限制通过。你可以处理那些周期性的任务 删除它们。我每5分钟跑一次 与新注释相关的通知将忽略那些更新的注释。
  • 定期删除垃圾邮件评论间隔足够长 允许你营救分类错误的火腿。

测试

python setup.py test

测试套件不知羞耻地取自django contrib的评论和 已转换为尽可能使用“bogofilter”应用程序。

使用python-2.7.6、python-3.3.4、django-1.6.2进行测试, Django-contrib-comments-1.5和Bogofilter-1.2.4。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Thumbnailator库将图像转换为cmyk   Java反射从目录中的类运行测试   JavaEclipseJDT编译器说方法未定义,但EclipseIDE没有   重构如何重构一行重复的java代码   java Eclipse:使用删除线文本呈现自定义注释   java问题与ArrayList复制数据   java如何在swagger中传递访问令牌?   使用另一个java文件运行java文件时出错   java为什么谷歌云存储生成的上传链接在成功上传后不会失效?   java将我的客户端PC重定向到默认登录页面   java hibernate c3p0配置mysql问题   java和java之间的区别。尼奥。文件文件和java。伊奥。文件   列出java循环并向映射中添加值   java为什么OJ报告这段代码的运行时错误?