CN1991879B - 一种垃圾邮件的过滤方法 - Google Patents
一种垃圾邮件的过滤方法 Download PDFInfo
- Publication number
- CN1991879B CN1991879B CN2005101214460A CN200510121446A CN1991879B CN 1991879 B CN1991879 B CN 1991879B CN 2005101214460 A CN2005101214460 A CN 2005101214460A CN 200510121446 A CN200510121446 A CN 200510121446A CN 1991879 B CN1991879 B CN 1991879B
- Authority
- CN
- China
- Prior art keywords
- rule
- spam
- decision
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种垃圾邮件的过滤方法,所述方法包括:收集邮件样本集以及规则集;根据所述邮件样本集和规则集生成规则训练集;根据所述规则训练集构造决策树模型,所述决策树模型包括处于各个节点的规则及其统计值;根据所述决策树模型,判断邮件是否作为垃圾邮件予以过滤。
Description
技术领域
本发明涉及网络信息处理技术,特别涉及一种垃圾邮件的过滤方法。
背景技术
基于网络传输的快捷性,电子邮件的应用日益广泛,但同时伴随而来的是大量垃圾邮件的涌现。因此,有效过滤垃圾邮件显得尤为重要。
现有技术中,垃圾邮件的过滤主要在邮件客户端或服务器端来实现,使用较为广泛的是规则过滤法。所述规则过滤,具体而言,就是根据某些特征(比如单词、词组、位置、大小、附件等)来形成规则,通过这些规则来描述垃圾邮件,大多数规则是正则表达式。同时人工设置每条规则的分数,规则有好、坏之分,好规则即为判断一封邮件为正邮件的规则,其分数符号为负;坏规则即为判断一封邮件为负邮件的规则,其分数符号为正。但无论是好规则的负分数还是坏规则的正分数,分数的绝对值都代表了本条规则区分正负邮件的一种能力,区分能力好的分数绝对值较高,区分能力差的分数绝对值较低。一封新邮件到达后,与设置的规则进行匹配,按照匹配的规则分数进行累加计算(包括分数符号),最后得到邮件的整体分数,如果整体分数超过某一设定的阈值,则将该封邮件视为垃圾邮件而过滤它;否则认为是合法邮件。
规则分数制定的高低直接影响此条规则对于一封邮件整体分数的判定,因此每条规则的分数制定是否恰当尤为重要。但是,目前每条规则的分数需要人工进行制定,由此容易造成分数制定的随机性大、不准确,进而影响垃圾邮件过滤的有效性。
发明内容
本发明的目的在于提供一种垃圾邮件的过滤方法,以解决现有人工定制每条规则分数,容易造成随机性大、不准确的技术问题。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的: 一种垃圾邮件的过滤方法,包括:1)收集邮件样本集以及规则集;2)根据所述邮件样本集和规则集生成规则训练集;3)根据所述规则训练集构造决策树模型,所述决策树模型包括处于各个节点的规则及其统计值;4)根据所述决策树模型,判断邮件是否作为垃圾邮件予以过滤。
其中,所述步骤3)的构造包括:
31)根据规则的正负邮件命中率,确定规则区分正负邮件的能力;
32)根据规则区分正负邮件的能力,确定其在决策树中的节点位置;
33)根据规则的正负邮件命中率,获得规则所处节点位置的统计值;
所述步骤4)具体包括:41)预先设置垃圾邮件阈值;42)邮件沿决策树模型的一条路径,从根节点遍历到叶节点;43)以经过的各条规则统计值为基础,获得所述邮件参考值;44)将所述参考值和垃圾邮件阈值进行比较,根据比较结果判断所述邮件是否作为垃圾邮件予以过滤。
优选的,还包括定期向规则训练集添加新规则,并重构决策树模型。
优选的,还包括设置规则的失效时间。
所述步骤2)具体包括:21)建立规则集中各条规则和邮件样本集中正负邮件之间的映射关系;22)根据所述映射关系,获得每条规则在邮件样本集中的正负邮件命中率。
优选的,所述邮件参考值为经过的各条规则统计值之积/和。
优选的,所述步骤4)还包括设置决策树不同层次的权重值。所述邮件参考值为其经过的各条规则统计值与所处层次权重值的乘积之和。
优选的,所述步骤4)还包括设置经过的节点总数系数。所述邮件参考值为其经过的各条规则统计值之和与节点总数系数的乘积。
以上技术方案可以看出,在本发明中,由于通过邮件样本集以及规则集生成规则训练集,进而根据规则训练集构造决策树模型,从而将每条规则在邮件样本集中区分正负邮件的能力,反映在其处于决策树的节点位置和统计值上,使得根据决策树模型,判断邮件是否作为垃圾邮件予 以过滤时,已经考虑了每条规则的区分能力,无需人工为所述能力再设置分数,避免了人工设置的随机性大,不准确,提高了每条规则区分能力的判断准确性,降低了误判率。
此外,通过定期向规则训练集添加新规则,可以定期调整规则训练集的结果,用于重构决策树模型,进而优化规则判断能力的有效性。
附图说明
图1为本发明公开的垃圾邮件的过滤方法流程图;
图2为本发明公开的一种决策树模型示意图;
图3为根据决策树模型进行判断的具体实施流程图;
图4为本发明公开的垃圾邮件过滤方法的整体示意图。
具体实施方式
请参阅图1,其为本发明垃圾邮件的过滤方法流程图。
步骤110:收集邮件样本集以及规则集。
所述邮件样本集为现有的一定数量的邮件。例如邮件元素E=<M1,M2,...,Mn>称为邮件样本,其包含2个例子集,分别叫正邮件样本和负邮件样本。所述正邮件样本代表不需要过滤掉的非垃圾邮件;所述负邮件样本集代表需要过滤的垃圾邮件。
所述规则集是根据现有垃圾过滤规则预先设定的一个集合。例如规则集R=R1×R2×...×Rn,n维有穷向量空间,其中Rn是有穷离散符号集,每一维代表一个规则。
步骤120:根据所述邮件样本集和规则集生成规则训练集。
首先,建立规则集中各条规则和邮件样本集中正负邮件之间的映射关系;
其次,根据所述映射关系,获得每条规则在邮件样本集中的正负邮件命中率。规则训练集的一种表示方式如下表所示:
表1
由上表可知,规则集中的每条规则与正负邮件样本集中的邮件都存在一种映射关系。例如,假设正负邮件样本集各含有10000封邮件,通过上表之间的映射关系得到:规则R1的命中率为“+9987;-69”,即规则R1在非垃圾邮件(正样本)中命中了9987次,在垃圾邮件(负样本)中命中了69次;规则R2被命中的频率为“+213;-9988”,即规则R2在非垃圾邮件(正样本)中命中了213次,在垃圾邮件(负样本)中命中了9988次。其他规则的命中率同理。
此外,所述规则训练集中的规则向量数目可以定期手动更新,即在一定时间间隔内将新的规则送入训练集接受训练,得到所述新规则与邮件样本的映射关系及其命中率。由于向规则集中添加的规则会不断增多,如果全部加进决策树内会使树变得越来越庞大,对于一封邮件的查询代价会越来越高,所以必须对规则进行裁减。某些规则具有很强的时效性,譬如在9.11时期可能会有很多垃圾邮件主题中会包含”9.11”字眼,推销反恐类的产品或者虚假信息,于是提取这个字眼作为规则的一部分。对于某些时效性很强的规则,在构造规则训练集时会记录它们的加入时间和其作用的有效时间。这样就会定期删除掉一些规则,同时可以补充进一些新的规则,从而保持构造的决策树的平衡性。
步骤130:根据所述规则训练集构造决策树模型,所述决策树模型包括处于各个节点的规则及其统计值。
在构造过程中,主要包括:根据规则的正负邮件命中率,确定规则区分正负邮件的能力;进而根据规则区分正负邮件的能力,确定其在决策树中的节点位置;同时根据规则的正负邮件命中率,获得规则所处节点位置的统计值。
目前的决策树模型应用在各个领域,其生成算法也多种多样,比如ID3、C4.5、SLIQ、CART和CHAID等等,由于这些算法是现有技术,因而不再赘述。但无论使用哪种算法,对规则训练集构造的决策树模型结构基本一致:区分正负邮件能力最强的规则放在第一层次,区分能力弱一些的放在第二层次,依次类推,直至决策树的最后一层。例如,某条规则在垃圾邮件和非垃圾邮件中的命中率相近,在总数均为10000的正负邮件样本中分别被命中了200次和197次,此时这条规则对于判别垃圾邮件的效果就不好,因为它不具备能够代表典型垃圾或非垃圾邮件的特征,进而认为它对邮件的决策能力很弱,即区分正负邮件的能力差。
决策树构造算法能够根据上述得到的正负样本命中率,将各条规则插入在决策树模型合适的节点位置。请同时参阅图2,其为本发明公开的一种决策树模型意图。决策树200包括8条规则:R1-R8,其中R8位于决策树的根节点(第一层),R6、R2和R4位于叶节点(第二层),R1和R3处于R6之下的叶节点(第三层),R5和R7处于R4之下的叶节点(第三层)。通过它们所处的节点位置即可看出:区分好坏邮件能力最强的是规则R8,其次是R6、R2和R4,最弱的是R1、R3、R5和R7。实际中的决策树模型拥有的规则很多,即节点数很庞大,本图仅仅通过示意性的几条规则进行描述。
通过本图还可以看到每条规则后面都注有一个统计值,这个统计值是在生成决策树模型的同时产生的。所述统计值,一方面取决于规则在正负邮件样本集中的命中率,另一方面与生成决策树时采用的算法有关,不同算法得到的统计值也不同,比如可以是节点(规则)的信息增益IG、 概率,或者增益比率(Gain ration)等等。由此可知,处于各个节点位置的规则所对应的统计值,用于度量给定的属性对于规则训练集中样例的区分能力。例如,决策树每一层次区分能力的概念可以通过处于不同层次的规则IG值体现出来。这也是本发明中将现有规则借助于决策树体现的关键所在,每条规则对于区分好坏邮件的能力无需人工进行分数定制,而是自动生成的,因此对于判别一封邮件是否为垃圾邮件更为有效准确。
步骤140:根据所述决策树模型,判断邮件是否作为垃圾邮件予以过滤。请参阅图3,其为根据决策树模型进行判断的具体实施流程图,即步骤140包含的具体过程。仍然以图2所示的决策树模型为例加以说明。
步骤310:预先设置垃圾邮件阈值。由于判断一封邮件是垃圾邮件的方式很多,因而对应垃圾邮件阈值也有很多种,本文将在步骤330中结合不同实施方式介绍垃圾邮件阈值的设置。
步骤320:邮件沿决策树模型的一条路径,从根节点遍历到叶节点。
当一封新邮件到达后,将通过决策树模型对其进行扫描。比如一封新邮件在决策树模型200中沿粗线所示的路径遍历根节点至叶节点,其经过的根节点是规则R8,叶节点是R6和R3。其中,R8对应的统计值是0.62,R6对应的统计值是0.32,R3对应的统计值是0.029。
步骤330:以经过的各条规则统计值为基础,获得所述邮件是垃圾邮件的参考值。
步骤340:将所述参考值和垃圾邮件阈值进行比较,根据比较结果判断所述邮件是否作为垃圾邮件予以过滤。
通过决策树200可知,新邮件经过的规则是R8、R6和R3,它们对应的统计值分别是0.62、0.32以及0.029。在此基础之上,获得的该封邮件的参考值可以有多种实现方式。
方式一,直接将上述三个统计值相加:0.62+0.32+0.029=0.969,于是该封电子邮件参考值为0.969。在步骤310中设置的垃圾邮件阈值也是针对这种判断方式而设置其数值的,一封邮件的参考值越大,其为垃 圾邮件的可能性越大。比如预先设置的垃圾邮件阈值是0.8,则0.969>0.8,即可判断该封邮件为垃圾邮件,予以过滤。
方式二,将上述三个统计值相乘:0.62×0.32×0.029=0.00575,假设相应地,在步骤310中设置的垃圾邮件阈值为0.004,在该种判断方式下,一封邮件的参考值越小,其为垃圾邮件的可能性越大,根据0.00575>0.004,即可判断该封邮件为非垃圾邮件,不予以过滤。
方式三,可以设置决策树不同层次的权重值,所述权重值意味着该层规则对于邮件参考值的整体评判所做出的贡献大小。比如设置决策树第一层的权重值为1.2(包括一个节点:规则R8),第二层的权重值为0.8(包括三个节点:规则R6、R2和R4),第三层的权重值为0.6(包括四个节点:R1、R3、R5和R7),于是获得的该封新邮件的参考值即为:0.62×1.2+0.32×0.8+0.029×0.6=1.0348。同时在步骤310中为这种判断方式也设置了一个对应的垃圾邮件阈值,比如垃圾邮件阈值=1.02,1.0348>1.02,即可判定该封电子邮件为垃圾邮件,予以过滤。
此外,还可以对个别规则设置特殊时效权重,这是因为某些规则的时效性很强,即只对一段时间内的过滤有效。比如对R3和R6这两条规则设置有效时间为3个月,而且第一个月赋给的权重值为1.1,第二个月赋给的权重值为0.9,第三个月赋给的权重值为0.8。假设R6这条规则已经使用了1个多月,它对应的权值即为0.9;R3这条规则已经使用了2个多月,它对应的权值即为0.8,而R8是一条与时效无关的规则,因此采用其所处层次本身的权重值1.2,于是此封邮件的参考值=0.62×1.2+0.32×0.9+0.029×0.8=1.0552。可见,特殊时效权重值的优先级高于基于层次权重值的优先级,即如果一条规则既有本身所处层次的权重值又有特殊时效权重值,优先采用特殊时效权重值进行计算。当然,也可以只设置某些规则的特殊时效权重值,不与基于层次设置的权重值同时存在。
方式四,还可以设置邮件经过的节点总数系数。由于一个节点对应一条规则,因此,所述经过的节点总数即为匹配的规则总数。例如设置经过决策树路径上的3个节点时乘以系数1.1,经过10个节点时乘以系 数1.2,经过30个节点时乘以系数1.3。在这种情况下,新邮件为垃圾邮件的参考值为:(0.62+0.32+0.029)×1.1=1.0659。设置阈值以及判断过程与上述几种实施方式的原理相同,因而在此不再赘述。
以上将垃圾邮件的过滤方法分步骤进行了详细描述,为了使本领域的技术人员更好的理解本发明,请同时参看图4所示的垃圾邮件过滤方法的整体示意图。正负邮件样本集和过滤垃圾邮件规则集一起进入规则训练集,同时在一定时间间隔内,可以手工添加规则到规则训练集,也可以由程序自动加入;规则训练集输入到生成决策树算法的输入端,输出决策树模型;新邮件到达后,从所述决策树模型的根节点沿一条路径遍历到叶节点;以其经过的规则统计值为基础,采用不同的实施方式得到邮件是垃圾邮件的参考值;最后根据预先设置的垃圾邮件阈值与获得的邮件参考值进行比较,根据比较结果判断邮件是否作为垃圾邮件予以过滤。
以上对本发明所提供的一种垃圾邮件的过滤方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种垃圾邮件的过滤方法,其特征在于,包括步骤:
1)收集邮件样本集以及规则集;
2)根据所述邮件样本集和规则集生成规则训练集;
3)根据所述规则训练集构造决策树模型,所述决策树模型包括处于各个节点的规则及其统计值,所述统计值为信息增益、概率或增益比率;
4)根据所述决策树模型,判断邮件是否作为垃圾邮件予以过滤;
其中,所述步骤3)的构造包括:
31)根据规则的正负邮件命中率,确定规则区分正负邮件的能力;
32)根据规则区分正负邮件的能力,确定其在决策树中的节点位置;
33)根据规则的正负邮件命中率,获得规则所处节点位置的统计值;
所述步骤4)具体包括:
41)预先设置垃圾邮件阈值;
42)邮件沿决策树模型的一条路径,从根节点遍历到叶节点;
43)以经过的各条规则统计值为基础,获得所述邮件参考值;
44)将所述参考值和垃圾邮件阈值进行比较,根据比较结果判断所述邮件是否作为垃圾邮件予以过滤。
2.如权利要求1所述的垃圾邮件的过滤方法,其特征在于,还包括定期向规则训练集添加新规则,并重构决策树模型。
3.如权利要求1或2所述的垃圾邮件的过滤方法,其特征在于,还包括设置规则的失效时间。
4.如权利要求1所述的垃圾邮件的过滤方法,其特征在于,所述步骤2)具体包括:
21)建立规则集中各条规则和邮件样本集中正负邮件之间的映射关系;
22)根据所述映射关系,获得每条规则在邮件样本集中的正负邮件命中率。
5.如权利要求1所述的垃圾邮件的过滤方法,其特征在于,所述邮件参考值为经过的各条规则统计值之积/和。
6.如权利要求1所述的垃圾邮件的过滤方法,其特征在于,所述步骤4)还包括设置决策树不同层次的权重值。
7.如权利要求6所述的垃圾邮件的过滤方法,其特征在于,所述邮件参考值为其经过的各条规则统计值与所处层次权重值的乘积之和。
8.如权利要求1所述的垃圾邮件的过滤方法,其特征在于,所述步骤4)还包括设置经过的节点总数系数。
9.如权利要求8所述的垃圾邮件的过滤方法,其特征在于,所述邮件参考值为其经过的各条规则统计值之和与节点总数系数的乘积。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005101214460A CN1991879B (zh) | 2005-12-29 | 2005-12-29 | 一种垃圾邮件的过滤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005101214460A CN1991879B (zh) | 2005-12-29 | 2005-12-29 | 一种垃圾邮件的过滤方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1991879A CN1991879A (zh) | 2007-07-04 |
CN1991879B true CN1991879B (zh) | 2011-08-03 |
Family
ID=38214126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005101214460A Active CN1991879B (zh) | 2005-12-29 | 2005-12-29 | 一种垃圾邮件的过滤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1991879B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100070339A1 (en) * | 2008-09-15 | 2010-03-18 | Google Inc. | Associating an Entity with a Category |
TWI457767B (zh) * | 2010-12-02 | 2014-10-21 | Univ Nat Taiwan Science Tech | 一種分辨垃圾郵件之方法 |
CN102663022B (zh) * | 2012-03-21 | 2015-02-11 | 浙江盘石信息技术有限公司 | 一种基于url的分类识别方法 |
US10397256B2 (en) * | 2016-06-13 | 2019-08-27 | Microsoft Technology Licensing, Llc | Spam classification system based on network flow data |
CN107566242A (zh) * | 2016-09-14 | 2018-01-09 | 中国移动通信集团广东有限公司 | 基于组合规则的垃圾邮件过滤方法 |
CN106534095A (zh) * | 2016-10-27 | 2017-03-22 | 成都知道创宇信息技术有限公司 | 一种waf安全规则的快速匹配方法 |
CN112559900B (zh) * | 2021-02-26 | 2021-06-04 | 深圳索信达数据技术有限公司 | 产品推荐方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696943A (zh) * | 2004-05-13 | 2005-11-16 | 上海极软软件技术有限公司 | 一种自适应、安全过滤垃圾邮件的方法 |
-
2005
- 2005-12-29 CN CN2005101214460A patent/CN1991879B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696943A (zh) * | 2004-05-13 | 2005-11-16 | 上海极软软件技术有限公司 | 一种自适应、安全过滤垃圾邮件的方法 |
Non-Patent Citations (2)
Title |
---|
丁鹏, 杨永田, 罗志云, 郑可馨.一种独立于邮件服务器的垃圾邮件过滤系统的设计.计算机应用25 2.2005,25(2),全文. |
丁鹏, 杨永田, 罗志云, 郑可馨.一种独立于邮件服务器的垃圾邮件过滤系统的设计.计算机应用25 2.2005,25(2),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN1991879A (zh) | 2007-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1991879B (zh) | 一种垃圾邮件的过滤方法 | |
Nanavati et al. | Analyzing the structure and evolution of massive telecom graphs | |
US7783597B2 (en) | Email filtering using recipient reputation | |
CN101299729B (zh) | 一种基于拓扑行为的垃圾邮件判定方法 | |
CN103605791B (zh) | 信息推送系统和信息推送方法 | |
CN105956184B (zh) | 一种微博社会网络中协作化及组织化的垃圾信息发布团体的识别方法 | |
KR20010016276A (ko) | 익명 수신자 전자 메일 처리 방법 및 시스템 | |
CN105786919B (zh) | 一种告警关联规则挖掘方法和装置 | |
CN103426042A (zh) | 社交网络的分组方法及系统 | |
CN105007218B (zh) | 反垃圾电子邮件方法和系统 | |
Jin et al. | Toposcope: Recover as relationships from fragmentary observations | |
CN103841094B (zh) | 判断邮件类型的方法及设备 | |
CN102098638A (zh) | 短信分类处理方法、装置和终端 | |
CN104615716B (zh) | 基于优先序列的分布式社交网络信息采集方法及系统 | |
Zhang et al. | Error probability bounds for balanced binary relay trees | |
CN107659432A (zh) | 一种区域价值评估方法和装置 | |
KR101031901B1 (ko) | 통신 기록에 기반한 사회 관계 분석 방법 및 시스템 | |
CN107015993A (zh) | 一种用户类型识别方法及装置 | |
CN103796184B (zh) | 垃圾短信识别方法和系统 | |
Rajput et al. | Designing spam model-classification analysis using decision trees | |
Bhattacharya et al. | A linear time algorithm for computing minmax regret 1-median on a tree | |
Tolley et al. | Testing for stochastic dominance | |
Zhang et al. | Learning in hierarchical social networks | |
Huang et al. | A coordination method for fuzzy multi-objective optimization of system reliability | |
CN105764109B (zh) | 一种低压用电采集无线集抄系统组网方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice |
Addressee: Chen Yan Document name: Notification of Passing Examination on Formalities |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |