一种垃圾邮件过滤方法

文档序号:7988263阅读:275来源:国知局
一种垃圾邮件过滤方法
【专利摘要】本发明公开一种垃圾邮件过滤方法,包括以下步骤:S1:建立学习库,通过对已知垃圾邮件和非垃圾邮件的分析,自学习垃圾邮件判断依据;S2:根据S1中确立的垃圾邮件判断依据,对新邮件进行判断及过滤判断出的垃圾邮件;S3:将经过判断的新邮件放入步骤S1中建立的学习库中,以不断提高所述学习库的判断准确率。本发明对垃圾邮件的判断更为准确全面,同时具有自学习功能,且能够满足用户个性化定义,自适应能力强。
【专利说明】一种垃圾邮件过滤方法
【技术领域】
[0001]本发明涉及信息过滤技术,特比设计一种具有自学习功能的垃圾邮件过滤方法。【背景技术】
[0002]随着计算机与网络逐渐成为社会、政治、经济、文化生活的重要组成部分,在计算机与网络带来快捷办公、便捷沟通等便利的同时,邮件的广泛使用所产生的副产品一垃圾邮件也铺天盖地而来。垃圾邮件一般具有批量发送的特征。其内容包括赚钱信息、成人广告、商业或个人网站广告、电子杂志、连环信等。垃圾邮件可以分为良性和恶性的。良性垃圾邮件是各种宣传广告等对收件人影响不大的信息邮件。恶性垃圾邮件是指具有破坏性的电子邮件。恶性垃圾邮件发送组织或是非法信息传播者,为了大面积散布信息,常采用多台机器同时巨量发送的方式攻击邮件服务器,造成邮件服务器大量带宽损失,并严重干扰邮件服务器进行正常的邮件递送工作。如何能够更好、更准确的过滤掉这些信息,而不会将客户的有用信息过滤,已经成为目前各个领域关注信息过滤的重点。
[0003]目前,垃圾邮件过滤技术中主流的算法包括基于支持向量机的智能过滤算法和触发式过滤算法等。
[0004]基于支持向量机的智能过滤算法的基本思想可概括为,通过非线性变换将样本空间变换到一个高维空间,然后在这个新空间中求取最优线性分类面,而这种非线性变换是通过定义适当的内积函数实现的。所以选择合理的邮件特征就成为整个算法和技术的一大瓶颈。
[0005]触发式过滤算法原理是过滤软件检查邮件的发信人、标题、正文内容,以及邮件中出现的链接和域名,甚至电话号码,当发现带有明显广告性质,或经常出现已知垃圾邮件的典型特征,则给这封邮件打出一定的垃圾邮件特征分数。当分数达到一定数值时,邮件将被标志为垃圾邮件,该算法的偶然率很高。
[0006]可见,以上的算法都有很大的局限性,在实际项目的应用中可能出错率很高,因此,如何提供一种准确率高、适用范围广的垃圾邮件过滤方法成为本领域技术人员亟待解决的问题。

【发明内容】

