论文部分内容阅读
引言:垃圾邮件严重影响了正常的网络通信和商务活动,给网民造成了巨大的经济损失。
本文将朴素贝叶斯算法运用于邮件分类,设计和实现了基于朴素贝叶斯算法的邮件过滤器,能够实现邮件的过滤和识别功能,具有高效、经济的优点,应用于垃圾邮件过滤领域可以明显提高过滤的效果。
因特网的快速发展和应用使电子邮件已经成为人们生活和工作不可缺少的工具。但是,随着而来出现了大量的垃圾邮件。据中国互联网协会反垃圾邮件中心发布的《2012年中国反垃圾邮件状况调查报告》显示,中国网民每周收到垃圾邮件数量为15.3封,平均每周收到垃圾邮件比例为34.7%,用户平均每周需要花费7.3分钟来处理垃圾邮件。垃圾邮件不但给用户带来了不便,而且严重影响了正常的网络通信和商务活动。本文将朴素贝叶斯算法用于垃圾邮件过滤,因此,研究有效的垃圾邮件过滤器具有很重要的现实意义。
1.反垃圾邮件技术
1.1电子邮件原理
电子邮件与普通邮件原理相似,邮件先根据发信者的地址存入发送服务器,发送服务器根据收件人者的邮件地址把邮件传到收件方服务器,收信人登录邮箱时,收件方服务器会把邮件送入收件人邮箱。具体的传送过程如下:发信人利用客户端软件写好邮件,客户端软件利用SMTP协议将要发送的邮件发送到本地的邮件服务器,接着本地服务器查看收信人的邮件地址,如果收信人的地址不在本邮件服务器,那么本邮件服务器就将本邮件发往相邻的邮件服务器或直接发往目标邮件服务器里。如果用户使用客户端查看邮件内容,客户端软件使用POP协议从邮件服务器取得邮件内容,用户才能查看。
1.2反垃圾邮件技术
目前,主要存在反向查询、挑战、密码技术和过滤等四种办法减少垃圾邮件的产生。反向查询类似黑白名单,可以智能地识别哪些是伪造的邮件,哪些是合法的邮件,能从很大程度上解决垃圾邮件问题。挑战是通过延缓邮件处理过程来阻碍大量邮件发送者。采用密码技术采用证书方式来验证邮件发送者的方案,如果没有适当的證书,就可以认为是伪造垃圾邮件。反向查询、挑战和密码技术实现起来较为复杂。而过滤是一种最简单却很直接的处理垃圾邮件技术,主要用于接收系统来辨别和处理垃圾邮,通过在邮件服务器上安装反垃圾邮件插件、反垃圾邮件网关和在客户端上安装反垃圾邮件插件,但存在漏报和误报的可能。贝叶斯技术过滤技术准确性高、误报率低,具有能够根据新来的邮件进行调整自主学习的能力。将其用用于过滤垃圾邮件是高效经济解决垃圾邮件的技术之一。
2.贝叶斯过滤原理
贝叶斯是统计学上用来随机事件A和B的条件概率(或边缘概率)的一则定理。P(A|B) 和P(B|A)用来描述两个条件概率之间的关系,P(A|B)表示的是在B发生的情况下A发生的可能性。P(A)称为先验概率,即在B事件发生之前对A事件概率的一个判断。P(A|B)称为后验概率,即在B事件发生之后对A事件概率的重新评估。P(B|A)/P(B)称为"可能性函数",这是一个调整因子,使得预估概率更接近真实概率。贝叶斯定理的描述如下[3]:对于一个统计试验ε,样本中间S是所有可能结果的集合,并且{B1,B2....Br}是S的一个划分,令{P(A):A?S}表示定义在s中所有事件上的一个概率分布,则对于s中的任意事件A和B,都有P(A)>0, P(B|A)=P(∩B)/P(A)表示条件概率,贝叶斯定理表示如下:
P(Bi|A)=P(A|Bi)*P(Bi)/P(A) (i=1,2,3……,r)
将贝叶斯算法运用于垃圾邮件过滤时, 首先要收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集;其次是提取垃圾邮件集和非垃圾邮件集特征来源中的独立字符串TOKEN,并统计提取出其出现的次数即字频;第三是对垃圾邮件和非垃圾邮件个建立一个哈希表,表中是各独立字符串到字频的映射关系;第四是计算每个哈希表中TOKEN串出现的概率,根据概率推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。同时将新到达的邮件重新经过贝叶斯过滤器分析,通过使用各个特征来计算邮件是spam的概率。通过不断的分析,过滤器也不断地获得自更新。从而使得贝叶斯过滤器就具有了自适应能力,能够处理新的陌生邮件,所接收到的垃圾邮件数量越多,准确率就越高
3.基于朴素贝叶斯算法的垃圾邮件过滤系统
3.1 系统流程
该系统的工作流程是将已知类别的邮件集作为训练样本,分类器进行训练;当有新的邮件到来时,分类器将该邮件的特征词与特征词库中的特征词进行匹配,若匹配成功则记录该词的权重,最后从未知邮件中存在于特征词库的所有特征词中选取一定数目的单词,将它们权重进行相乘,得到该邮件属于垃圾邮件的权重,若权重值大于给定阙值,则判断该邮件为垃圾邮件,否则为正常邮件。
3.2系统实现
系统采用Java+ MyEclipse编程实现,具体包括预处理模块、过滤模块、数据模块和数据模块组成。
3.2.1预处理模块
预处理模块包括邮件内容提取、邮件解码实现、中文分词实现、特征值提取、生成特征词库等。邮件内容提取主要是提取电子邮件的邮件头和邮件体,邮件头包含发件人地址、收件人地址、发送时间、邮件主题、邮件ID等信息。本模块通过分析电子邮件的字段得到该邮件的邮件体内容。中文分词模块采用机械匹配法,将词典文件读入并构造为一个哈希词典。根据字符串匹配的结果,提取特征值,进而生成特征词库。
3.2.2过滤模块
过滤模块是整个系统的核心,其主要功能是通过贝叶斯文本分类技术对邮件进行处理,进而判断邮件是否是垃圾邮件,并对结果进行分类处理。具体实现步骤如下:
(1)收集一定数量的垃圾邮件和正常邮件,建立一组正常邮件集和一组垃圾邮件集
(2)对邮件的内容进行解析,并提取关键词,统计其出现的次数。 (3)建立两个哈希表分别用于存储垃圾邮件集和正常邮件集中的关键词和出现的次数。Java语言提供了不同类型的哈希表,在此采用了效率高的HashMap,把关键词作为HashMap的关键字,并把该关键词出现的次数作为HashMap相应的关键词的值。
(4)计算每一个关键词的概率
(5)对于要判定的邮件,提取关键词并计算这些关键词的联合概率
(6)设定一个判断垃圾邮件的阙值,若计算出的联合概率大于该值,则判定为垃圾邮件。反之,则判定为正常邮件。
3.2.3数据模块
数据模块包括系统中所用的词典、关键词表、训练样本集等信息。分词词典直接影响到算法的性能和运行的时间。系统采用HashMap构造一个中文词典。HashMap是基于哈希表的Map接口的实现,HashMap类与Hashtable类大致相同,可以提供所有可选的映射操作,进而构造出关键词表和训练样本集。
3.2.4训练模块
训练模块模块的主要作用训练出特征词库,形成系统的自学习自适应功能。本系统中采用100封正常邮件和100封垃圾邮件作为训练样本集,通过统计关键词在每个邮件集中出现的频率来计算该词的先验概率,然后将所有关键词和先验概率写入数据词典中,最后导出特征词库。
4.结束语
采用Java+MyEclipse设计实现的基于朴素贝叶斯算法的邮件过滤系统具有邮件过滤、添加合法(非法)邮件集等功能,可以对手机短信和邮箱邮件等进行分类。与传统的垃圾邮件过滤技术相比,具有高效、经济的优点,朴素贝叶斯算法用于垃圾邮件过滤可以明显提高过滤的效果。
参考文献
[1]垃圾邮件 [EB/OL] http://baike.baidu.com/view/1522.htm.
[2] 赵凡.基于贝叶斯算法的垃圾邮件过滤系统的研究与发现[D].成都:电子科技大学,2010.05.
[3]郑炜.基于改进朴素贝叶斯算法的垃圾邮件过滤器的研究[J] -《西北工业大学学报》 2010.4.
作者简介
赵学民,(1977-),男,硕士,讲师,研究方向网络安全。
(作者单位:郑州航空工業管理学院 )
本文将朴素贝叶斯算法运用于邮件分类,设计和实现了基于朴素贝叶斯算法的邮件过滤器,能够实现邮件的过滤和识别功能,具有高效、经济的优点,应用于垃圾邮件过滤领域可以明显提高过滤的效果。
因特网的快速发展和应用使电子邮件已经成为人们生活和工作不可缺少的工具。但是,随着而来出现了大量的垃圾邮件。据中国互联网协会反垃圾邮件中心发布的《2012年中国反垃圾邮件状况调查报告》显示,中国网民每周收到垃圾邮件数量为15.3封,平均每周收到垃圾邮件比例为34.7%,用户平均每周需要花费7.3分钟来处理垃圾邮件。垃圾邮件不但给用户带来了不便,而且严重影响了正常的网络通信和商务活动。本文将朴素贝叶斯算法用于垃圾邮件过滤,因此,研究有效的垃圾邮件过滤器具有很重要的现实意义。
1.反垃圾邮件技术
1.1电子邮件原理
电子邮件与普通邮件原理相似,邮件先根据发信者的地址存入发送服务器,发送服务器根据收件人者的邮件地址把邮件传到收件方服务器,收信人登录邮箱时,收件方服务器会把邮件送入收件人邮箱。具体的传送过程如下:发信人利用客户端软件写好邮件,客户端软件利用SMTP协议将要发送的邮件发送到本地的邮件服务器,接着本地服务器查看收信人的邮件地址,如果收信人的地址不在本邮件服务器,那么本邮件服务器就将本邮件发往相邻的邮件服务器或直接发往目标邮件服务器里。如果用户使用客户端查看邮件内容,客户端软件使用POP协议从邮件服务器取得邮件内容,用户才能查看。
1.2反垃圾邮件技术
目前,主要存在反向查询、挑战、密码技术和过滤等四种办法减少垃圾邮件的产生。反向查询类似黑白名单,可以智能地识别哪些是伪造的邮件,哪些是合法的邮件,能从很大程度上解决垃圾邮件问题。挑战是通过延缓邮件处理过程来阻碍大量邮件发送者。采用密码技术采用证书方式来验证邮件发送者的方案,如果没有适当的證书,就可以认为是伪造垃圾邮件。反向查询、挑战和密码技术实现起来较为复杂。而过滤是一种最简单却很直接的处理垃圾邮件技术,主要用于接收系统来辨别和处理垃圾邮,通过在邮件服务器上安装反垃圾邮件插件、反垃圾邮件网关和在客户端上安装反垃圾邮件插件,但存在漏报和误报的可能。贝叶斯技术过滤技术准确性高、误报率低,具有能够根据新来的邮件进行调整自主学习的能力。将其用用于过滤垃圾邮件是高效经济解决垃圾邮件的技术之一。
2.贝叶斯过滤原理
贝叶斯是统计学上用来随机事件A和B的条件概率(或边缘概率)的一则定理。P(A|B) 和P(B|A)用来描述两个条件概率之间的关系,P(A|B)表示的是在B发生的情况下A发生的可能性。P(A)称为先验概率,即在B事件发生之前对A事件概率的一个判断。P(A|B)称为后验概率,即在B事件发生之后对A事件概率的重新评估。P(B|A)/P(B)称为"可能性函数",这是一个调整因子,使得预估概率更接近真实概率。贝叶斯定理的描述如下[3]:对于一个统计试验ε,样本中间S是所有可能结果的集合,并且{B1,B2....Br}是S的一个划分,令{P(A):A?S}表示定义在s中所有事件上的一个概率分布,则对于s中的任意事件A和B,都有P(A)>0, P(B|A)=P(∩B)/P(A)表示条件概率,贝叶斯定理表示如下:
P(Bi|A)=P(A|Bi)*P(Bi)/P(A) (i=1,2,3……,r)
将贝叶斯算法运用于垃圾邮件过滤时, 首先要收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集;其次是提取垃圾邮件集和非垃圾邮件集特征来源中的独立字符串TOKEN,并统计提取出其出现的次数即字频;第三是对垃圾邮件和非垃圾邮件个建立一个哈希表,表中是各独立字符串到字频的映射关系;第四是计算每个哈希表中TOKEN串出现的概率,根据概率推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。同时将新到达的邮件重新经过贝叶斯过滤器分析,通过使用各个特征来计算邮件是spam的概率。通过不断的分析,过滤器也不断地获得自更新。从而使得贝叶斯过滤器就具有了自适应能力,能够处理新的陌生邮件,所接收到的垃圾邮件数量越多,准确率就越高
3.基于朴素贝叶斯算法的垃圾邮件过滤系统
3.1 系统流程
该系统的工作流程是将已知类别的邮件集作为训练样本,分类器进行训练;当有新的邮件到来时,分类器将该邮件的特征词与特征词库中的特征词进行匹配,若匹配成功则记录该词的权重,最后从未知邮件中存在于特征词库的所有特征词中选取一定数目的单词,将它们权重进行相乘,得到该邮件属于垃圾邮件的权重,若权重值大于给定阙值,则判断该邮件为垃圾邮件,否则为正常邮件。
3.2系统实现
系统采用Java+ MyEclipse编程实现,具体包括预处理模块、过滤模块、数据模块和数据模块组成。
3.2.1预处理模块
预处理模块包括邮件内容提取、邮件解码实现、中文分词实现、特征值提取、生成特征词库等。邮件内容提取主要是提取电子邮件的邮件头和邮件体,邮件头包含发件人地址、收件人地址、发送时间、邮件主题、邮件ID等信息。本模块通过分析电子邮件的字段得到该邮件的邮件体内容。中文分词模块采用机械匹配法,将词典文件读入并构造为一个哈希词典。根据字符串匹配的结果,提取特征值,进而生成特征词库。
3.2.2过滤模块
过滤模块是整个系统的核心,其主要功能是通过贝叶斯文本分类技术对邮件进行处理,进而判断邮件是否是垃圾邮件,并对结果进行分类处理。具体实现步骤如下:
(1)收集一定数量的垃圾邮件和正常邮件,建立一组正常邮件集和一组垃圾邮件集
(2)对邮件的内容进行解析,并提取关键词,统计其出现的次数。 (3)建立两个哈希表分别用于存储垃圾邮件集和正常邮件集中的关键词和出现的次数。Java语言提供了不同类型的哈希表,在此采用了效率高的HashMap,把关键词作为HashMap的关键字,并把该关键词出现的次数作为HashMap相应的关键词的值。
(4)计算每一个关键词的概率
(5)对于要判定的邮件,提取关键词并计算这些关键词的联合概率
(6)设定一个判断垃圾邮件的阙值,若计算出的联合概率大于该值,则判定为垃圾邮件。反之,则判定为正常邮件。
3.2.3数据模块
数据模块包括系统中所用的词典、关键词表、训练样本集等信息。分词词典直接影响到算法的性能和运行的时间。系统采用HashMap构造一个中文词典。HashMap是基于哈希表的Map接口的实现,HashMap类与Hashtable类大致相同,可以提供所有可选的映射操作,进而构造出关键词表和训练样本集。
3.2.4训练模块
训练模块模块的主要作用训练出特征词库,形成系统的自学习自适应功能。本系统中采用100封正常邮件和100封垃圾邮件作为训练样本集,通过统计关键词在每个邮件集中出现的频率来计算该词的先验概率,然后将所有关键词和先验概率写入数据词典中,最后导出特征词库。
4.结束语
采用Java+MyEclipse设计实现的基于朴素贝叶斯算法的邮件过滤系统具有邮件过滤、添加合法(非法)邮件集等功能,可以对手机短信和邮箱邮件等进行分类。与传统的垃圾邮件过滤技术相比,具有高效、经济的优点,朴素贝叶斯算法用于垃圾邮件过滤可以明显提高过滤的效果。
参考文献
[1]垃圾邮件 [EB/OL] http://baike.baidu.com/view/1522.htm.
[2] 赵凡.基于贝叶斯算法的垃圾邮件过滤系统的研究与发现[D].成都:电子科技大学,2010.05.
[3]郑炜.基于改进朴素贝叶斯算法的垃圾邮件过滤器的研究[J] -《西北工业大学学报》 2010.4.
作者简介
赵学民,(1977-),男,硕士,讲师,研究方向网络安全。
(作者单位:郑州航空工業管理学院 )