2008-12-12 86 views
7

过滤垃圾邮件的朴素贝叶斯过滤效果如何?朴素贝叶斯垃圾邮件过滤效果

我听说垃圾邮件发送者通过填充额外的非垃圾邮件相关词语,很容易绕过他们。您可以使用哪些编程技术与贝叶斯过滤器来防止这种情况发生?

回答

7

保罗格雷厄姆是真正介绍了在2002年8月用他的原始文章A Plan for Spam在网上广泛使用贝叶斯垃圾邮件过滤这个想法的人。然后,his follow-up一年左右后,很快就引入了许多问题,出现了。这些在这个话题上仍然非常棒。

在第二篇文章中,格雷厄姆提到使用CRM114,它的工作方式比空格分隔的单词要宽得多。 CRM114很酷,但没有太多垃圾邮件过滤系统的实施帮助。

有开源的powertools用于贝叶斯垃圾邮件过滤,如Death2SpamSpamProbe

我发现没有什么作品像通过Gmail帐户过滤邮件。快乐狩猎。

+0

谷歌的优势在于,他们可以在收到邮件后将电子邮件从收件箱中取出。他们可以看到大量数据,当垃圾邮件发送者触发Google的过滤器时,他们发送的以前的电子邮件也可以被删除。在小型电子邮件服务器上这样做很难。 – jcoffland 2016-03-16 02:11:42

5

我认为为了打败你提到的那种垃圾邮件攻击,重要的不是学习方法,而是你训练的功能。我使用Fidelis Assis的OSBF-Lua这是一个非常成功的过滤器:它不断赢得垃圾邮件过滤器竞赛。它采用贝叶斯学习,但我认为其成功的真正原因是三个原则:

  • 它训练不是单一的话,但对稀疏二元语法:一对由0〜4“分隔的单词不关怀“的话。垃圾邮件发送者必须将他们的消息放在的某处,而稀疏的bigrams非常擅长将它们排除在外。它甚至发现附带垃圾邮件!

  • 它对邮件标题做了额外的培训,因为这些对于垃圾邮件制造者来说很难伪装。例如:源自您的网络且永远不会通过离网中继主机的消息可能不是垃圾邮件。

  • 如果垃圾邮件过滤器对其分类的置信度较低,则会请求来自人的输入。 (实际上,它增加了一个标题字段,表示“请在此消息上训练我”;人可以忽略该请求)。这意味着,随着垃圾邮件发送者逐渐发展新技术,您的过滤器将发展为匹配。

这种技术的组合非常有效。

免责声明:我与菲德利斯上重构了一些软件,使其可以用于其他用途,如普通邮件分成组或可能一个整天来检测在博客评论和其他地方的垃圾邮件的工作。

1

我使用Popfile不仅可以分类垃圾邮件,还可以将我的电子邮件分类,我发现它非常有效。它使用朴素贝叶斯过滤器。