一种垃圾邮件的检测方法及装置转让专利

申请号 : CN201510316823.X

文献号 : CN104967558B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 侯智瀚邹荣珠

申请人 : 东软集团股份有限公司

摘要 :

本申请提供了一种垃圾邮件的检测方法及装置,其中方法包括:根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;选择支持向量机的线性核函数,以所述样本向量作为输入训练得到分类函数;根据所述分类函数的系数确定所述特征词词库中特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值;根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。本申请节省了检测过程的计算量,在保证检测精度的情况下,提高了检测效率。

权利要求 :

1.一种垃圾邮件的检测方法,其特征在于,所述方法包括:

根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;

选择支持向量机的线性核函数,以所述样本向量作为输入训练得到分类函数;

根据所述分类函数的系数确定所述特征词词库中特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值,包括:将所述分类函数 变换为f(x)=w·x+b,其中, 表示分类函数的系数,yi∈(-1,+1)表示样本向量xi的类别标识,xi=(d1,…,dj,…,dN);i=1,2,…,n;j=1,2,…,N,n表示样本库的样本邮件个数,N表示特征词词库的特征词个数,dj表示特征词库中第j个特征词在样本向量xi中的坐标值,且当样本向量xi匹配命中该特征词,则dj取值为1,否则,dj取值为0,αi表示拉格朗日乘子;x=(d1,…,dj,…,dN),j=1,2,…,N,dj表示特征词库中第j个特征词在待检测邮件中的匹配结果,当待检测邮件匹配命中该特征词,则dj取值为1,否则dj取值为0,x向量作为线性分类函数的输入向量,b为偏移量;

从所述系数w中筛选出权值非零值的特征词以生成特征词集合,并确定判定阈值为-b;

根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。

2.根据权利要求1所述的方法,其特征在于,通过以下方式生成特征词词库:对样本库的样本邮件进行分词处理生成分词词库;

对样本邮件和分词词库作模式匹配,分别统计正常邮件类特征词和垃圾邮件类特征词各自对应的词频、类内文档频以及类外文档频;

根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库。

3.根据权利要求2所述的方法,其特征在于,在对所述样本邮件和所述分词词库作模式匹配之前,所述方法还包括:采用随机上采样和随机下采样相结合的方式,对所述样本库中的正常邮件和垃圾邮件进行均衡处理。

4.根据权利要求2或3所述的方法,其特征在于,所述根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库,包括:按照词频降序方式分别从正常邮件类特征词和垃圾邮件类特征词中选择排序靠前的M1个特征词;

根据统计的类内文档频和类外文档频分别计算正常邮件和垃圾邮件各自的M1个特征词的类别权重,按照类别权重降序方式分别从正常邮件和垃圾邮件的M1个特征词中选择排序靠前的且类别权重大于零的M2个特征词,将选择的M2个特征词组合生成特征词词库;M1和M2均是预设阈值,M1>M2>0。

5.根据权利要求4所述的方法,其特征在于,按照如下方式计算特征词的类别权重:按照公式 计算特征词的类别权重;其中,

CW(t,ci)表示特征词t在类别ci的权重;类别ci表示正常邮件类别或者垃圾邮件类别;α表示分类倾向调节因子;innerdf(t,ci)表示特征词t在类别ci下的类内文档频;outerdf(t,ci)表示特征词t在类别ci下的类外文档频。

6.根据权利要求1所述的方法,其特征在于,根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件,包括:根据所述特征词集合对待检测邮件进行模式匹配,记录匹配命中的特征词且一个特征词仅记录一次,并计算记录的特征词的权值总和;

当所述权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。

7.一种垃圾邮件的检测装置,其特征在于,所述装置包括:

样本向量生成单元,用于根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;

分类函数生成单元,用于选择支持向量机的线性核函数,以所述样本向量作为输入训练得到分类函数;

检测参数确定单元,用于根据所述分类函数的系数确定所述特征词词库中特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值;所述检测参数确定单元包括:分类函数简化子单元,用于将所述分类函数 变换为f(x)=w·x+

b,其中, 表示分类函数的系数,yi∈(-1,+1)表示样本向量xi的类别标识,xi=(d1,…,dj,…,dN);i=1,2,…,n;j=1,2,…,N,n表示样本库的样本邮件个数,N表示特征词词库的特征词个数,dj表示特征词库中第j个特征词在样本向量xi中的坐标值,且当样本向量xi匹配命中该特征词,则dj取值为1,否则,dj取值为0,αi表示拉格朗日乘子;x=(d1,…,dj,…,dN),j=1,2,…,N,dj表示特征词库中第j个特征词在待检测邮件中的匹配结果,当待检测邮件匹配命中该特征词,则dj取值为1,否则dj取值为0,x向量作为线性分类函数的输入向量,b为偏移量;

参数确定子单元,用于从所述系数w中筛选出权值非零值的特征词以生成特征词集合,并确定判定阈值为-b;

垃圾邮件检测单元,用于根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:

特征词词库创建单元,用于根据样本库的样本邮件创建特征词词库,所述特征词词库创建单元包括:分词单元,用于对样本库的样本邮件进行分词处理生成分词词库;

统计单元,用于对样本邮件和分词词库作模式匹配,分别统计正常邮件类特征词和垃圾邮件类特征词各自对应的词频、类内文档频以及类外文档频;

选择单元,用于根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库。

9.根据权利要求8所述的装置,其特征在于,所述选择单元,包括:

第一筛选子单元,用于按照词频降序方式分别从正常邮件类特征词和垃圾邮件类特征词中选择排序靠前的M1个特征词;

第二筛选子单元,用于根据统计的类内文档频和类外文档频分别计算正常邮件和垃圾邮件各自的M1个特征词的类别权重,按照类别权重降序方式分别从正常邮件和垃圾邮件的M1个特征词中选择排序靠前的且类别权重大于零的M2个特征词,将选择的M2个特征词组合生成特征词词库;M1和M2均是预设阈值,M1>M2>0。

10.根据权利要求9所述的装置,其特征在于,所述第二筛选子单元具体按照如下方式计算类别权重:按照公式 计算特征词的类别权重;其中,

CW(t,ci)表示特征词t在类别ci的权重;类别ci表示正常邮件类别或者垃圾邮件类别;α表示分类倾向调节因子;innerdf(t,ci)表示特征词t在类别ci下的类内文档频;outerdf(t,ci)表示特征词t在类别ci下的类外文档频。

11.根据权利要求7所述的装置,其特征在于,所述垃圾邮件检测单元,包括:权值总和计算子单元,用于根据所述特征词集合对待检测邮件进行模式匹配,记录匹配命中的特征词且一个特征词仅记录一次,并计算记录的特征词的权值总和;

垃圾邮件确定子单元,用于当所述权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。

说明书 :

一种垃圾邮件的检测方法及装置

技术领域

[0001] 本申请涉及通信技术领域,特别涉及一种垃圾邮件的检测方法及装置。

背景技术

[0002] 互联网技术的普及和高速发展,电子邮件以其快捷、方便、低成本的特点,成为了人们工作和生活的重要通信方式。随之而来的却是垃圾邮件的泛滥,垃圾邮件不仅占用了有限的网络资料、耗费用户大量的处理时间,还会携带蠕虫、病毒、钓鱼式攻击等网络安全问题,因此需要快速有效的垃圾邮件检测来保证用户正常的邮件通信。
[0003] 在众多的垃圾邮件检测技术中,基于统计的内容过滤技术因过滤效果好、能够及时捕捉垃圾邮件特征的变化、人工干预少,在垃圾邮件检测过程中被广泛采用,而支持向量机(Support Vector Machine,SVM)由于小样本、良好的推广性能、理论完备、适应性强、全局最优、泛化能力强、训练时间短等优点,相比其他基于统计的过滤技术更具优势,但已有基于支持向量机的垃圾邮件检测的研究中,采用优化特征选词过程、对训练过程加权、扩展线性判别函数的约束条件、优选支持向量机的核函数及其参数的组合等方法提高检测精度,这些方法均是通过增加检测过程的复杂度来提高检测精度但却牺牲了检测效率,在高性能要求的网关类安全产品或其他需要高性能的垃圾邮件检测产品中,检测效率成为主要性能瓶颈,为了保证高带宽,用户甚至会选择关闭此类功能,这严重影响了网关类安全产品的用户体验。

发明内容

[0004] 本申请所要解决的技术问题是提供一种垃圾邮件的检测方法,在保证检测精度情况下提高检测效率,以提高网关类安全产品的用户体验。
[0005] 本申请还提供了一种垃圾邮件的检测装置,用以保证上述方法在实际中的实现及应用。
[0006] 一方面,本申请提供了一种垃圾邮件的检测方法,所述方法包括:
[0007] 根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;
[0008] 选择支持向量机的线性核函数,以所述样本向量作为输入训练得到分类函数;
[0009] 根据所述分类函数的系数确定所述特征词词库中特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值;
[0010] 根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。
[0011] 可选的,通过以下方式生成特征词词库,该方式包括:
[0012] 对样本库的样本邮件进行分词处理生成分词词库;
[0013] 对样本邮件和分词词库作模式匹配,分别统计正常邮件类特征词和垃圾邮件类特征词各自对应的词频、类内文档频以及类外文档频;
[0014] 根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库。
[0015] 可选的,在对所述样本邮件和所述分词词库作模式匹配之前,所述方法还包括:
[0016] 采用随机上采样和随机下采样相结合的方式,对所述样本库中的正常邮件和垃圾邮件进行均衡处理。
[0017] 可选的,所述根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库,包括:
[0018] 按照词频降序方式分别从正常邮件类特征词和垃圾邮件类特征词中选择排序靠前的M1个特征词;
[0019] 根据统计的类内文档频和类外文档频分别计算正常邮件和垃圾邮件各自的M1个特征词的类别权重,按照类别权重降序方式分别从正常邮件和垃圾邮件的M1个特征词中选择排序靠前的且类别权重大于零的M2个特征词,将选择的M2个特征词组合生成特征词词库;M1和M2均是预设阈值,M1>M2>0。
[0020] 可选的,按照如下方式计算特征词的类别权重,该方式包括:
[0021] 按照公式 计算特征词的类别权重;其中,
[0022] CW(t,ci)表示特征词t在类别ci的权重;类别ci表示正常邮件类别或者垃圾邮件类别;α表示分类倾向调节因子;innerdf(t,ci)表示特征词t在类别ci下的类内文档频;outerdf(t,ci)表示特征词t在类别ci下的类外文档频。
[0023] 可选的,根据所述分类函数的系数确定所述特征词词库中每个特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值,包括:
[0024] 将分类函数 变换为f(x)=w·x+b,其中, 表示分类函数的系数,yi∈(-1,+1)表示样本向量xi的类别标识,xi=(d1,…,dj,…,dN);i=1,
2,…,n;j=1,2,…,N,n表示样本库的样本邮件个数,N表示特征词词库的特征词个数,dj表示特征词库中第j个特征词在样本向量xi中的坐标值,且当样本向量xi匹配命中该特征词,则dj取值为1,否则,dj取值为0,αi表示拉格朗日乘子;x=(d1,…,dj,…,dN),j=1,2,…,N,dj表示特征词库中第j个特征词在待检测邮件中的匹配结果,当待检测邮件匹配命中该特征词,则dj取值为1,否则dj取值为0,x向量作为线性分类函数的输入向量,b为偏移量;
[0025] 从所述系数w中筛选出权值非零值的特征词以生成特征词集合,并确定判定阈值为-b。
[0026] 可选的,根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件,包括:
[0027] 根据所述特征词集合对待检测邮件进行模式匹配,记录匹配命中的特征词且一个特征词仅记录一次,并计算记录的特征词的权值总和;
[0028] 当所述权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。
[0029] 又一方面,本申请提供了一种垃圾邮件的检测装置,所述装置包括:
[0030] 样本向量生成单元,用于根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;
[0031] 分类函数生成单元,用于选择支持向量机的线性核函数,以所述样本向量作为输入训练得到分类函数;
[0032] 检测参数确定单元,用于根据所述分类函数的系数确定所述特征词词库中特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值;
[0033] 垃圾邮件检测单元,用于根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。
[0034] 可选的,所述装置还包括:
[0035] 特征词词库创建单元,用于根据样本库的样本邮件创建特征词词库,所述特征词词库创建单元包括:
[0036] 分词单元,用于对样本库的样本邮件进行分词处理生成分词词库;
[0037] 统计单元,用于对样本邮件和分词词库作模式匹配,分别统计正常邮件类特征词和垃圾邮件类特征词各自对应的词频、类内文档频以及类外文档频;
[0038] 选择单元,用于根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库。
[0039] 可选的,所述特征词词库创建单元,还包括:
[0040] 均衡单元,用于采用随机上采样和随机下采样相结合的方式,对所述样本库中的正常邮件和垃圾邮件进行均衡处理。
[0041] 可选的,所述选择单元,包括:
[0042] 第一筛选子单元,用于按照词频降序方式分别从正常邮件类特征词和垃圾邮件类特征词中选择排序靠前的M1个特征词;
[0043] 第二筛选子单元,用于根据统计的类内文档频和类外文档频分别计算正常邮件和垃圾邮件各自的M1个特征词的类别权重,按照类别权重降序方式分别从正常邮件和垃圾邮件的M1个特征词中选择排序靠前的且类别权重大于零的M2个特征词,将选择的M2个特征词组合生成特征词词库;M1和M2均是预设阈值,M1>M2>0。
[0044] 可选的,所述第二筛选子单元具体按照如下方式计算类别权重:
[0045] 按照公式 计算特征词的类别权重;其中,
[0046] CW(t,ci)表示特征词t在类别ci的权重;类别ci表示正常邮件类别或者垃圾邮件类别;α表示分类倾向调节因子;innerdf(t,ci)表示特征词t在类别ci下的类内文档频;outerdf(t,ci)表示特征词t在类别ci下的类外文档频。
[0047] 可选的,所述检测参数确定单元,包括:
[0048] 分类函数简化子单元,用于将分类函数 变换为f(x)=w·x+b,其中, 表示分类函数的系数,yi∈(-1,+1)表示样本向量xi的类别标识,xi=(d1,…,dj,…,dN);i=1,2,…,n;j=1,2,…,N,n表示样本库的样本邮件个数,N表示特征词词库的特征词个数,dj表示特征词库中第j个特征词在样本向量xi中的坐标值,且当样本向量xi匹配命中该特征词,则dj取值为1,否则,dj取值为0,αi表示拉格朗日乘子;x=(d1,…,dj,…,dN),j=1,2,…,N,dj表示特征词库中第j个特征词在待检测邮件中的匹配结果,当待检测邮件匹配命中该特征词,则dj取值为1,否则dj取值为0,x向量作为线性分类函数的输入向量,b为偏移量;
[0049] 参数确定子单元,用于从所述系数w中筛选出权值非零值的特征词以生成特征词集合,并确定判定阈值为-b。
[0050] 可选的,所述垃圾邮件检测单元,包括:
[0051] 权值总和计算子单元,用于根据所述特征词集合对待检测邮件进行模式匹配,记录匹配命中的特征词且一个特征词仅记录一次,并计算记录的特征词的权值总和;
[0052] 垃圾邮件确定子单元,用于当所述权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。
[0053] 从上述技术方案可以看出,与现有技术相比本申请具有如下有益效果:
[0054] 本申请首先根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;本申请特征词词库里的特征词同时具备向量的稀疏性和类别的高区分度,这样有利于样本线性可分为后续处理打好基础。其次,本申请选择支持向量机的线性核函数并输入样本向量进行训练得到分类函数,根据所述分类函数的系数确定每个特征词的权值,将非零权值的特征词组合生成带权值的特征词集合,以及根据所述分类函数的偏移量确定判定阈值;由于分类精准性依赖于特征词选择和支持向量机核函数的选取,核函数的作用是将向量映射到高维空间,解决样本向量在当前空间线性不可分的问题,本申请选择的特征词词库具备高代表性和类别的高区分度,使样本向量在原始空间中线性可分,在使用线性核函数的情况下也能够保证检测精度。最后,本申请根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过判定阈值时,确定该邮件为垃圾邮件。相比现有技术,本申请将检测过程中的模式识别过程转换成带权值的特征集合和判定阈值的模式匹配过程,在保证检测精度的情况下,减小了检测过程的计算量,能够提高检测效率。

