首页 / 专利库 / 信号处理 / 载波频率 / 频率偏差 / 一种垃圾邮件过滤的中文关键词规则生成方法

一种垃圾邮件过滤的中文关键词规则生成方法

阅读:0发布:2020-09-17

专利汇可以提供一种垃圾邮件过滤的中文关键词规则生成方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种垃圾邮件过滤的中文关键词规则生成方法,该方法主要包括从邮件集中获取关键词候选词、特征提取得到关键词、获取关键词规则触发情况、为关键词规则赋分值四个步骤,对比当前技术,本发明提出的方法改进了关键词特征提取方法,结合词频和文档 频率 的特征提取方法降低通用词汇的影响,使用神经网络 算法 计算规则分值,比较 遗传算法 降低了学习的开销。本发明解决当前中文关键词规则时效性不足,并且能够根据一个特定的用户群体对于垃圾邮件的定义以及提供的邮件数据集生成最符合用户特征的关键词规则。,下面是一种垃圾邮件过滤的中文关键词规则生成方法专利的具体信息内容。

1.一种垃圾邮件过滤的中文关键词规则生成方法,其特征在于:该方法通过对给定邮件数据集进行数据预处理获取该数据集中邮件的邮件头以及邮件体部分的所有词汇作为关键词候选词,通过结合词频和文档频率的特征提取方法选定关键词,进而使用该关键词规则对上述邮件数据集进行邮件过滤从而得到关键词规则在垃圾邮件和正常邮件的触发情况,并且使用此触发情况作为神经网络算法的输入,通过随机下降方法训练神经网络直到过滤效果收敛,将训练得到的权重转化为规则的分数,最终得到的规则即可应用于基于规则的邮件过滤的解决方案中;其具体包括以下步骤:
1)通过邮件筛选、邮件解析、中文分词对邮件数据集进行预处理得到关键词候选词集合;
2)对候选词集合的全部词汇统计词频、文档频率,通过先比较词频后比较文档频率的特征提取从候选词集合中选出关键词;
3)收集邮件数据集中每封邮件的关键词触发情况,并格式化触发情况数据;
4)根据上述关键词触发情况通过神经网络算法对关键词规则赋分值。
2.根据权利要求1所述的一种垃圾邮件过滤的中文关键词规则生成方法,其特征在于:
在步骤1)中,所述邮件筛选是指剔除邮件数据集中的纯英文文件,所述邮件解析是实现基于RFC822和MIME协议对邮件内容进行解析分割出不同的部分选取邮件头和邮件体的部分,所述中文分词是利用中文分词工具对邮件头和邮件体的文本内容进行分词。
3.根据权利要求1所述的一种垃圾邮件过滤的中文关键词规则生成方法,其特征在于:
在步骤2)中,结合词频与文档频率的方法做特征选取,确定关键词,包括以下步骤:
2.1)统计词频、文档频次,词频指一个词在文档中出现的次数,文档频率指出现某个候选词的文档个数;
2.2)选取垃圾邮件中词频最高的N个词;
2.3)按照公式spam(wi)/spam(wi)+ham(wi)>T%筛选出关键词,符合该公式的wi即为一个关键词,其中wi表示在词频最高的N个词集合中的某个词,spam(wi)表示包含词wi的垃圾邮件个数,ham(wi)表示包含词wi的正常邮件个数,T%表示某个设置的阈值
4.根据权利要求1所述的一种垃圾邮件过滤的中文关键词规则生成方法,其特征在于:
在步骤3)中,利用开源工具SpamAssassin收集邮件数据集中每封邮件的关键词触发情况,并格式化触发情况数据,包括以下步骤:
3.1)禁用SpamAssassin内置的所有规则,停用贝叶斯算法,消除其它规则的影响,添加步骤2)中生成的关键词规则;
3.2)使用SpamAssassin提供的mass-check脚本将训练集中的每份邮件调用SpamAssassin进行过滤,然后在日记中记录下每封邮件所触发的所有规则;
3.3)对日记文件进行二次处理,将处理结构结构化。
5.根据权利要求1所述的一种垃圾邮件过滤的中文关键词规则生成方法,其特征在于:
在步骤4)中,使用神经网络算法为步骤2)中生成的关键词规则赋分值,包括以下步骤:
4.1)首先将非垃圾邮件进行冗余复制,添加非垃圾邮件的数目的公式是1+(number_of_test_hit)*ham_preference,ham_preference为参数输入,默认为2.0,number_of_test_hit指该邮件触发了多少规则;
4.2)为每条规则随机分配在特定范围内的权重,范围由规则触发邮件数目的情况决定;
4.3)利用神经网络算法进行训练,迭代num_epochs次后停止,num_epochs指神经网络迭代的次数,在每一轮迭代指定weight_decay参数和bias参数,其中weight_decay参数是指一次迭代中权值衰减的速度,bias参数指偏差值用来平滑统计异常;
4.4)删除训练得到分值为0的规则,得到最终生成的规则。

说明书全文

一种垃圾邮件过滤的中文关键词规则生成方法

技术领域

[0001] 本发明涉及互联网安全的技术领域,尤其是指一种垃圾邮件过滤的中文关键词规则生成方法。

背景技术

[0002] 随着互联网的发展,尤其是移动互联网的高速发展,网络通讯手段愈加丰富,但是电子邮件作为互联网应用最广的服务依然保持着其不可替代性。如今网络上泛滥的垃圾邮件会浪费大量网络资源,增加用户处理邮件的时间成本,一些病毒垃圾邮件的传播甚至会直接造成巨大的经济损失。经过各国研究人员数十年的研究,现在已经积累了成熟且丰富的反垃圾邮件技术,主要包括基于邮件发送原理对发件人身份检测的技术如黑、白名单,SPF检测,蜜罐技术等;基于用户行为的过滤技术如并发控制、频率控制等;基于邮件内容过滤的方法,结合机器学习及统计学知识通过基于概率及基于规则两类方法实现。基于规则的垃圾邮件过滤的开源解决方案中SpamAssassin效果尤佳。在Spam Assassin的规则中有一类为关键词规则,关键词规则的工作原理是扫描邮件头和邮件体,检查其中是否包含有垃圾邮件中的常用词汇,每一条关键词规则被赋予特定的权重分数,SpamAssassin官方只维护英文关键词规则,因此不能检查出来中文邮件中是否包含垃圾邮件的常用词语,在2004年CCERT使用词频统计和遗传算法开发出了一份中文规则,但是从2006年就不再更新,随着时间的推移,垃圾邮件的常用关键词也会发生变化,上文提及的规则集在时效性上存在不足,CCERT在提取关键词特征时,使用词频统计,选取在垃圾邮件集中词频最高的词汇,这种方法会将一些同时会出现在垃圾邮件和普通邮件中的常用词汇视作垃圾邮件的关键词,这样显然时不合理的,并且CCERT使用旧版SpamAssassin提供的遗传算法为规则计算分值,自3.4版本以来,SpamAssassin已更新为神经网络算法,对比遗传算法神经网络算法能够有效地减少学习时间开销,另外用户对于垃圾邮件的判定往往有不同的标准。综合以上的问题,提出一种根据特定的邮件集生成中文关键词规则的解决方案具有重要意义。

发明内容

[0003] 本发明的目的在于克服现有技术的缺点与不足,提出了一种垃圾邮件过滤的中文关键词规则生成方法,能够根据用户提供的特定邮件数据集自动生成最符合用户需求的中文关键词规则,用于基于规则的垃圾邮件过滤方案中。
[0004] 为实现上述目的,本发明所提供的技术方案为:一种垃圾邮件过滤的中文关键词规则生成方法,该方法通过对给定邮件数据集进行数据预处理获取该数据集中邮件的邮件头以及邮件体部分的所有词汇作为关键词候选词,通过结合词频和文档频率的特征提取方法选定关键词,进而使用该关键词规则对上述邮件数据集进行邮件过滤从而得到关键词规则在垃圾邮件和正常邮件的触发情况,并且使用此触发情况作为神经网络算法的输入,通过随机下降方法训练神经网络直到过滤效果收敛,将训练得到的权重转化为规则的分数,最终得到的规则即可应用于基于规则的邮件过滤的解决方案中;其具体包括以下步骤:
[0005] 1)通过邮件筛选、邮件解析、中文分词对邮件数据集进行预处理得到关键词候选词集合;
[0006] 2)对候选词集合的全部词汇统计词频、文档频率,通过先比较词频后比较文档频率的特征提取从候选词集合中选出关键词;
[0007] 3)收集邮件数据集中每封邮件的关键词触发情况,并格式化触发情况数据;
[0008] 4)根据上述关键词触发情况通过神经网络算法对关键词规则赋分值。
[0009] 在步骤1)中,所述邮件筛选是指剔除邮件数据集中的纯英文文件,所述邮件解析是实现基于RFC822和MIME协议对邮件内容进行解析分割出不同的部分选取邮件头和邮件体的部分,所述中文分词是利用中文分词工具对邮件头和邮件体的文本内容进行分词。
[0010] 在步骤2)中,结合词频与文档频率的方法做特征选取,确定关键词,包括以下步骤:
[0011] 2.1)统计词频、文档频次,词频指一个词在文档中出现的次数,文档频率指出现某个候选词的文档个数;
[0012] 2.2)选取垃圾邮件中词频最高的N个词;
[0013] 2.3)按照公式spam(wi)/spam(wi)+ham(wi)>T%筛选出关键词,符合该公式的wi即为一个关键词,其中wi表示在词频最高的N个词集合中的某个词,spam(wi)表示包含词wi的垃圾邮件个数,ham(wi)表示包含词wi的正常邮件个数,T%表示某个设置的阈值
[0014] 在步骤3)中,利用开源工具SpamAssassin收集邮件数据集中每封邮件的关键词触发情况,并格式化触发情况数据,包括以下步骤:
[0015] 3.1)禁用SpamAssassin内置的所有规则,停用贝叶斯算法,消除其它规则的影响,添加步骤2)中生成的关键词规则;
[0016] 3.2)使用SpamAssassin提供的mass-check脚本将训练集中的每份邮件调用SpamAssassin进行过滤,然后在日记中记录下每封邮件所触发的所有规则;
[0017] 3.3)对日记文件进行二次处理,将处理结构结构化。
[0018] 在步骤4)中,使用神经网络算法为步骤2)中生成的关键词规则赋分值,包括以下步骤:
[0019] 4.1)首先将非垃圾邮件进行冗余复制,添加非垃圾邮件的数目的公式是1+(number_of_test_hit)*ham_preference,ham_preference为参数输入,默认为2.0,number_of_test_hit指该邮件触发了多少规则;
[0020] 4.2)为每条规则随机分配在特定范围内的权重,范围由规则触发邮件数目的情况决定;
[0021] 4.3)利用神经网络算法进行训练,迭代num_epochs次后停止,num_epochs指神经网络迭代的次数,在每一轮迭代指定weight_decay参数和bias参数,其中weight_decay参数是指一次迭代中权值衰减的速度,bias参数指偏差值用来平滑统计异常;
[0022] 4.4)删除训练得到分值为0的规则,得到最终生成的规则。
[0023] 本发明与现有技术相比,具有如下优点与有益效果:
[0024] 1、本发明实现了根据特定的邮件集生成中文关键词规则,解决了当前中文关键词规则时效性不足。
[0025] 2、本发明能够根据一个特定的用户群体对于垃圾邮件的定义生成最符合用户特征的关键词规则。
[0026] 3、本发明改进了关键词特征提取方法,结合词频和文档频率的特征提取方法取消一些常用词汇的影响。
[0027] 4、本发明使用神经网络算法计算规则分值,比较传统的遗传算法,降低了学习的开销。附图说明
[0028] 图1为本发明方法具体实现的数据流图。
[0029] 图2为本发明中选取关键词方法的流程图
[0030] 图3为本发明中确定关键词规则分值方法的流程图。

具体实施方式

[0031] 下面结合具体实施例对本发明作进一步说明。
[0032] 本实施例使用公开中文邮件数据集SEWMTest Corpus2011对本发明方法进行评测,将误过滤率、漏过滤率、逻辑平均误过滤率、度量值作为评估指标,本实例的数据流如图1所示,实现所述垃圾邮件过滤的中文关键词规则生成方法具体流程如下:
[0033] 步骤1、剔除上述SEWMTest Corpus2011数据集中的英文邮件,选取其中的中文邮件。由于目标是提取中文规则,而SEWMTest Corpus2011邮件集中存在英文邮件,因此首先将非中文邮件从训练集中剔除,依据是将邮件解码,得到字符的Unicode编码,然后判断邮件是否存在大于等于\u4e00且小于等于\u9fa5的字符,如果邮件头或邮件体存在该范围的字符,则认为是中文邮件,最终得到仅保留该类的中文邮件集合,得到4740封垃圾邮件和5678封正常邮件。
[0034] 步骤2、解码上述步骤1得到的邮件集中的所有邮件。关键词主要是从邮件主题和邮件体获取,因此对邮件进行解码,得到邮件头和邮件正文的中文表示。
[0035] 步骤3、使用中文分词算法处理上述步骤2生成的邮件头和邮件正文的中文文本产生特征候选词,本实例中使用jieba中文分词库,jieba是一个流行的开源中文分词库,支持精确模式和搜索引擎模式,精确模式试图得到最精确的分词,而搜索引擎模式则以尽可能地细分句子得到细粒度的分词。本实例中采用该库的精确模式。
[0036] 步骤4、针对上述步骤3得到的特征候选词分别统计词频,文档频率,按照上述先计算词频然后计算文档频率的方法(T%取70%,经验值)进行关键词的特征提取。从网络上得到的CCERT的规则包括了332条邮件头规则和154条邮件体规则,而本实例需要与之进行对比,因此特征提取选择邮件头330条规则,邮件体选择150规则。
[0037] 步骤5、去除SpamAssassin的所有的规则,并禁用贝叶斯算法,消除其他规则的影响。为了避免产生过高的分值,将判定为垃圾邮件的阈值设置为1.0。
[0038] 步骤6、将上述步骤1得到的邮件集分为训练集和测试集,其中训练数据集占中文邮件集的70%,测试集取余下的30%。利用SpamAssassin提供mass-check脚本调用上述步骤4生成的关键词规则对训练数据集进行垃圾过滤,得到这些规则在垃圾邮件和非垃圾邮件的触发情况。
[0039] 步骤7、将上述步骤6得到的规则触发情况作为神经网络的输入,经过随机梯度下降法的迭代,得到规则分数。本步的难点在于如何确认四个参数,其中本实例设置ham_preference=2.0(保留为默认值),weight_decay=1.0(保留为默认值),由于在上述步骤5中阈值相对减小,因此将learning_rate降低为0.02(默认是2.0,这里取0.02为经验值,相对效果较好)。num_epochs将决定神经网络迭代的次数,上述感知器算法中没有提供收敛检测自动停止运算的逻辑,而是由用户确定迭代次数。为了确定迭代次数,在SpamAssassin的感知器算法实现中加入每10epoch打印对应的误分类(把垃圾邮件识别为非垃圾邮件,或非垃圾邮件识别垃圾邮件)邮件个数的逻辑,通过观察发现在num_epochs=3000时,上述方法基本收敛,因此设置迭代次数为3000。
[0040] 步骤8、将上述步骤7训练得到的分值为0的规则删除,得到的最终的自动生成的规则。
[0041] 步骤9、对上述步骤8最终生成的规则进行评估。
[0042] 其中步骤1-步骤4目的是从邮件数据集中选取关键词,此部分的流程图如图2所示,步骤4-步骤8目的是确定关键词规则的分值,此部分的流程图如图3所示。
[0043] 最后步骤9将上述实例实施的结果与使用CCERT规则对上述SEWMTestCorpus2011邮件集进行邮件过滤的结果进行比对,对评估指标的说明如下:
[0044] 误过滤率hm%,其定义是非垃圾邮件被误识别为垃圾邮件占总的非垃圾邮件的比例。
[0045] 漏过滤率sm%,其定义是垃圾邮件被误识别为非垃圾邮件占所有垃圾邮件的比例。
[0046] 逻辑平均误过滤率lam%,其定义是非垃圾邮件和垃圾邮件的误过滤比率的几何意义。
[0047] 度量值,即hm%=0.1时对应的sm%的取值。
[0048] 对比测试结果如下:
[0049]
[0050] 由上述实验结果可见,本实例生成的中文规则集要比CCERT所提供的规则效果要好,主要是因为训练集和测试集为同一个数据集,具有更好的相关性。这意味着根据用户自身已有的邮件训练集训练规则效果会更好,体现了本发明方法的意义,值得推广。
[0051] 以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