贝叶斯公式在处理垃圾邮件中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
贝叶斯公式在处理垃圾邮件中的应用
基于贝叶斯技术的垃圾邮件处理研究
易均,李晖,王歆
(江西省科学院,江西南昌 330029)
摘要:本论文首先对垃圾邮件进行了简要的描述,并叙述了反垃圾邮件技术的研究现状,介绍贝叶斯过滤技术的工作原理及技术原理,最后给出贝叶斯技术研究的发展方向。
关键词:贝叶斯技术;反垃圾邮件
1、前言
随着因特网应用的快速发展,电子邮件也逐步成为因特网的最大一个应用之一,给我们生活带来很大的方便,而且电子邮件的发展也代表了我国进入信息业高速发展的阶段。但是也同时产生了一个新的问题,即大量的垃圾邮件出现。如何把电子邮件中的垃圾邮件过滤掉,已经成为电子邮件用户此刻最关心的一大问题,这也就是所谓的“反垃圾邮件”问题。
反垃圾邮件是具有相当难度的事情,垃圾邮件每天都在增加和变化。据Radicati估计2007年,垃圾邮件的比例将达到70%。现在的垃圾邮件发送者变得更加狡猾,采用静态反垃圾邮件技术很难防范。垃圾邮件发送者只要简单的研究一下现在采用了哪些静态反垃圾邮件,然后相应的改变一下邮件的内容或发送方式,就可以逃避检查了,因此,必须采用一种新的技术来克服静态反垃圾邮件的弱点,这种技术应该对垃圾邮件发送者的各种伎俩了如指掌,还要能适应不同用户对于反垃圾邮件的个性化需求。这种技术就是贝叶斯过滤技术。
2、垃圾邮件概述以及反垃圾邮件技术的研究现状
2.1、垃圾邮件的概述
我国至今对垃圾邮件的定义有很多种,包括如下几种:①收件人没有提出要求或者同意接收的广告、及其各种形式的宣传品等宣传性的电子邮件;②在邮件中,隐藏了发件人身份、地址、标题等信息的电子邮件:③含有虚假的发件人的身份、地址等信息源的电子邮件;④收件人无法拒收或者无法删除的电子邮件。目前,垃圾邮件的定义被扩大了,除了上述对垃圾邮件定义外,病
毒、反动、色情等等无用的邮件,也被包括在垃圾邮件的定义中。
2.2、反垃圾邮件技术的研究现状
目前影响较大的主流反垃圾邮件技术有以下二种:
⑴协议改进类的方法,重新构建SMTP协议,加入安全认证机制。针对垃圾邮件问题对SMTP协议进行改进和完善是许多研究人员关注的重点问题所在。因为就SMTP协议改进而言面临着很多棘手之处,因此目前新协议没有得到广泛的使用,相信未来随着网络结构的进一步发展,在这方面的研究成果会成为解决垃圾邮件问题的有力措施。
⑵在当今的邮件系统中载入其它处理程序来阻断垃圾邮件,其中包含了垃圾邮件过滤技术、邮件服务器的安全管理技术两部分内容。对过滤技术的应用主要集中在利用IP或者域名“黑名单”进行邮件过滤或中断;基于数据挖掘技术进行的过滤垃圾邮件,利用文本分类与统计算法进行垃圾邮件检测。比较有代表性的包括结合DNS的实时黑名单过滤、贝叶斯过滤器等,其中贝叶斯过滤器以较高的准确率在垃圾邮件过滤技术中占据了很重要的地位。
3、贝叶斯过滤技术
3.1、贝叶斯过滤技术的工作原理
根据贝叶斯理论,根据已经发生的时间可以预测未来事件发生的可能性。将该理论运用到反垃圾邮件上:若已知某些字词经常出现在垃圾邮件中,却很少出现在合法邮件中,当一封邮件含有这些字词时,那么他是垃圾邮件的可能性就很大。
⑴创建基于字词符号的贝叶斯数据库
用户首先需要对贝叶斯进行培训,即将邮件分类为垃圾邮件(用户不想要的)和正常邮件(用户想要的),贝叶斯将提取这些邮件样本中主题和信体中的独立字串,包括字词(word)和符号(token)(如$,IP地址,域名等),并建立相应的数据库。
⑵创建贝叶斯概率库
统计出每个字串在垃圾邮件中出现的概率以及在正常邮件中出现的概率,然后根据公式计算出邮件中含某字串则为垃圾邮件的概率。例如:在3000封垃圾邮件样本中"mortgage"(抵押)出现了400次,而在300封正常邮件中这个词出现了5次,那么其对应的垃圾概率为0.8889([400/3000] /[5/300+400/3000])。
⑶创建个性化的贝叶斯库
由于每个单位对所收到的邮件偏好是不同的,例如,某个金融类单位在正常邮件中可能经常用到"mortgage"这个词,如果使用静态的关键词过滤,就可能产生很多误判。如果采用贝叶斯过滤,在对贝叶斯进行培训的时候,将该单位的合法邮件(自然,很多都包含了"mortgage"这个词)分类为正常邮件。这样,垃圾邮件的识别率将更高,同时也使得误判率变得很低。
贝叶斯过滤算法的主要思想是在已知的大量垃圾邮件中,邮件中包含一些特征串(token),这些特征串可以简单的理解为一个完整的单词,但实际上它不仅仅限于单词,它们一般出现在邮件中的频率特别高,而在一些合法邮件中,另一些特征串出现的频率也很高。一般而言,对于同一个特征串出现在垃圾邮件和合法邮件中的概率是不同的。因此,对于出现的每一个特征串,都会生成一个“垃圾邮件指示性概率”(spam ratio)。所以我们就可以判断文本消息的整体“垃圾邮件概率”。
在垃圾邮件的处理中,对token的定义方法有很多种,如字母、数字、破折号、撇号、美元号等,还有在收件人,发件人和主题等这些栏中出现的token 作为相应的标记。根据一些划分方法从邮件中提取标识时,得到标识的数量比较大时,这样处理工作带来了较大的计算开销,使整个处理过程的效率下降。另外,有些标识,例如a 、the、of 、for等,这些词出现的频率虽然很高,但它们在一封邮件中频繁出现我们并不能说明这封邮件是垃圾邮件还是合法邮件。因此,必须对标识进行必要的细化处理,找出这些非用词放入一个表中,保留其他的标识为以后工作使用。
3.2、贝叶斯方法过滤垃圾邮件的基本技术原理
⑴收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。
⑵提取邮件主题和邮件体中的独立字串作为TOKEN串,并统计提取它的TOKEN串出现的次数,即字频。
⑶每一个邮件集对应一个哈希表,设hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。
⑷计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)。
⑸综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为: