朴素贝叶斯垃圾邮件过滤的有效性

7

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

我听说,垃圾邮件发送者轻易地通过填充额外的与垃圾邮件无关的单词来规避它们。您可以使用哪些编程技术来防止这种情况发生?

4个回答

7
保罗·格雷厄姆是一个人,他在2002年8月的一篇原创文章A Plan for Spam中,真正引入了使用贝叶斯垃圾邮件过滤技术的想法到网络上。然后,他大约一年后的跟进文章介绍了许多迅速出现的问题。这些仍然是有关此主题的非常好的作品。
在第二篇文章中,格雷厄姆提到了使用CRM114,它可以处理比空格分隔单词更广泛的模式。CRM114很酷,但没有为垃圾邮件过滤系统提供太多实现帮助。
还有像Death2SpamSpamProbe等用于贝叶斯垃圾邮件过滤的开源工具。
我发现没有什么像通过 Gmail 账户过滤邮件那样有效。祝你好运。

Google的优势在于他们能够在用户收到邮件后将其从收件箱中取出。这使得他们可以看到大量的数据,当垃圾邮件发送者触发Google的过滤器时,之前发送的电子邮件也可以被删除。这在小型电子邮件服务器上要难得多。 - jcoffland

5

我认为,要想打败你提到的那种垃圾邮件攻击,重要的不是学习方法,而是你训练的特征。我使用Fidelis Assis的OSBF-Lua,这是一个非常成功的过滤器:它在垃圾邮件过滤器比赛中一直获胜。它使用贝叶斯学习,但我认为它成功的真正原因是三个原则:

它不是基于单个单词进行训练,而是基于“稀疏双词组”进行训练:由0到4个“无关紧要”的单词分隔的一对单词。垃圾邮件发送者必须在某个地方放置他们的信息,而稀疏双词组非常擅长发现它们。它甚至可以找到附件垃圾邮件!它还会对消息头进行额外的训练,因为这些对于垃圾邮件发送者来说很难伪装。例如:在您的网络上发起并从未通过离线网络中继主机传递的消息可能不是垃圾邮件。如果垃圾邮件过滤器对其分类的信心较低,则会请求人类输入。(实际上,它会添加一个标题字段,说明“请在此消息上对我进行培训”;人类可以忽略该请求。)这意味着随着垃圾邮件发送者演变出新技术,您的过滤器也会演变以匹配它们。这些技术的结合非常有效。免责声明:我曾与Fidelis合作重构部分软件,以便将其用于其他目的,例如将常规邮件分类到组中,或者有朝一日尝试在博客评论和其他地方检测垃圾邮件。

1

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


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接