SPAM、Bayesian算法和中文(一)

据说SPAM这词的来源和计算机其实没什么关系,也不是某四个英文单词的缩写。它实际上,来自于饭店中一首完没完了地念叨着“SPAM”的歌,这歌的声音如此之大、歌词如此之烦,以至于就餐者都无法正常对话了。

上面的解释很好地描述了SPAM的作用和危害,然而有趣的是这个词本身却没有一个合适且严格的中文翻译。Wikipedia上有人将其翻译成“垃圾邮件”。但我们知道,除了垃圾邮件外,在计算机的世界里SPAM又可变身为聊天室中的垃圾留言、论坛中的垃圾帖子、IM中的垃圾信息,以及一切可以由用户产生内容(UGC)的地方。

SPAM有不小的危害,但以人类目前的技术,很难做到100%的杜绝SPAM。我曾在“有效地阻止SPAM”一文中提到了表单隐藏域办法,这个方法的优点在于,以极低的实现成本得到了相对而言尚可的过滤效果;但缺点也很明显,就是有些SPAM机器人越来越聪明,它们会用自带的HTML解析器分析代码,并绕过过滤机制。我后来在此基础上,在blog所用的SPAM防火墙上增加了“黑白名单”机制(详见“Lonely Thinker 0.4完成及0.5展望”),实际效果相当不错。但此方法必须由人工干预才行-网站的管理者必须一直投入精力来维护黑白名单的数据库,所以比较麻烦。

下面是上述两种方法的一个实际效果:

2009年1月1日-2009年1月15日,LT内建的SPAM防火墙共拦截SPAM 361 条。其中依靠隐藏表单域(方法一)拦截 49 条,约占 14%;依靠黑名单(方法二)拦截 312 条,约占 86%。平均每天共拦截约24条。(原始log文件下载

老实说这个结果还是颇出乎我的意料的,因为居然只有49个/次、约14%的机器人被方法一抓到,而86%的机器人都可以绕过方法一!

由此可见,现在的SPAM机器人都相当的智能,而这也正是我们为什么需要一些更棒的方法来抵御SPAM的原因。在下篇中,我想和大家聊聊我最近研究Bayesian算法的一些心得。

posted @ 2010-07-06 14:58  博文视点  阅读(744)  评论(0编辑  收藏  举报