4 系统功能和技术描述 http://www.paper51.com 4.1 系统功能模块设计 copyright paper51.com 本系统分为三个大模块,每个大模块下有不同的功能划分,模块结构图如图4-1所示: 内容来自论文无忧网 www.paper51.com 内容来自论文无忧网 www.paper51.com 图4-1 系统功能模块结构图 paper51.com 1. 日常操作模块 copyright paper51.com 这个模块分为收邮件和写邮件两部分,用户可以通过这个模块收发电子邮件,完成正常邮件和垃圾邮件的接收,本系统是采用从本地数据库读取数据,为反垃圾技术的研究提供测试环境。 copyright paper51.com
2. 邮件夹 内容来自www.paper51.com 此模块建立了两个文件夹,分别是收件夹和垃圾邮件夹,经过过滤的正常邮件显示在收件夹中,过滤后得到的垃圾邮件显示在垃圾邮件夹中。并可以对邮件进行删除和查看操作。 内容来自论文无忧网 www.paper51.com 3. 垃圾邮件过滤 http://www.paper51.com 此模块是本设计的核心部分,采用了黑名单、白名单、主题关键字、贝叶斯过滤技术来过滤垃圾邮件,用户可以通过过滤设置来启动和停止这些过滤规则。 copyright paper51.com 4.2基本功能 http://www.paper51.com 通过黑名单、白名单、主题关键字、贝叶斯过滤技术完成客户端的垃圾邮件过滤,每个过滤规则在对邮件进行处理判断后,若可以确定邮件的属性,即为垃圾邮件或非垃圾邮件就可以直接把邮件显示在垃圾邮件夹和收件夹。客户端垃圾邮件过滤模型如下图所示: paper51.com
http://www.paper51.com
图4-2 客户端垃圾邮件过滤模型 内容来自论文无忧网 www.paper51.com
4.3黑白名单技术 copyright paper51.com
黑名单是一个简单有效最常用的过滤方法,它首先检查邮件头,如果发送者在黑名单内,就拒绝接收该邮件。黑名单可以是发送垃圾邮件的服务器、开放的代理、开放的中继以及发送者邮箱地址。现在有很多组织都在做*bl(block list),将那些经常发送垃圾邮件的IP地址(甚至IP地址范围)收集在一起,做成block list。 内容来自www.paper51.com 白名单过滤的方法是在邮件过滤系统中维持一张白名单表,其中收录了用户认可的邮件地址。当收到的邮件其发送者在用户的白名单中,该邮件就被判定为正常邮件。这种方法能100%的屏蔽垃圾邮件,但是同时也会过滤掉很多第一次与收件人通信的正常邮件,而这些用户不在收件人的白名单中。 http://www.paper51.com 目前很多邮件接收端都采用了黑白名单的方式来处理垃圾邮件,包括MUA和MTA,当然在MTA中使用得更广泛,这样可以有效地减少服务器的负担。本文中黑名单和白名单分别是已知的垃圾邮件发送者或可信任的邮件发送者的邮件地址,这种技术手段是最传统的方式,它通过黑名单技术对垃圾邮件进行屏蔽,通过白名单技术对允许的邮件进行放行。 http://www.paper51.com
4.4 关键字过滤技术 内容来自www.paper51.com 这种技术是根据在邮件头、邮件主题或者邮件正文中是否含有设定的关键字符来判断邮件是否为垃圾邮件,然后采取处理措施。这种技术非常简单易行,现在的邮件客户端一般都提供这种技术。根据调查显示,采用基于关键字符技术的邮件过滤器能够捕获到60%的垃圾邮件。但是这种当邮件中含有某类的关键字符时就判定邮件为垃圾邮件的技术缺点非常致命,它的误确认率特别高。例如将单词"free"设置为过滤关键字,那么所有包含有这个单词的邮件都会被过滤掉,不管这封邮件来自于你的朋友还是垃圾邮件制造者。本文中是设置要过滤的邮件标题关键字,对标题中含有这些关键字的邮件进行过滤。 http://www.paper51.com 4.5 贝叶斯过滤技术 内容来自www.paper51.com 4.5.1贝叶斯过滤算法的基本步骤 paper51.com 第一步:通过收集大量的邮件,按规则分为垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集,相当于两个数据库; paper51.com 第二步:提取邮件主题和邮件正文中的独立字串,如商品、易趣等作为TOKEN串,并统计提取出的TOKEN串出现的次数,即字频,按照上述方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件; paper51.com 第三步:每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。如下所示: http://www.paper51.com TOKEN串 出现次数 内容来自www.paper51.com 商品 N1 内容来自www.paper51.com
易趣 N2 copyright paper51.com 法轮功 N3 copyright paper51.com 色情 N4 http://www.paper51.com 第四步:计算每个哈希表中TOKEN串出现的概率 P={(某TOKEN串的字频)/(对应哈希表的长度)}; paper51.com 第五步:综合考虑hashtable_good和hashtable_bad,推断当新来的邮件中出现某个TOKEN串时,该邮件作为垃圾邮件的概率。存在事件S:该邮件为垃圾邮件,t1 t2 …,tn代表TOKEN串,则P{S/ti}表示在邮件中出现TOKEN串ti时,该邮件为垃圾邮件的概率。 copyright paper51.com 第六步:建立新的哈希表 hashtable_probability存储TOKEN串ti到P{S/ti}的映射,如下所示: http://www.paper51.com TOKEN串 垃圾邮件的概率 内容来自论文无忧网 www.paper51.com 商品 P{S/t1} 内容来自www.paper51.com 易趣 P{S/t2} 内容来自www.paper51.com 法轮功 P{S/t3} http://www.paper51.com 色情 P{S/t4} paper51.com 重复此步骤直到得到出现某字串的邮件为垃圾邮件的概率,垃圾邮件集和非垃圾邮件集的学习过程就算结束了。根据建立的哈希表hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性,当新到一封邮件时,按照步骤生成新的TOKEN串,查询hashtable_probability得到该TOKEN串的键值。假设由该邮件共得到N个TOKEN串,t1t2t3…tn ,则hashtable_probability中对应的值为P1, P2, P3, …Pn, P{S/t1,t2,t3,…tn}表示在邮件同时出现多个TOKEN串t1,t2,t3,…tn时,该邮件为垃圾邮件的概率,由复合概率公式可得: http://www.paper51.com P{S/t1t2t3…tn}=(P1 * P2*…* Pn)/[P1 *P2*…* Pn +(1- P1 )*(1- P2)*…*(1- Pn)],当P{S/t1,t2,t3,…tn }超过预定阈值时,就可以判断该邮件为垃圾邮件。 paper51.com 4.5.2贝叶斯过滤算法举例 内容来自论文无忧网 www.paper51.com 例如:一封含有“法轮功”字样的垃圾邮件 A和 一封含有“法律”字样的非垃圾邮件B。 内容来自论文无忧网 www.paper51.com 根据邮件A生成hashtable_ bad,该哈希表中的记录为: 内容来自论文无忧网 www.paper51.com
法:1次 copyright paper51.com 轮:1次 paper51.com 功:1次 copyright paper51.com 计算得在本表中: paper51.com 法出现的概率为0.3 内容来自论文无忧网 www.paper51.com 轮出现的概率为0.3 内容来自论文无忧网 www.paper51.com
功出现的概率为0.3 copyright paper51.com 根据邮件B生成hashtable_good,该哈希表中的记录为: 内容来自论文无忧网 www.paper51.com
法:1 内容来自www.paper51.com
律:1 内容来自www.paper51.com 计算得在本表中: paper51.com
法出现的概率为0.5 copyright paper51.com
律出现的概率为0.5 copyright paper51.com 综合考虑两个哈希表,共有四个TOKEN串: 法 轮 功 律 http://www.paper51.com 当邮件中出现“法”时,该邮件为垃圾邮件的概率为: http://www.paper51.com
P=0.3/(0.3+0.5)=0.375 http://www.paper51.com 出现“轮”时: 内容来自www.paper51.com P=0.3/(0.3+0)=1 http://www.paper51.com
出现“功“时: 内容来自www.paper51.com P=0.3/(0.3+0)=1 内容来自www.paper51.com
出现“律”时 内容来自论文无忧网 www.paper51.com P=0/(0+0.5)=0; copyright paper51.com 由此可得第三个哈希表:hashtable_probability 其数据为: copyright paper51.com 法:0.375 内容来自www.paper51.com
轮:1 copyright paper51.com 功:1 内容来自www.paper51.com 律:0 http://www.paper51.com 当新到一封含有“功律”的邮件时,我们可得到两个TOKEN串,功 律 copyright paper51.com 查询哈希表hashtable_probability可得: paper51.com
P(垃圾邮件|功)=1 copyright paper51.com P(垃圾邮件|律)=0 内容来自www.paper51.com
此时该邮件为垃圾邮件的可能性为: copyright paper51.com
P=(0*1)/[0*1+(1-0)*(1-1)]=0 内容来自论文无忧网 www.paper51.com 由此可推出该邮件为非垃圾邮件。 http://www.paper51.com 4.5.3贝叶斯过滤模块划分 paper51.com 针对贝叶斯过滤的流程以及其所需要的功能,可以把整个过滤从功能上分为邮件预处理、贝叶斯算法实现、数据库访问、过滤主逻辑几个主要模块,系统结构如下图所示: paper51.com
paper51.com 图4-3 贝叶斯过滤系统结构图 paper51.com 邮件预处理模块:这个模块主要负责读取邮件,对邮件进行编解码,去html的tag等; http://www.paper51.com 贝叶斯算法模块:这个模块主要的功能是对邮件文本向量化,统计特征向量词出现的次数,分类器的训练、调整、更新,新邮件的过滤等; 内容来自论文无忧网 www.paper51.com 数据库访问模块:在文本向量化,统计频率和计算概率时需要访问数据库,这个模块主要对数据库进行访问操作; paper51.com
过滤主逻辑模块:这个模块负责调用其余各个模块的功能,实现垃圾邮件过滤处理的主逻辑。 内容来自论文无忧网 www.paper51.com |