天真贝叶斯过滤对过滤垃圾邮件的效果如何?
我听说垃圾邮件发送者可以通过填充额外的非垃圾邮件相关字词来轻松绕过它们。您可以使用哪些编程技术来使用贝叶斯过滤器来阻止它?
答案 0 :(得分:7)
在第二篇文章中,格雷厄姆提到使用CRM114,它可以处理比空格分隔的单词更广泛的模式。 CRM114很酷,但对垃圾邮件过滤系统没有太多实施帮助。
有贝叶斯垃圾邮件过滤的开源powertools,如Death2Spam和SpamProbe。
我发现没有什么比通过Gmail帐户过滤邮件更有效了。快乐的狩猎。
答案 1 :(得分:5)
我认为,为了击败你提到的那种垃圾邮件攻击,重要的不是学习方法,而是你训练的功能。我使用Fidelis Assis的OSBF-Lua这是一个非常成功的过滤器:它继续赢得垃圾邮件过滤器的竞争。它使用贝叶斯学习,但我认为它成功的真正原因是三个原则:
它不会训练单个单词,而是训练稀疏双字母:一对由0到4分隔的单词“不关心”单词。垃圾邮件发送者必须将他们的信息放在的某个地方,而稀疏的双子星则非常善于将它们排除在外。它甚至发现附带垃圾邮件!
它对邮件标题进行了额外的培训,因为垃圾邮件发送者难以伪装。示例:源自您的网络并且从不通过网络外中继主机的邮件可能不是垃圾邮件。
如果垃圾邮件过滤器对其分类信心不足,则会请求来自人的输入。 (在实践中,它添加了一个标题字段,说“请在此消息上训练我”;人类可以忽略该请求。)这意味着随着垃圾邮件发送者不断发展新技术,您的过滤器将逐渐发展为匹配。
这种技术组合非常有效。
免责声明:我曾与Fidelis合作重构某些软件,以便将其用于其他目的,例如将常规邮件分组或可能有一天尝试在博客评论和其他地方检测垃圾邮件。
答案 2 :(得分:1)
你是对的,天真的贝叶斯过滤器易受Bayesian poisoning的影响。
答案 3 :(得分:1)
我使用Popfile不仅可以排除垃圾邮件,还可以将我的电子邮件分类,我发现它非常有效。它使用朴素贝叶斯过滤器。