附图说明

[0055] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0056] 图1是本申请的一种垃圾邮件的检测方法实施例的流程图;
[0057] 图2是本申请提供的特征词词库的生成方法的流程图;
[0058] 图3是本申请的一种垃圾邮件的检测装置实施例的结构图。

具体实施方式

[0059] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0060] 本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
[0061] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0062] 参考图1,图1是本申请的一种垃圾邮件的检测方法实施例的流程图,由图1可知,该方法可以包括以下步骤:
[0063] S11,根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词。
[0064] 支持向量机的线性分类性能主要依赖于特征词向量稀疏性以及类别的区分能力,而线性分类性能直接影响到检测精度,因此本申请为了保证检测精度,先通过对特征词词库的特殊处理使其为线性分类性能打好基础。
[0065] 本申请特征词词库里的特征词同时具备向量的稀疏性和类别的高区分度,特征词词库包括正常邮件类和垃圾邮件类两类特征词,使其具有类别的高区分度,这样利于样本线性可分为后续处理打好基础。
[0066] 本申请基于这样的特征词词库生成样本向量,使得样本向量具有突出的稀疏性。为了有利于样本线性可分,本申请的样本向量是用于表征所述特征词词库中的特征词在样本邮件中对应的坐标值,坐标值的取值为1或0。这种取值方式更加突出了样本向量的稀疏性,使得类别间隙更大,更有利于样本线性可分。在具体实现时,本申请可以采用多种方式来生成样本向量。
[0067] 一种方式是:当特征词出现在样本邮件中时,则对应的坐标值取值为1,否则,对应的坐标值取值为0。
[0068] 另一种方式是:当特征词在样本邮件中出现的频率大于预设阈值时,则对应的坐标值取值为1,否则,对应的坐标值取值为0。
[0069] 当然,本申请还可以采用其他方式生成样本向量,本申请对生成样本向量的方式不作具体限定。
[0070] 基于上述特点,本申请提供了特征词词库的生成方法,参见图2,该生成方法可以包括:步骤S21~S23,具体如下:
[0071] S21,对样本库的样本邮件进行分词处理生成分词词库。
[0072] 为了准确地提取出样本库中样本邮件的文本信息,首先就必须做到高精度的分词以得到分词词库。下面对分词过程进行简单说明。
[0073] 首先,识别邮件文本语言,若是英文文本(或外国语文本,下文仅以英文文本为例),则将两个空格之间认定为一个单词;若是中文文本,先根据正向最大匹配法(或其他匹配法)用词典切词,并且识别出专有名词,对于剩下的未识别短语用N-gram统计分词,创建分词词库。
[0074] 具体做法是:对于样本库中的英文邮件,由于英文的行文中,词与词之间以空格作为自然分界符,以标点符号作为语义分界符,因此英文分词可以直接将两个空格之间认定为一个单词,将扫描到的单词加入分词词库。
[0075] 对于样本库中的中文邮件,由于中文的词与词之间没有明确的分界符,可以采用词典与统计相结合的方法,首先用符号将文本分割成句子,然后将其与采用带词性标注和词频的词典通过正向最大匹配方法进行扫描,辅以一定的专有名称,如人名、地名和数字年代等结合规则识别来达到基本分词,对于未识别的短语采用N-gram统计分词,具体是用Uni-gram、Bio-gram、Tri-gram和Quad-gram切词并统计词频,根据zipf法则选取词频超过阈值的词加入分词词库,该阈值根据样本规模而定。
[0076] 为提高后续处理的效率,还可以根据词的词性标注,删除诸如语气助词、副词、代词、介词和连接词等高频虚词,还可以使用停用词表去除在每个类别中都频繁出现、无助于分类的词。其中,停用词表一般通过离线分类的选词反馈得到。
[0077] 由于分词词库的词数量较大,但对于后续检测而言,该分词词库中包含大量的冗余特征词,这些特征词就会影响检测精度和效率。如果直接用来表示特征向量的维度,容易造成特征向量空间的高维性和稀疏性,因此,需要在分词词库的基础上进一步选词,以降低特征向量的维度,提高分类速度,节省储存空间,还能过滤掉无关属性的特征词,减少无关信息对文本分类的干扰,从而提高分类的精度和防止过拟合。下面的步骤S202和S203就是为了从分词词库中选择出具有高代表性和高类别区分度的特征词,进而利用选择的特征词组合生成特征词词库。
[0078] 另外,考虑到样本库中垃圾邮件的收集比较难,一般收集到的样本库是不均衡数据集,为了使得样本库中邮件较均衡,在该方法的基础上还可以增加步骤S21’,该步骤S21’具体为:采用随机上采样和随机下采样相结合的方式,对所述样本库中的正常邮件和垃圾邮件进行均衡处理。这样使得样本库中正常邮件和垃圾邮件的样本数目达到相对均衡。
[0079] S22,对样本邮件和分词词库作模式匹配,分别统计正常邮件类特征词和垃圾邮件类特征词各自对应的词频、类内文档频以及类外文档频。
[0080] 步骤S22,通过模式匹配统计出正常邮件类的特征词对应的词频、类内文档频以及类外文档频,以及,统计出垃圾邮件类的特征词对应的词频、类内文档频以及类外文档频。
[0081] 所述词频是指一个特征词在所有邮件中出现的频率。所述类内文档频是指一个特征词在同一类邮件内出现的文档数目。而类外文档频是指一个特征词在另一类邮件内出现的文档数目。这里的类内类外是相对而言的,在本文中有正常邮件类和垃圾邮件类两种类别。
[0082] 具体的,正常邮件类的特征词的类内文档频是指一个特征词在所有正常邮件内出现的文档频率;对应的,类外文档频是指该特征词在所有垃圾邮件内出现的文档频率;而垃圾邮件类的特征词的类内文档频是指一个特征词在所有垃圾邮件内出现的文档频率;对应的,类外文档频是指该特征词在所有正常邮件内出现的文档频率。
[0083] S23,根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库。
[0084] 由于高频词是邮件文本最重要的一种表现特征,因此通过词频高低可以选择一些具有高代表性的特征词,另外类内文档频和类外文档频结合起来可以判定特征词所能代表的类别特性,如,一个特征词在垃圾类邮件出现的频率越高,在正常类邮件出现的频率越低,认为这个特征词更能体现垃圾类邮件的特点,该特征词具有较高的类别区分度。
[0085] 在具体实现时,步骤S23可以包括:步骤S2301-S2302。
[0086] S2301,按照词频降序方式分别从正常邮件类特征词和垃圾邮件类特征词中选择排序靠前的M1个特征词。
[0087] 由于大幅度地增加特征集的规模并不能显著地提高分类的准确性,因此在初次选词阶段,可以先选择词频排序靠前的M1个特征词,既能够保证后续分类的精确性,又可以提高后续的选词效率。这里M1可以根据实际应用环境进行设置。
[0088] S2302,根据统计的类内文档频和类外文档频分别计算正常邮件和垃圾邮件各自的M1个特征词的类别权重,按照类别权重降序方式分别从正常邮件和垃圾邮件的M1个特征词中选择排序靠前的且类别权重大于零的M2个特征词,将选择的M2个特征词组合生成特征词词库;M1和M2均是预设阈值,M1>M2>0。
[0089] 步骤S2302具体的按照如下公式计算得到特征词的类别权重:
[0090] 按照公式 计算特征词的类别权重;其中,
[0091] CW(t,ci)表示特征词t在类别ci的权重;类别ci表示正常邮件类别或者垃圾邮件类别;α表示分类倾向调节因子;innerdf(t,ci)表示特征词t在类别ci下的类内文档频;outerdf(t,ci)表示特征词t在类别ci下的类外文档频。
[0092] 上述公式既体现了特征词的类间分布特点,又体现了特征词的类内分布特点。关于特征词的类间分布特点体现为:如若innerdf(t,ci)越大且outerdf(t,ci)越小,则CW(t,ci)越大,表明特征词的类间分布越不均匀,其对类别的区分能力越强。关于特征词的类内分布特点体现为:如果有特征词的innerdf(t1,ci)大于innerdf(t2,ci),则有CW(t1,ci)大于CW(t2,ci),表明特征词在类内文档分布越均匀,其对该类的代表能力就越强。
[0093] 在传统的选词方法中,特征词对类别没有倾向,其权值大小仅体现自身的重要程度,最终分类依赖于分类器的算法,分类的特征匹配是被动的。而本申请提供的选词方法,特征词权重因类而异,其权值越大,则会将分类结果更倾向该类,最终分类的结果是所有特征综合倾向的结果,分类的特征匹配是主动的,能很好的适配支持向量机的线性分类器。
[0094] 在本实施例中执行完S11之后,进入步骤S12,接着对本实施例的步骤S12进行解释说明。
[0095] S12,选择支持向量机的线性核函数,以所述样本向量作为输入训练得到分类函数。
[0096] S13,根据所述分类函数的系数确定所述特征词词库中特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值。
[0097] 下面从公式实现角度对步骤S13作具体说明,步骤S13可以包括:S1301~S1302:
[0098] S1301,将分类函数 变换为f(x)=w·x+b,其中,表示分类函数的系数,yi∈(-1,+1)表示样本向量xi的类别标识,xi=(d1,…,dj,…,dN);i=1,2,…,n;j=1,2,…,N,n表示样本库的样本邮件个数,N表示特征词词库的特征词个数,dj表示特征词库中第j个特征词在样本向量xi中的坐标值,且当样本向量xi匹配命中该特征词,则dj取值为1,否则,dj取值为0,αi表示拉格朗日乘子;x=(d1,…,dj,…,dN),j=1,2,…,N,dj表示特征词库中第j个特征词在待检测邮件中的匹配结果,当待检测邮件匹配命中该特征词,则dj取值为1,否则dj取值为0,x向量作为线性分类函数的输入向量,b为偏移量。
[0099] S1302,从所述系数w中筛选出权值非零值的特征词以生成特征词集合,并确定判定阈值为-b。
[0100] 正是由于上述步骤S11中的特征词词库里的特征词具有高代表性和高类别区分度,才使得上述样本向量能够实现线性可分,这样就不再需要从低维度到高维度的映射,可直接选择线性核函数进行处理。
[0101] 下面从数学原理角度对上述S1301和S1302进行解释。
[0102] 本申请利用支持向量机算法是为了求得一个超平面,该超平面能够将所有样本向量按照垃圾邮件和正常邮件两类分开,并且该超平面是距离两类数据距离最大的超平面。该超平面用分类函数 表示,当f(x)=0时,x是位于超平面上的点。
当f(x)>0时,x属于垃圾邮件分类,当f(x)<0时,x属于正常邮件分类。在支持向量机算法中核函数的作用就是将本来线性不可分的点映射到高维空间,使其在高维空间下能够线性可分,事实上,线性核函数就是不用核函数,不需要升维映射的核函数,但为了统一形式,将其称之为线性核函数。
[0103] 在利用线性核函数得到分类函数之后,将其简化成f(x)=w·x+b,对待检测邮件进行检查时,首先将待检测邮件与词库进行匹配得到x,然后将x带入函数f(x)=w·x+b,其中,x和w是N维向量,x=(d1,…,dj,…,dN),,w=(w1,…,wj,…,wN)。最后根据f(x)的数值识别邮件,当f(x)>0时,该邮件是垃圾邮件,当f(x)<0时,该邮件是正常邮件。
[0104] 上述向量x中的坐标值是用于表征待检测邮件与特征词集合的匹配结果,发生匹配命中的特征词相应坐标位的坐标值为1,未发生命中的特征词相应坐标位的坐标值为0,基于此,w向量中的坐标值可以看作是特征词的权值,那么分类函数f(x)>0的计算过程,也可以认为是在特征匹配的过程中,对命中特征词的权值进行累加,最终与判定阈值比较的过程。其中,w向量可表示特征词集合的权值,-b可表示判定阈值。而现有的基于机器学习的垃圾邮件检测方法,通过特征匹配将邮件文本转化成向量是必不可少的步骤,本申请通过一次特征匹配直接得到分类结果,无需获取向量以及将向量带入分类模型,因此处理效率要远远优于现有技术。
[0105] 上述 中,αi表示拉格朗日乘子;在样本向量中,支持向量对应的αi值非0,非支持向量对应的αi值为0。基于此,对于仅出现在非支持向量中的特征词,在向量w中的相应坐标位值为0,不会影响f(x)的结果,视为无效词。由于样本向量中只有一部分样本向量属于支持向量(支持向量可以理解为距离超平面f(x)=0最近的一些点),只有从支持向量的样本向量选出的词才是有效词,只有这些词才会影响到判定结果。基于此,可以对词库做一次筛选,筛选条件是删除对应向量w中坐标位为0的词;由于非支持向量对应的αi值为0,向量yiαixi的所有坐标值都是0,因此非支持向量不会对特征词的加权产生贡献,如果一个词只在非支持向量中出现过,那么所有支持向量中该词的坐标值也是0,所以求和之后,相应的坐标值也一定是0,这样就可以剔除一部分无效词,减少集合词数,间接提升效率。
[0106] S14,根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。
[0107] 在上述步骤S13中确定了两个参数,即,特征词集合和判定阈值,接下来垃圾邮件的检查就依赖这两个参数来实现。
[0108] 步骤S14可以包括:S1401~S1402,具体如下:
[0109] S1401,根据所述特征词集合对待检测邮件进行模式匹配,记录匹配命中的特征词且一个特征词仅记录一次,并计算记录的特征词的权值总和。
[0110] S1402,当所述权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。
[0111] 本申请首先根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;本申请特征词词库里的特征词同时具备向量的稀疏性和类别的高区分度,这样有利于样本线性可分为后续处理打好基础。其次,本申请选择支持向量机的线性核函数并输入样本向量进行训练得到分类函数,根据所述分类函数的系数确定每个特征词的权值,将非零权值的特征词组合生成带权值的特征词集合,以及根据所述分类函数的偏移量确定判定阈值;由于分类精准性依赖于特征词选择和支持向量机核函数的选取,核函数的作用是将向量映射到高维空间,解决样本向量在当前空间线性不可分的问题,本申请选择的特征词词库具备高代表性和类别的高区分度,使样本向量在原始空间中线性可分,在使用线性核函数的情况下也能够保证检测精度。最后,本申请根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过判定阈值时,确定该邮件为垃圾邮件。相比现有技术,本申请将检测过程中的模式识别过程转换成带权值的特征集合和判定阈值的模式匹配过程,在保证检测精度的情况下,减小了检测过程的计算量,能够提高检测效率。
[0112] 与上述方法相对应的,本申请还提供了一种垃圾邮件的检测装置。
[0113] 参考图3,图3是本申请提供的一种垃圾邮件的检测装置实施例的结构图,所述装置可以包括:
[0114] 样本向量生成单元31,用于根据样本库和特征词词库生成样本向量,所述特征词词库包括从所述样本库的样本邮件提取的正常邮件类特征词和垃圾邮件类特征词;
[0115] 分类函数生成单元32,用于选择支持向量机的线性核函数,以所述样本向量作为输入训练得到分类函数;
[0116] 检测参数确定单元33,用于根据所述分类函数的系数确定所述特征词词库中特征词的权值,筛选出权值非零值的特征词以生成特征词集合,并根据所述分类函数的偏移量确定判定阈值;
[0117] 垃圾邮件检测单元34,用于根据所述特征词集合统计待检测邮件包含的特征词的权值总和,当该权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。
[0118] 可选的,所述装置还包括:
[0119] 特征词词库创建单元,用于根据样本库的样本邮件创建特征词词库,所述特征词词库创建单元包括:
[0120] 分词单元,用于对样本库的样本邮件进行分词处理生成分词词库;
[0121] 统计单元,用于对样本邮件和分词词库作模式匹配,分别统计正常邮件类特征词和垃圾邮件类特征词各自对应的词频、类内文档频以及类外文档频;
[0122] 选择单元,用于根据统计的词频、类内文档频以及类外文档频,选择预设个数的特征词组合生成特征词词库。
[0123] 可选的,所述特征词词库创建单元,还包括:
[0124] 均衡单元,用于采用随机上采样和随机下采样相结合的方式,对所述样本库中的正常邮件和垃圾邮件进行均衡处理。
[0125] 可选的,所述选择单元,包括:
[0126] 第一筛选子单元,用于按照词频降序方式分别从正常邮件类特征词和垃圾邮件类特征词中选择排序靠前的M1个特征词;
[0127] 第二筛选子单元,用于根据统计的类内文档频和类外文档频分别计算正常邮件和垃圾邮件各自的M1个特征词的类别权重,按照类别权重降序方式分别从正常邮件和垃圾邮件的M1个特征词中选择排序靠前的且类别权重大于零的M2个特征词,将选择的M2个特征词组合生成特征词词库;M1和M2均是预设阈值,M1>M2>0。
[0128] 可选的,所述第二筛选子单元具体按照如下方式计算类别权重:
[0129] 按照公式 计算特征词的类别权重;其中,
[0130] CW(t,ci)表示特征词t在类别ci的权重;类别ci表示正常邮件类别或者垃圾邮件类别;α表示分类倾向调节因子;innerdf(t,ci)表示特征词t在类别ci下的类内文档频;outerdf(t,ci)表示特征词t在类别ci下的类外文档频。
[0131] 可选的,所述检测参数确定单元,包括:
[0132] 分类函数简化子单元,用于将分类函数 变换为f(x)=w·x+b,其中, 表示分类函数的系数,yi∈(-1,+1)表示样本向量xi的类别标识,xi=(d1,…,dj,…,dN);i=1,2,…,n;j=1,2,…,N,n表示样本库的样本邮件个数,N表示特征词词库的特征词个数,dj表示特征词库中第j个特征词在样本向量xi中的坐标值,且当样本向量xi匹配命中该特征词,则dj取值为1,否则,dj取值为0,αi表示拉格朗日乘子;x=(d1,…,dj,…,dN),j=1,2,…,N,dj表示特征词库中第j个特征词在待检测邮件中的匹配结果,当待检测邮件匹配命中该特征词,则dj取值为1,否则dj取值为0,x向量作为线性分类函数的输入向量,b为偏移量;
[0133] 参数确定子单元,用于从所述系数w中筛选出权值非零值的特征词以生成特征词集合,并确定判定阈值为-b。
[0134] 可选的,所述垃圾邮件检测单元,包括:
[0135] 权值总和计算子单元,用于根据所述特征词集合对待检测邮件进行模式匹配,记录匹配命中的特征词且一个特征词仅记录一次,并计算记录的特征词的权值总和;
[0136] 垃圾邮件确定子单元,用于当所述权值总和超过所述判定阈值时,确定该邮件为垃圾邮件。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0137] 对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本申请提供的装置可以应用在高性能要求的网关类安全产品或其他需要高性能的垃圾邮件检测产品中,以提高检测效率,提高用户体验。
[0138] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0139] 以上对本申请所提供的一种垃圾邮件的检测方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。