[0007]本发明的目的在于克服现有垃圾邮件处理方法上的瓶颈,提供一种可供用户自定义的、具有自学习和自适应性、判断准确率高的垃圾邮件过滤方法。
[0008]为达上述目的,本发明提供一种垃圾邮件过滤方法,包括以下步骤:
[0009]S1:建立学习库,通过对已知垃圾邮件和非垃圾邮件的分析,自学习垃圾邮件判断依据;
[0010]S2:根据SI中确立的判断依据,对新邮件进行判断及过滤判断出的垃圾邮件;
[0011]S3:将经过判断的新邮件放入步骤SI中建立的学习库中,以不断提高所述学习库的判断准确率。[0012]根据本发明提出的一种垃圾邮件过滤方法,其中,步骤SI中自学习的具体方法包括:
[0013]Sll:系统预置邮件样本,包括垃圾邮件样本集和非垃圾邮件样本集;
[0014]S12:处理所述垃圾邮件集和所述非垃圾邮件集中的所有邮件,通过词法分析分别提取邮件主题和邮件体中的独立字符串,将该字符串作为字串并统计所述字串的出现次数;
[0015]S13:根据S12中提取出的字串出现次数,分别创建第一哈希表和第二哈希表,所述第一哈希表对应所述非垃圾邮件集中某字串与其出现次数之间的映射关系,所述第二哈希表对应所述垃圾邮件中某字串与其出现次数之间的映射关系;
[0016]S14: 采用折半处理,使用多线程分别计算各个哈希表中某字串出现的概率,公式为:
[0017]P=(某字串的出现次数)/ (对应哈希表的长度)
[0018]其中,P表示某字串在对应哈希表中出现的概率;
[0019]S15:判断当新邮件中出现某个字串时,该邮件为垃圾邮件的概率,公式为:
[0020]P (A| si) =P2 (si) /[ (P1 (si) +P2 (si)]
[0021]其中,A表示确定邮件为垃圾邮件;Si表示某字串,P1 (Si)表示Si在第一哈希表中出现的概率,P2 (s i)表示Si在第二哈希表中出现的概率;
[0022]S16:建立第三哈希表,存储S15中计算出的字串si与P (A| si)之间的映射关系。
[0023]根据本发明提出的一种垃圾邮件过滤方法,其中步骤S2中判断新邮件是否为垃圾邮件的计算公式为:
[0024]P(A| s” s2-sn)= (P1X …PN)/[P1X …Pn+ (1-P1)X (1-P2)X...(1_Pn)]
[0025]其中,S1, S2…….Sn表示η个不同字串,P2……PN表示si, s2…….sn在对应哈希表中出现的概率;
[0026]进一步地,根据实际需要设定阈值,当P(A| sl,s2…sn)超过设定的阈值时,则判断邮件为垃圾邮件。在本发明具体实施例中,所述阈值优选为0.87。
[0027]根据本发明提出的一种垃圾邮件过滤方法,其中所述学习库为系统预置样本,SP系统事先收集大量的垃圾邮件和非垃圾邮件,分别建立垃圾邮件样本和非垃圾邮件样本;或者为用户自定义样本,即用户根据自己的实际情况将某些特定的邮件作为垃圾邮件;同时所述学习库也可以为系统预置样本和用户自定义样本的结合。
[0028]与现有技术相比,本发明的有益效果在于:
[0029]首先,本发明通过建立学习库的方式,根据分析以前发生的事情频率和概率来预测将发生事情的频率和概率,判断一封邮件为垃圾邮件的概率。与现有过滤技术不同,本发明设计的过滤特征来源较多,可以采用邮件正文单词、邮件头信息(发送者、传递路径等)、邮件的HTML编码(如颜色)等作为判断的特征元素,因此对垃圾邮件的判断能够做到更全面、更准确。
[0030]其次,本发明的垃圾邮件过滤方法还具有自学习的功能,在预置完样本数据后需要给定一个学习集合,根据样本数据判断学习集合中的每一封邮件是否是垃圾邮件后,自动将该邮件添加到对应的样本集合中,这样就能使样本集合中的数据更全面,每个字频更准确。能够学习分辨垃圾邮件与非邮件之间的差别,并且自动应用到以后的检测中。所以本发明的方法实现后过滤器也会有自适应能力,既能自动进行,也可以用户手工操作,也就更能适应单个用户的使用。
[0031]再次,本发明可以满足用户个性化的定义垃圾邮件过滤方式。上述样本集合完全可以由用户根据自己所接收的垃圾邮件和非垃圾邮件来创建,因而可以获得一种对用户来说独一无二的过滤器。这意味着垃圾邮件发送者根本无法猜测出你的过滤器是如何配置的,从而有效地阻截各类垃圾邮件,可以广泛的应用到各个领域的软件中。整个系统可根据用户的需求在第一步建立垃圾邮件集与非垃圾邮件集时,填入用户自己认为是垃圾邮件的字串,然后根据邮件关键词的概率分布推断出垃圾邮件的概率,提高了系统对垃圾邮件过滤的自适应性。
【专利附图】

【附图说明】
[0032]图1为本发明的自学习过程的流程图。
【具体实施方式】
[0033]本发明提供一种智能的垃圾邮件过滤方法,通过“训练”让系统知道什么样的邮件是垃圾邮件,什么样的邮件是正常的邮件,然后形成一个学习库作为判断垃圾邮件的依据,根据分析以前发生的事情频率和概率来预测将发生事情的频率和概率。
[0034]本发明主要包括自学习过程、邮件过滤处理过程和后续处理过程三部分。
[0035]具体技术方案如下:
[0036]1)建立学习库,这部分分为系统预置样本和用户自定义样本两类,可以根据实际需要选择性地使用这两种建立样本的方式,也可以混合使用。系统预置样本是指事先收集大量的垃圾邮件和非垃圾邮件,分别建立垃圾邮件样本和非垃圾邮件样本,给定的权值为1。用户自定义样本是指用户自己将某些特定的邮件作为垃圾邮件,给定的权值是10000。
[0037]2)处理垃圾邮件集和非垃圾邮件集中的所有邮件。解析文件,通过词法分析分别提取邮件主题和邮件体中的独立字符串,并且将该独立字符串作为字串并统计提取出的字串出现的次数(字频)。这里需要将第一步中的权值加入,系统预置样本中出现的字串累加,而用户自定义样本中出现的字串需要乘以10000作为字频。
[0038]3)创建存储数据结构。对于学习库中的两种邮件集分别创建一个哈希表,用来存储第二步计算出的字串到字频的映射关系。由于系统预置的样本集可能是海量数据,设计为多线程去遍历样本集合来计算字串到字频的映射关系,最后将所有数据合并。例如,good对应非垃圾邮件集字串到字频的映射关系,bad对应垃圾邮件集字串到字频的映射关系。
[0039]4)数据计算,得到字串出现概率。采用折半处理,使用多线程分别计算两个哈希表中字串出现的概率P=(某字串的字频)/ (对应哈希表的长度)。
[0040]5)抽象数据和业务处理模型。假设新来的一封邮件经过词法分析后含有η个字串,综合考虑第四步计算出的good和bad中字串出现频率,推断出当新来的邮件中出现某个字串时,该新邮件为垃圾邮件的概率。抽象后的数学表达式为:假设事件A是确定邮件为垃圾邮件,S1, S2…….Sn代表字串,则P (A丨Si)表示在邮件中出现字串Si时,该邮件为垃圾邮件的概率。
[0041]假设P1 (Si)表示Si在4)中计算出的good中的值,P2 (Si)表示si在第四步计算出bad中的值,则可以求出出现Si串时此邮件为垃圾邮件的概率,计算公式为:
[0042]P (Alsi) =P2 (Si)/[ (P1 (Si)+P2 (Si)]
[0043]6)为5)中计算出的新邮件出现某个字串来判断为垃圾邮件建立数据结构。建立新的哈希表probability存储字串Si到P (Ajsi)的映射。
[0044]7)至此,垃圾邮件集和非垃圾邮件集的自学习过程结束。根据建立的哈希表probability可以估计一封新到的邮件为垃圾邮件的可能性。
[0045]上述步骤I)到步骤7)的自学习部分的流程图请参见图1。
[0046]自学习过程完成后,便可进入实际的邮件过滤处理过程,具体方案如下。
[0047]当新到一封邮件时,按照步骤2)生成字串。查询probability得到该字串的键值。
[0048]假设由该邮件共得到N个字串,S1, S2.......sn, probability中对应的值为P1,
P2……PN,P (A I S1, s2, S3- sn)表示在邮件中同时出现多个字串Sl,SfSnW,该邮件为垃圾邮件的概率。由复合概率公式可得:
[0049]P(A| s” s2-sn)= (P1X …PN)/[P1X …Pn+ (1-P1)X (1-P2)X...(1_Pn)]
[0050]根据实际需要设定不同的阈值,具体可以体现在软件中的用户自定义拦截垃圾邮件程度,建议使用0.87这个阈值。当P (Al S1, S2-Sn)超过预定阈值时,就可以判断邮件为垃圾邮件。
[0051]此外,对于运算的结果的分析如下:
[0052]设每个数据样本用一个η维特征向量来描述η个属性的值,即:X={Xl,X2,…,χη},假定有m个类,分别用C1, C2,表不。给定一个未知的数据样本X(即没有类标号),若朴素贝叶斯分类法将未知的样本X分配给类Ci,则一定是P (Ci IX) >P (Cj IX) I≤j≤m,j关i。
[0053]根据贝叶斯定理,由于P(X)对于所有类为常数,最大化后验概率P (Ci IX)可转化为最大化先验概率P (XI Ci) XP (Ci)。如果训练数据集有许多属性和元组,用来计算P (XI Ci)的开销可能非常大,为此,通常假设各属性的取值互相独立的。
[0054]这样先验概率P (X11 Ci), P (X21 Ci), P(X3Ici),…,P(XnIci)可以从训练数据集求得。根据此方法,对一个未知类别的样本X,可以先分别计算出X属于每一个类别Ci的概率P (XI Ci) P (Ci),然后选择其中概率最大的类别作为其类别。
[0055]最后是后续处理过程。当判定新来的一封邮件是否是垃圾邮件后,需要将该邮件放至第一步建立的学习库中。这样学习库就会在用户不断接受邮件中扩大,而且可以自己适应该用户的邮件类型来判断下一封邮件。
[0056]以上说明对本发明而言只是说明性的,而非限制性的,本领域普通技术人员理解,在不脱离以下所附权利要求所限定的精神和范围的情况下,可做出许多修改,变化,或等效,但都将落入本发明的保护范围内。
【权利要求】
1.一种垃圾邮件过滤方法,其特征在于,包括以下步骤: S1:建立学习库,通过对已知垃圾邮件和非垃圾邮件的分析,自学习垃圾邮件判断依据; 52:根据S1中确立的垃圾邮件判断依据,对新邮件进行判断及过滤判断出的垃圾邮件; 53:将经过判断的新邮件放入步骤SI中建立的学习库中,以不断提高所述学习库的判断准确率。
2.根据权利要求1所述的一种垃圾邮件过滤方法,其特征在于,步骤SI中自学习的具体方法包括: 511:系统预置邮件样本,包括垃圾邮件样本集和非垃圾邮件样本集; 512:处理所述垃圾邮件集和所述非垃圾邮件集中的所有邮件,通过词法分析分别提取邮件主题和邮件体中的独立字符串,将该字符串作为字串并统计所述字串的出现次数; S13:根据S12中提取出的字串出现次数,分别创建第一哈希表和第二哈希表,所述第一哈希表对应所述非垃圾邮件集中某字串与其出现次数之间的映射关系,所述第二哈希表对应所述垃圾邮件中某字串与其出现次数之间的映射关系; 514:采用折半处理,使用多线程分别计算各个哈希表中某字串出现的概率,公式为: P=(某字串的出现次数)/ (对应哈希表的长度) 其中,P表示某字串在对应哈希表中出现的概率; 515:判断当新邮件中出现某个字串时,该邮件为垃圾邮件的概率,公式为:
P (A| si) =P2 (si) /[ (P1 (si)+P2 (si)] 其中,A表示确定邮件为垃圾邮件;si表示某字串,P1 (si)表示Si在第一哈希表中出现的概率,P2 (Si)表示Si在第二哈希表中出现的概率; 516:建立第三哈希表,存储S15中计算出的字串Si与P (Al Si)之间的映射关系。
3.根据权利要求2所述的一种垃圾邮件过滤方法,其特征在于,步骤S2中判断新邮件是否为垃圾邮件的计算公式为:
P(A| S1, S2-Sn)= (P1X …PN)/[P1X …Pn+ (1-P1)X (1-P2)X...(1-Pn)] 其中,S1, s2.......Sn表示n个不同字串,P2......Pn表示S1, s2.......Sn在对应哈希表中出现的概率; 进一步地,根据实际需要设定阈值,当P (A| Sl,y sn)超过设定的阈值时,则判断邮件为垃圾邮件。
4.根据权利要求3所述的一种垃圾邮件过滤方法,其特征在于,所述阈值设为0.87。
5.根据权利要求1所述的一种垃圾邮件过滤方法,其特征在于,所述学习库为系统预置样本,即系统事先收集大量的垃圾邮件和非垃圾邮件,分别建立垃圾邮件样本和非垃圾邮件样本。
6.根据权利要求1所述的一种垃圾邮件过滤方法,其特征在于,所述学习库为用户自定义样本,即用户根据自己的实际情况将某些特定的邮件作为垃圾邮件。
7.根据权利要求1所述的一种垃圾邮件过滤方法,其特征在于,所述学习库为系统预置样本和用户自定义样本的结合。
【文档编号】H04L12/58GK103905289SQ201210576928
【公开日】2014年7月2日 申请日期:2012年12月26日 优先权日:2012年12月26日
【发明者】王涛, 李长山, 赵林, 阎海涛 申请人:航天信息软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1