垃圾邮件过滤的方法和系统的制作方法

文档序号:6386246阅读:260来源:国知局
专利名称:垃圾邮件过滤的方法和系统的制作方法
技术领域
本发明涉及文本处理技术领域,尤其是一种垃圾邮件过滤的方法和系统。
背景技术
当前,有很多技术可用于区分垃圾邮件。比如,白名单和黑名单过滤,这种方法简单易行,但是需要实时更新白名单和黑名单,而且很难保证只有有限、固定的几个用户在发送垃圾邮件。比较常用的还有基于规则的过滤方法,即设置一些规则,只要符合这些规则的一条或几条,就认为是垃圾邮件。这些规则通常有信头分析、群发过滤、关键字匹配、邮件内容的其他特征等。采用基于规则的过滤技术,确实能够在一定时间内很好地防范了垃圾邮件。但其不足之处在于规则都是人工指定的,需要人们不断去发现和总结、更新,人为因素比较多,一些没有经验的用户可能很难提供有效的规则。而且,手工制定规则比较耗时,准确率也受到了限制。

发明内容
互联网世界中垃圾邮件的泛滥,已经给人们带来了极大的不便,并极大地消耗了网络资源。因此,人们迫切需要一种能够发现垃圾邮件的过滤方法,该方法必须满足实时性,准确性,并且和语种无关。本发明的目的就是提供这样一种能够实时发现垃圾邮件的过滤方法。
将原始邮件库中的垃圾邮件和合法邮件分别表示为通用后缀树(GST)结构。对于新到达的邮件,通过每个文本位置的不定长统计,自动获得其在垃圾邮件集和合法邮件集中的出现频率,计算其与垃圾邮件集和合法邮件集的近似度,最终确定新到达邮件的属性。此外,系统中的邮件库修改装置可以实时修改邮件库中的邮件。
为了实现以上目的,本发明提供了一种垃圾邮件过滤的方法和系统,方法包括步骤参见图5S1,对原始邮件库进行转换,表示为通用后缀树结构的邮件库;S2,对于新到达的邮件,对其在原始邮件库中的出现频率进行统计;S3,计算新到达的邮件与原始邮件库的近似度,判断其所属类别;S4,将新到达的邮件加入到所属类别;S5,将过时的邮件从原始语料库中删除。
垃圾邮件过滤的方法,对原始邮件库进行转换的步骤和将新到达的邮件加入到所属类别的步骤包括构建通用后缀树的步骤;在后缀树节点上记录统计信息的步骤;限定后缀树深度的步骤。
统计新到达邮件在原始邮件库中出现频率的统计的步骤包括在每个邮件内容位置开始的不定长字串在通用后缀树上进行匹配的步骤;计算新到达的邮件与原始邮件库的近似度的步骤包括在对得到的出现频率进行加权统计的步骤;将过时的邮件从原始语料库中删除的步骤包括删除通用后缀树的步骤;从通用后缀树节点上删除对应统计信息的步骤。
为了实现以上目的,本发明还提供了一种垃圾邮件过滤的系统,包括用于对原始邮件库进行转换,表示为通用后缀树结构的邮件库的装置;用于对于新到达的邮件,对其在原始邮件库中的出现频率进行统计的装置;用于计算新到达的邮件与原始邮件库的近似度,判断其所属类别的装置;用于将新到达的邮件加入到所属类别的装置;用于将过时的邮件从原始语料库中删除的装置。
上述的垃圾邮件过滤的系统,用于对原始邮件库进行转换的装置和用于将新到达的邮件加入到所属类别的装置包括构建通用后缀树的装置;在后缀树节点上记录统计信息的装置;限定后缀树深度的装置。
用于统计新到达邮件在原始邮件库中出现频率的统计的装置包括在每个邮件内容位置开始的不定长字串在通用后缀树上进行匹配的装置;用于计算新到达的邮件与原始邮件库的近似度的装置包括在对得到的出现频率进行加权统计的装置;用于将过时的邮件从原始语料库中删除的装置包括删除通用后缀树的装置;从通用后缀树节点上删除对应统计信息的装置。
与本方法比较相关的是基于内容的邮件过滤方法,包括k近邻、决策树、贝叶斯分类器、支持向量机、Boosting方法、粗糙集(Rough Set)等。向量空间模型(VSM)的表示方法虽然便捷明了,但是它简单地用特征的出现频率来表示文本,忽略了大量的其他信息,比如上下文信息。而且,特征的提取需要综合考虑训练集中所有文档,当一个文档从训练集中删除或添加时,要进行所有文档的重新训练,这不符合垃圾邮件训练集实时变动的要求。此外,采用了向量空间模型的文本表示,在训练过程中,势必要进行分词或者使用N元语法。对于亚洲文字来说,词和词之间没有特定的分隔符,分词本身就是一个复杂繁琐的过程。若使用N元语法,又需要考虑不同语种N取值的不同。


图1是本发明的垃圾邮件过滤系统的基本原理图。
图2是本发明的通用后缀树的实例图。
图3是本发明的通用后缀树添加算法实例图。
图4是本发明的通用后缀树删除算法实例图。
图5是本发明的垃圾邮件过滤系统方法的流程图。
具体实施例方式
如图1所示,本发明的系统包括一个邮件内容表示装置1,采用通用后缀树模型(GSTM)的邮件内容表示方法,将原始邮件库中的垃圾邮件和合法邮件分别表示成一棵通用后缀树;一个频率统计装置2,采用不定长多元匹配的方法,得到新到达的邮件在原始邮件库中的出现频率;一个类别判断装置3,根据新到达邮件的出现频率,采用加权统计的方法,计算邮件与不同类别原始邮件的近似度,最终判断邮件所属的类别;一个邮件库修改装置4,采用通用后缀树模型的删除、增加算法,对原始邮件库进行修改。
频率统计装置2接收的新到达邮件,输出连接于类别判断装置3,类别判断装置3输出连接于邮件库修改装置4,邮件库修改装置4输出连接于硬盘,硬盘的输出连接于邮件内容表示装置1,邮件内容表示装置1连接于频率统计装置2。
各装置的详细操作将在下面分别详细描述。
邮件内容表示装置1的输入为硬盘数据,将硬盘中的数据按类别表示成通用后缀树,并将表示结果输出到内存中。频率统计装置2输入为在网关上接收的新到达邮件和内存中的通用后缀树表示的训练集,通过在后缀树中的统计,将频率统计结果输出到内存中。类别判断装置3输入为内存中的频率统计结果,判断邮件类别,并输出判断结果到显示设备,并将判断结果输出到内存中。邮件库修改装置4输入为内存中的邮件类别判断结果,根据结果修改硬盘中的数据,最终输出到硬盘中。显示设备的输入为类别判断装置3的判断结果。硬盘输出到邮件内容表示装置1,输入为邮件库修改装置的修改结果。
1 邮件内容表示装置首先,描述如何根据本发明构建邮件内容对应通用后缀树(GST),即实现邮件内容表示装置。
定义字符串S=s1s2...si...sn,其中,si属于给定的输入字符集,那么Si=sisi+1...sn是S从位置i开始的后缀。一个有m个字符的串S,它的后缀树是一棵有根的有向树,共有m个叶子,分别标号为1到m。每一条边都用S的非空子串来表示。从任一节点出来的两条边,它们必须以不同的字符开始。从根节点到叶子节点i,顺序经过的树边的串联,恰好为S从i位置开始的后缀,即Si。此外,为保证所有的后缀都结束在叶子节点,在字符串末尾添加不属于输入字符集的字符$。关于后缀树的构建在由E.Ukkonen在algorithmica第249到260页的论文On-lineconstruction of suffix trees中有详细描述,这里就不再详述。
后缀树的原理可以扩展扩展到多于一个输入串,该扩展被称为通用后缀串(GST)。
图2中给出了字符串“abab$”和“bac$”的通用后缀树例子。从GST的结构中,可以得到GST的每个节点的信息,包括
当前节点i(例如节点5){路径(将所有被标志的边沿从根到节点i的路径串联起来);(节点5的路径是“ab”)路径计数(路径在原始邮件集中的出现频率);(“ab”在“abab$”和“bac$”中出现了两次)子节点 节点j,...,节点k;(节点9和节点10)父节点 节点f;(节点1)}为了记录字串在原始邮件库中的出现频率,改进了后缀树算法。其基本思路为每当添加新的节点或直到叶子节点都能匹配时,在该节点的所有祖先节点的计数上加1。
图中节点中的数字表示“节点号/频率计数”。
如图3所示,在表示“abab$”的树上添加“bac$”的第一个后缀“bac$”,从根节点开始,只成功匹配上“ba”,于是添加表示“c$”的叶子节点,然后为该叶子节点的所有祖先节点计数加1。
为了找到该节点的所有祖先节点,需要上溯的次数为节点深度,那么,改进后的算法时间复杂度为O(nlogn),其中,logn表示树的深度。在具体实现中,限制树的最大深度。例如,限制树的深度为K,当需要在深度为K的节点i上添加子节点j时,将该j的信息统一到i,从而使得logn成为一个常数K,即算法的时间复杂度为O(Kn)。
2 频率统计装置其次,描述如何根据本发明对新到达的邮件进行频率统计,即实现频率统计装置。
本方法采用针对给定邮件的不定长统计,即字串的长度由新到达邮件自身决定。邮件内容表示装置已经将原始邮件集根据垃圾邮件或合法邮件表示为GST1和GST2。令新到达邮件为d,对于邮件内容的任意位置k,在GST1和GST2上分别查找从k开始的字串直到无法匹配或者到达叶子节点。设匹配得到的字串长度为N,本方法要求同时得到1元到N元子串在在GST1和GST2中的出现频率。
例如abba......
1元汉字串a;......
3元汉字串abb;......
然后,将出现频率记录在ac[1],ac[2],...,ac[N]中。再利用公式tf(k,Dj)=Σu=1Nac[u]*up]]>得到位置k的对应值。为了公式的统一起见,取N为足够大,那么当匹配成功的字串长度小于N的时候,ac[u]=0,不影响最终的结果。p是字符串长度权重因子,为了强调相匹配字符串长度越大,邮件内容之间的相似度越高,一般取p大于1。通过上述步骤,GSTi就转换为长度为(L-N+1)的词频数组了。
在实现上,由于GST特有的数据结构,保证了能够在O(N)时间内,完成对长度为N的字串的匹配。同时,我们已经将出现频率记录在叶子节点上,所以在匹配的过程中就能够得到1元到N元字串的出现频率。如图2所示,可以在表示字串“abab$”和“bac$”的后缀树上,直接查找字串“bac”的出现频率。设字串“abab$”和“bac$”所在的训练集为D,从而得到tf(0,D)=3×1p+2×2p+1×3p,tf(1,D)=3×1p+1×2p,tf(2,D)=1×1p。其中,0、1、2分别表示从字符串的“bac”的0、1、2位置开始统计。
3 类别判断装置再次,描述如何根据本发明计算新到达的邮件与原始邮件库的近似度,判断其所属类别,即实现类别判断装置。
得到了邮件集Di的绝对词频[tf(0,Di)tf(1,Di)......tf(L-1,Di)]之后,给每个项赋权重时,应使得邮件内容中越重要的项权重越大。所以采用改进的tf-idf公式计算权重,即TFC权重,公式如下W(k,Di)=tf((k,Di)×logp(M/mj+0.01)
w(k,Di)为位置k开始的多元组在邮件集Di中的权重,其中tf(k,Di)为频率统计装置中求得的位置k开始的多元组在邮件集Di中出现的频率,M为邮件集的个数,mk为出现该多元组的邮件集个数。
新到达邮件d和邮件集Di之间的(内容)相关程度用它们之间的相似度Sim(D1,D2)来度量。当邮件被表示为相对词频的数组时,就可以借助相对词频的累计值来表示相似度Sim=(d,Di)=Σj=0L-N+1W(k,Di)]]>本方法的属性判断就是比较新到达邮件和两个邮件集近似度的大小。设垃圾邮件邮件集D1中邮件内容总长度为Z1,合法邮件邮件集D2中邮件内容总长度为Z2,默认情况下,每个邮件内容与新到达邮件匹配的可能性相同,那么邮件数的多少和近似度成正比关系,所以决策规则是sim(d,D1)Z1>sim(d,D2)Z2⇒d∈D1;]]>sim(d,D1)Z1<sim(d,D2)Z2⇒d∈D2;]]> 4 邮件库修改装置再次,描述如何根据本发明将新到达的邮件加入到所属类别,或者将过时的邮件从原始语料库中删除,即实现邮件库修改装置。
当新的邮件根据分类算法被加入到某一类后,可以直接对下一轮的分类产生影响。在下一个邮件到来之前,只需要对将该邮件加入到所属类的GST中,即可加入下一轮的数值化和分类过程。
在实现上,由于GST结构满足动态增长,只需要在原有的树结构添加相关信息,其算法复杂度与建树算法相同,若新加入的邮件长度为N,那么修改训练集的算法复杂度为O(N)。
同时,考虑到用户可能删除邮件集中的邮件,所以需要GST删除算法的支持。由于在后缀树记录了字串出现的频率,本方法改进了原有的GST删除算法。设从训练集中删除的某个邮件内容为Si,算法基本思路为从后缀树根节点开始,依次匹配Si中的每个字符直到叶子节点。如果该叶子节点的计数值大于1,计数值减1即可。如果叶子节点的计数值为1,删除该节点,若删除操作导致其上层节点只有一个孩子,那么将上层节点与另一个孩子节点合并。然后,对原叶子节点的所有祖先节点计数值减1。这样,就完成了Si的一个后缀串的删除。为了删除Si的其他后缀,要通过后缀链进行查找,并进行类似删除操作,直到Si的所有后缀都被删除。图中节点中的数字表示“节点号/频率计数”。
如图4所示,在表示“abab$”和“bac$”的树上删除“abab$”的第一个后缀“abab$”。由于叶子节点计数为1,删除该节点,合并其父节点与另一个孩子节点。
由于处理每个叶子节点时,需要上溯到根节点。所以删除算法的时间复杂度为O(nlogn),在具体实现时,采用限制后缀树深度为K的方法,使得时间复杂度为O(Kn)。图中节点中的数字表示“节点号/频率计数”。
积极效果采用以上的处理,我们可以对垃圾邮件进行实时过滤。其在文本表示上,采用了通用后缀树模型(GSTM);在统计上,使用了不定长多元统计的方法;在实现上,利用了后缀树的数据结构和改进的通用后缀树算法。由于通用后缀树的添加算法具有线性特性,所以能够满足垃圾邮件训练集的变动性;由于后缀树匹配本身具有线性特性,而且改进后的树节点上记录了字串的出现频率,所以能够在线性时间内计算邮件与不同训练集的近似度,从而满足了垃圾邮件过滤的实时性特点;由于该方法保留了文本的上下文位置信息,相对于基于向量空间模型的其他方法,信息量更大,所以能够得到较好的准确率;由于不需要基于具体语种的分词过程,所以该方法独立于语种。
权利要求
1.一种垃圾邮件过滤的方法,包括步骤S1,对原始邮件库进行转换,表示为通用后缀树结构的邮件库;S2,对于新到达的邮件,对其在原始邮件库中的出现频率进行统计;S3,计算新到达的邮件与原始邮件库的近似度,判断其所属类别;S4,将新到达的邮件加入到所属类别;S5,将过时的邮件从原始语料库中删除。
2.根据权利要求1的方法,其特征在于对原始邮件库进行转换的步骤和将新到达的邮件加入到所属类别的步骤包括构建通用后缀树的步骤;在后缀树节点上记录统计信息的步骤;限定后缀树深度的步骤。
3.根据权利要求1的方法,其特征在于统计新到达邮件在原始邮件库中出现频率的统计的步骤包括在每个邮件内容位置开始的不定长字串在通用后缀树上进行匹配的步骤;
4.根据权利要求1的方法,其特征在于计算新到达的邮件与原始邮件库的近似度的步骤包括在对得到的出现频率进行加权统计的步骤;
5.根据权利要求1的方法,其特征在于将过时的邮件从原始语料库中删除的步骤包括删除通用后缀树的步骤;从通用后缀树节点上删除对应统计信息的步骤。
6.一种垃圾邮件过滤的系统,包括用于对原始邮件库进行转换,表示为通用后缀树结构的邮件库的装置;用于对于新到达的邮件,对其在原始邮件库中的出现频率进行统计的装置;用于计算新到达的邮件与原始邮件库的近似度,判断其所属类别的装置;用于将新到达的邮件加入到所属类别的装置;用于将过时的邮件从原始语料库中删除的装置。
7.根据权利要求6的系统,其特征在于用于对原始邮件库进行转换的装置和用于将新到达的邮件加入到所属类别的装置包括构建通用后缀树的装置;在后缀树节点上记录统计信息的装置;限定后缀树深度的装置。
8.根据权利要求6的系统,其特征在于用于统计新到达邮件在原始邮件库中出现频率的统计的装置包括在每个邮件内容位置开始的不定长字串在通用后缀树上进行匹配的装置;
9.根据权利要求6的系统,其特征在于用于计算新到达的邮件与原始邮件库的近似度的装置包括在对得到的出现频率进行加权统计的装置;
10.根据权利要求6的系统,其特征在于用于将过时的邮件从原始语料库中删除的装置包括删除通用后缀树的装置;从通用后缀树节点上删除对应统计信息的装置。
11.根据权利要求6-10的系统,其特征在于,所述的系统包括邮件内容表示装置1,采用通用后缀树模型的邮件内容表示方法,将原始邮件库中的垃圾邮件和合法邮件分别表示成一棵通用后缀树;频率统计装置2,采用不定长多元匹配的方法,得到新到达的邮件在原始邮件库中的出现频率;类别判断装置3,根据新到达邮件的出现频率,采用加权统计的方法,计算邮件与不同类别原始邮件的近似度,最终判断邮件所属的类别;邮件库修改装置4,采用通用后缀树模型的删除、增加算法,对原始邮件库进行修改;频率统计装置2接收的新到达邮件,输出连接于类别判断装置3,类别判断装置3输出连接于邮件库修改装置4,邮件库修改装置4输出连接于硬盘,硬盘的输出连接于邮件内容表示装置1,邮件内容表示装置1连接于频率统计装置2。
12.根据权利要求1-5的垃圾邮件过滤的方法,其特征在于,邮件内容表示装置1的输入为硬盘数据,将硬盘中的数据按类别表示成通用后缀树,并将表示结果输出到内存中;频率统计装置2输入为在网关上接收的新到达邮件和内存中的通用后缀树表示的训练集,通过在后缀树中的统计,将频率统计结果输出到内存中;类别判断装置3输入为内存中的频率统计结果,判断邮件类别,并输出判断结果到显示设备,并将判断结果输出到内存中;邮件库修改装置4输入为内存中的邮件类别判断结果,根据结果修改硬盘中的数据,最终输出到硬盘中;显示设备的输入为类别判断装置3的判断结果;硬盘输出到邮件内容表示装置1,输入为邮件库修改装置的修改结果。
全文摘要
本发明涉及文本处理技术领域,尤其是一种垃圾邮件过滤的方法和系统。方法包括对原始邮件库进行转换;对于新到达的邮件进行统计;计算新到达的邮件与原始邮件库的近似度,判断其所属类别;将新到达的邮件加入到所属类别;将过时的邮件从原始语料库中删除。装置包括用于对原始邮件库进行转换的装置;用于对于新到达的邮件进行统计的装置;用于计算新到达的邮件与原始邮件库的近似度的装置;用于将新到达的邮件加入到所属类别的装置;用于将过时的邮件从原始语料库中删除的装置。此外,系统中的邮件库修改装置可以实时修改邮件库中的邮件。
文档编号G06F17/30GK1614607SQ20041000985
公开日2005年5月11日 申请日期2004年11月25日 优先权日2004年11月25日
发明者谭建龙, 张吉, 郭莉 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1