一种基于聚类的垃圾邮件过滤系统及方法

文档序号:7773372阅读:294来源:国知局
一种基于聚类的垃圾邮件过滤系统及方法
【专利摘要】本发明公开了一种基于聚类的垃圾邮件过滤系统及方法,系统包括聚类模块、邮件训练模块、特征库存储模块、邮件过滤模块;方法包括:S1.1、从邮件备份系统获取训练邮件及未标记邮件;S1.2、聚类预处理模块对邮件进行预处理;S1.3、聚类分析模块对预处理后的邮件划分成不同的类簇;S1.4、类簇中心计算模块计算各类簇的向量表达;S1.5、训练模块对各类簇中的已标记邮件进行学习,更新对应类簇的特征库;S2.1、从邮件系统获取需要过滤的邮件;S2.2、邮件类属性判别模块计算出与该邮件内容最接近的类簇;S2.3、邮件特征提取模块对待判别邮件进行特征提取;S2.4、邮件判别模块依据邮件特征及对应的特征库给出判别结果。本发明具有提取速度快、准确度高、效果好的优点。
【专利说明】一种基于聚类的垃圾邮件过滤系统及方法
【技术领域】
[0001]本发明涉及垃圾邮件过滤【技术领域】,特别涉及一种基于聚类的垃圾邮件过滤系统及方法。
【背景技术】
[0002]随着电子邮件的普及,垃圾邮件制造者通过非常廉价的手段将大量的垃圾邮件发向网络中,严重影响着网络的带宽,干扰用户的正常使用并对用户安全造成潜在威胁。
[0003]目前基于机器学习的邮件过滤系统,多只按照特定的学习算法,对训练邮件集进行单一的训练学习后,依据学习算法建模生成的特征库对新邮件进行判别。这种不加区别的对训练数据进行统一训练,作为机器学习算法在邮件过滤领域普遍采用的方式,虽然能给过滤器提供较好的学习能力,但由于没有对训练数据进行差异化对待,在过滤器的学习和判别能力上都会有所影响。

【发明内容】

[0004]本发明的目的之一在于克服现有技术的缺点和不足,提供一种基于聚类的垃圾邮件过滤系统,该系统基于机器学习算法,通过引入聚类分析有差别的对待训练数据,填补现有技术中过滤器在训练环节对训练数据统一训练和在判别环节简单依靠训练生成的唯一特征库进行判别的不足。
[0005]本发明的目的之二在于提供一种基于聚类的垃圾邮件过滤方法,该方法通过对训练邮件进行学习,建模形成特征库后对新邮件进行判别,给出是否为垃圾邮件的结果,具有判别速度快、准确度高的优点。
[0006]为了达到上述第一目的,本发明采用以下技术方案:
[0007]一种基于聚类的垃圾邮件过滤系统,包括:
[0008]聚类模块,用于对训练邮件的文本内容进行分析,将邮件依据主题相似性划分成不同的簇类,同一个簇中的邮件具有一个或多个主题的相似性;
[0009]邮件训练模块,用于对已标注的邮件进行训练学习,更新特征知识库;
[0010]特征库存储模块,用于存储各类簇所对应的各特征数据;
[0011]邮件过滤模块,用于对新到邮件进行过滤,依据特征库给出该封邮件是否为垃圾邮件的判别结果。
[0012]所述聚类模块包括:
[0013]聚类预处理模块,用于将要进行聚类分析的训练邮件及未标注邮件进行邮件解码,特征提取后表示成VSM向量形式,作为聚类分析模块的输入;
[0014]聚类分析模块,用于根据聚类算法对输入数据进行聚类,划分出K个不同的类簇,输出各邮件所属的类别标记;
[0015]类簇中心计算模块,用于计算每个类簇的中心,利用向量空间模型表示该类簇的内容特征。[0016]所述邮件训练模块包括:
[0017]类属性判别模块,用于给出与邮件内容最相近的类簇,提供给判别模块;
[0018]特征提取模块,用于对邮件进行特征提取,提供给判别模块进行分析;
[0019]数据更新模块,根据训练邮件的特征更新特征库的数据。
[0020]所述邮件过滤模块包括:
[0021 ] 类属性判别模块,用于给出与邮件内容最相近的类簇,提供给判别模块;
[0022]特征提取模块,用于对邮件进行特征提取,提供给判别模块进行分析;
[0023]判别模块,根据类属性判别模块得出的类簇编号,依据该类簇对应的特征库,用特定的机器学习算法依据该邮件的特征给出是否为垃圾邮件的判别结果。
[0024]为了达到上述第二目的,本发明采用以下技术方案:
[0025]基于聚类的垃圾邮件过滤系统的方法,分为训练阶段、过滤阶段两个环节,具体包括以下步骤:
[0026]S1、训练阶段:
[0027]步骤S1.1、若本系统在进行初始化时,获取邮件备份系统的训练邮件及未标注邮件,进入步骤S1.2;若已通过初始化,针对用户反馈的邮件或人工标识的邮件进行实时训练,跳至步骤S1.5;
[0028]步骤S1.2、聚类模块中的聚类预处理模块对要进行聚类分析的训练邮件及未标注邮件进行邮件解码,提取文本特征后表示成VSM向量形式,发送给聚类分析模块,进入步骤S1.3 ;
[0029]步骤S1.3、聚类模块中的聚类分析模块,根据分裂式层次聚类算法对输入数据进行聚类,划分出K个不同的类簇,输出各邮件所属的类别编号,进入步骤S1.4;
[0030]步骤S1.4、聚类模块中的类簇中心计算模块计算每个类簇的中心,利用向量空间模型表示该类簇的内容特征,跳至步骤S1.6 ;
[0031]步骤S1.5、邮件训练模块中的类属性判别模块通过分析邮件正文内容,给出与该邮件文本内容最接近的类簇编号,进入到步骤S1.6 ;
[0032]步骤S1.6、邮件训练模块中的特征提取模块对训练邮件进行特征提取,提取出有效特征并用VSM向量形式表示,传递给邮件判别模块,进入到步骤S1.7 ;
[0033]步骤S1.7、邮件训练模块中的数据更新模块根据训练邮件的特征,采用贝叶斯算法进行训练学习,更新该邮件所对应类簇的特征库;
[0034]S2、过滤阶段:
[0035]步骤S2.1、在过滤阶段,邮件系统获取一封新邮件,传递给邮件过滤模块中的类属性判别模块,进入步骤S2.2;
[0036]步骤S2.2、邮件过滤模块中的类属性判别模块通过分析邮件正文内容,给出与邮件文本内容最相似的类簇编号,进入到步骤S2.3 ;
[0037]步骤S2.3、邮件过滤模块中的特征提取模块对邮件进行特征提取,提取出有效特征用VSM向量形式表示,传递给邮件过滤模块中的判别模块,进入到步骤S2.4 ;
[0038]步骤S2.4、邮件过滤模块中的判别模块依据步骤S2.2中给出的最相近的类簇所对应的特征库,采用贝叶斯算法去计算分析步骤S2.3中得到的邮件特征,给出该封邮件是否为垃圾邮件的判别结果;[0039]步骤S2.5、邮件判别模块通过邮件的向量特征和该邮件所属类簇对应的特征库计算该封邮件的得分score,若score值大于或等于预设的判断阈值,则将该封邮件打上spam标记,输出结果;若score值小于判断阈值,则将该封邮件打上ham标记,输出结果。
[0040]步骤S1.2具体包括:
[0041]S1.2.1、聚类模块中的聚类预处理模块依据邮件所采用的编码方式进行解码,进入步骤S1.2.2 ;
[0042]S1.2.2、聚类模块中的聚类预处理模块将解码后的邮件文本信息进行去噪、分词处理,提取出有效特征词信息,进入步骤S1.2.3 ;
[0043]S1.2.3、聚类模块中的聚类预处理模块利用提取出的有效特征词信息表示成VSM向量形式,交给聚类分析模块。
[0044]步骤S1.4具体包括以下步骤:
[0045]S1.4.1、聚类模块中的类簇中心计算模块分别统计各类簇中所含的聚类邮件,进入步骤S1.4.2 ;
[0046]S1.4.2、聚类模块中的类簇中心计算模块分别计算各类簇中心,用VSM特征向量表示类簇的中心向量Ci:
【权利要求】
1.一种基于聚类的垃圾邮件过滤系统,其特征在于,包括: 聚类模块,用于对训练邮件的文本内容进行分析,将邮件依据主题相似性划分成不同的簇类,同一个簇中的邮件具有一个或多个主题的相似性; 邮件训练模块,用于对已标注的邮件进行训练学习,更新特征知识库; 特征库存储模块,用于存储各类簇所对应的各特征数据; 邮件过滤模块,用于对新到邮件进行过滤,依据特征库给出该封邮件是否为垃圾邮件的判别结果。
2.根据权利要I所述的基于聚类的垃圾邮件过滤系统,其特征在于,聚类模块包括: 聚类预处理模块,用于将要进行聚类分析的训练邮件及未标注邮件进行邮件解码,特征提取后表示成VSM向量形式,作为聚类分析模块的输入; 聚类分析模块,用于根据聚类算法对输入数据进行聚类,划分出K个不同的类簇,输出各邮件所属的类别标记; 类簇中心计算模块,用于计算每个类簇的中心,利用向量空间模型表示该类簇的内容特征。
3.根据权利要I所述的基于聚类的垃圾邮件过滤系统,其特征在于,所述邮件训练模块包括: 类属性判别模块,用于给出与邮件内容最相近的类簇,提供给判别模块; 特征提取模块,用于对邮件进行特征提取,提供给判别模块进行分析; 数据更新模块,根据训练邮件的特征更新特征库的数据。
4.根据权利要I所述的基于聚类的垃圾邮件过滤系统,其特征在于,所述邮件过滤模块包括: 类属性判别模块,用于给出与邮件内容最相近的类簇,提供给判别模块; 特征提取模块,用于对邮件进行特征提取,提供给判别模块进行分析; 判别模块,根据类属性判别模块得出的类簇编号,依据该类簇对应的特征库,用特定的机器学习算法依据该邮件的特征给出是否为垃圾邮件的判别结果。
5.根据权利要求1-4中任一项所述基于聚类的垃圾邮件过滤系统的方法,其特征在于,分为训练阶段、过滤阶段两个环节,具体包括以下步骤: S1、训练阶段: 步骤S1.1、若本系统在进行初始化时,获取邮件备份系统的训练邮件及未标注邮件,进入步骤S1.2 ;若已通过初始化,针对用户反馈的邮件或人工标识的邮件进行实时训练,跳至步骤S1.5; 步骤S1.2、聚类模块中的聚类预处理模块对要进行聚类分析的训练邮件及未标注邮件进行邮件解码,提取文本特征后表示成VSM向量形式,发送给聚类分析模块,进入步骤S1.3 ; 步骤S1.3、聚类模块中的聚类分析模块,根据分裂式层次聚类算法对输入数据进行聚类,划分出K个不同的类 簇,输出各邮件所属的类别编号,进入步骤S1.4 ; 步骤S1.4、聚类模块中的类簇中心计算模块计算每个类簇的中心,利用向量空间模型表示该类簇的内容特征,跳至步骤S1.6 ; 步骤S1.5、邮件训练模块中的类属性判别模块通过分析邮件正文内容,给出与该邮件文本内容最接近的类簇编号,进入到步骤S1.6 ; 步骤S1.6、邮件训练模块中的特征提取模块对训练邮件进行特征提取,提取出有效特征并用VSM向量形式表示,传递给邮件判别模块,进入到步骤S1.7 ; 步骤S1.7、邮件训练模块中的数据更新模块根据训练邮件的特征,采用贝叶斯算法进行训练学习,更新该邮件所对应类簇的特征库; S2、过滤阶段: 步骤S2.1、在过滤阶段,邮件系统获取一封新邮件,传递给邮件过滤模块中的类属性判别模块,进入步骤S2.2; 步骤S2.2、邮件过滤模块中的类属性判别模块通过分析邮件正文内容,给出与邮件文本内容最相似的类簇编号,进入到步骤S2.3 ; 步骤S2.3、邮件过滤模块中的特征提取模块对邮件进行特征提取,提取出有效特征用VSM向量形式表示,传递给邮件过滤模块中的判别模块,进入到步骤S2.4 ; 步骤S2.4、邮件过滤模块中的判别模块依据步骤S2.2中给出的最相近的类簇所对应的特征库,采用贝叶斯算法去计算分析步骤S2.3中得到的邮件特征,给出该封邮件是否为垃圾邮件的判别结果; 步骤S2.5、邮件判别模块通过邮件的向量特征和该邮件所属类簇对应的特征库计算该封邮件的得分score,若score值大于或等于预设的判断阈值,则将该封邮件打上spam标记,输出结果;若score值小于判断阈值,则将该封邮件打上ham标记,输出结果。
6.根据权利要求5所`述基于聚类的垃圾邮件过滤系统的方法,其特征在于,步骤S1.2具体包括: S1.2.1、聚类模块中的聚类预处理模块依据邮件所采用的编码方式进行解码,进入步骤 S1.2.2 ; S1.2.2、聚类模块中的聚类预处理模块将解码后的邮件文本信息进行去噪、分词处理,提取出有效特征词信息,进入步骤S1.2.3 ; S1.2.3、聚类模块中的聚类预处理模块利用提取出的有效特征词信息表示成VSM向量形式,交给聚类分析模块。
7.根据权利要求5所述基于聚类的垃圾邮件过滤系统的方法,其特征在于,步骤S1.4具体包括以下步骤: S1.4.1、聚类模块中的类簇中心计算模块分别统计各类簇中所含的聚类邮件,进入步骤 S1.4.2 ; S1.4.2、聚类模块中的类簇中心计算模块分别计算各类簇中心,用VSM特征向量表示类簇的中心向量Ci:
8.根据权利要求5所述基于聚类的垃圾邮件过滤系统的方法,其特征在于,步骤S1.5具体包括下述步骤:S5.1、邮件训练模块中的类属性判别模块依据邮件所采用的编码方式进行解码,进入步骤S5.2 ; S5.2、邮件训练模块中的类属性判别模块将解码后的邮件文本信息进行去噪、分词处理,提取出有效特征词信息,进入步骤S5.3 ; S5.3、邮件训练模块中的类属性判别模块利用提取出的有效特征词信息表示成VSM向量形式,其中权重采用tf-1df计算,进入步骤S5.4 ; S5.4、邮件类属性判别模块分别计算该邮件的特征向量与各类簇中心的特征向量的相似度,选取相似度最大的类簇,将类簇编号输出给邮件判别模块。
9.根据权利要求5所述基于聚类的垃圾邮件过滤系统的方法,其特征在于,步骤S1.6具体包括下述步骤: S1.6.1、邮件训练模块中的特征提取模块按照邮件格式,将邮件分为邮件头和邮件体两部分,对于邮件头部分,进入步骤S1.6.2 ;对于邮件体部分,跳至步骤S1.6.3 ; S1.6.2、邮件训练模块中的特征提取模块按字段信息提取出邮件头中的有效信息,作为邮件头的特征,进入步骤S1.6.4 ; S1.6.3、邮件训练模块中的特征提取模块采用滑动窗口的指纹特征提取方法对邮件体特进行特征提取,进入步骤S1.6.4 ; S1.6.4、邮件训练模块中的特征提取模块将邮件头和邮件体两部分特征合并,用向量形式表示,输出给邮件判别模块。
10.根据权利要求5所述基于聚类的垃圾邮件过滤系统的方法,其特征在于,步骤S2.1具体包括下述步骤: S1.2.1、邮件过滤模块中的类属性判别模块依据邮件所采用的编码方式进行解码,进入步骤S1.2.2 ; S1.2.2、邮件过滤模块中的类属性判别模块将解码后的邮件文本信息进行去噪、分词处理,提取出有效特征词信息,进入步骤S1.2.3 ; S1.2.3、邮件过滤模块中的类属性判别模块利用提取出的有效特征词信息表示成VSM向量形式,其中权重采用tf-1df计算,进入步骤S1.2.4 ; S1.2.4、邮件过滤模块中的类属性判别模块分别计算该邮件的特征向量与各类簇中心的特征向量的相似度,选取相似度最大的类簇,将类簇编号输出给邮件判别模块; 所述步骤S2.3具体包括以下步骤: S2.3.1、邮件过滤模块中的特征提取模块按照邮件格式,将邮件分为邮件头和邮件体两部分,对于邮件头部分,进入步骤S2.3.2 ;对于邮件体部分,跳至步骤S2.3.3 ; S2.3.2、邮件过滤模块中的特征提取模块按字段信息提取出邮件头中的有效信息,作为邮件头的特征,跳至步骤S2.3.4 ; S2.3.3、邮件过滤模块中的特征提取模块采用滑动窗口的指纹特征提取方法对邮件体特进行特征提取,进入步骤S2.3.4 ; S2.3.4、邮件过滤模块中的特征提取模块将邮件头和邮件体两部分特征合并,用向量形式表示,输出给邮件判别模块。
【文档编号】H04L12/58GK103559175SQ201310476384
【公开日】2014年2月5日 申请日期:2013年10月12日 优先权日:2013年10月12日
【发明者】董守斌, 许腾, 张晶, 张凌, 隆承志 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1