专利名称::基于支持向量机的垃圾邮件过滤方法
技术领域:
:本发明涉及垃圾邮件过滤方法,尤其涉及一种基于支持向量机的垃圾邮件过滤方法。
背景技术:
:自从互联网普及以来,电子邮件逐渐成为人们生活中便捷的通信手段之一。然而,随之产生的垃圾邮件像瘟疫一样蔓延,污染网络环境,占用大量传输、存储和运算资源,影响了网络的正常运行。由于垃圾邮件数量多,具有反复性、强制性、欺骗性、不健康性及传播速度快等特点,严重干扰了人们正常生活,浪费用户的时间和精力,甚至造成很多额外的经济支出和信息安全隐患。因此,垃圾邮件过滤技术已成为互联网发展中的重要研究课题之一。垃圾邮件的过滤可以基于IP地址、邮件的信头或邮件的内容,可以在用户、MUA、MDA、MTA、网关/路由器/防火墙等多个层次实施。从电子邮件的传输过程来说,垃圾邮件过滤技术可分为起始端(Originator)、外中继(External-Relay)和接收端(Receiver)垃圾邮件过滤技术,其中,接收端垃圾邮件过滤技术是当前的主流研究方向,目前绝大多数反垃圾邮件安全产品也是基于接收端工作的。具体地说,接收端垃圾邮件过滤技术主要有(OIP、域名、邮件地址的黑白名单;(2)实时黑白名单;(3)反向域名验证;(4)基于信头、信体、附件内容的关键词过滤;(5)基于贝叶斯(含各种改进的贝叶斯)的内容统计分析;(6)基于规则评分系统的过滤平台;(7)其它垃圾邮件过滤技术,如病毒扫描、受益人黑名单引擎等。目前市场上已有许多商用垃圾邮件过滤系统,例如(1)Bogofilter系统,它主要基于贝叶斯(Bayes)原理,自动分析邮件文本或标准输入文本,基于设定的正常或垃圾邮件信息判断邮件属性,并返回是否属于垃圾邮件的判定;通过对邮件的头和内容进行统计分析来分类,并通过用户的分类和纠正来学习;对附件名进行统计,但忽略附件内容。(2)DMC系统,它主要采用统计数据压縮技术,将邮件当作字节流,无需常规的特征提取步骤,可以提取字符或二进制流层次上的特征作为过滤标准,具有快速判别和动态更新的特点。该系统中的分类器本质上是基于字符的贝叶斯分类器。(3)SpamAssassin系统,它综合应用了文本分析、贝叶斯过滤、DNS黑名单和分布式协同过滤数据库等技术。经专利查新统计,国内外有不少与垃圾邮件过滤相关的专利,例如,基于贝叶斯分类的中文垃圾邮件内容分类鉴别算法(200510135603.3)、用于阻止垃圾邮件的源/目的地的特征和列表(200410063953.9)、社会网络电子邮件过滤(200510070053.1)、垃圾电子邮件过滤方法和系统(200510087762.0)、增量反垃圾邮件査找与更新服务(200510082282.5)、外发垃圾邮件的阻止(200410063149.0)、在系统中为紧急或重要情况使用成批电子邮件过滤器用于分类消息(200410063950.5),等等。以上专利中所采用的垃圾邮件过滤技术,均未釆用基于支持向量机的垃圾邮件过滤方法。
发明内容本发明的目的是提供一种基于支持向量机的垃圾邮件过滤方法。基于支持向量机的垃圾邮件过滤方法的步骤如下1)对邮件进行解析,提取标题、文本和字符集相关信息;2)对提取的文本信息内容进行分词;3)统计邮件中的词频,利用TF-IDF公式将邮件文本映射成向量;4)利用LibSVM对邮件样本进行训练得到支持向量机模型;5)利用UbSVM和4)中得到的支持向量机模型对邮件进行分类,得到邮件是否为垃圾邮件的概率值;6)利用阈值调整降低正常邮件被误判为垃圾邮件的比率,并最终判定邮件是否为垃圾邮件。所述的对邮件进行解析,提取标题、文本和字符集相关信息利用RFC2822,RFC2045,RFC2046邮件标准和MIME格式标准,对邮件进行解码、解析的歩骤,首先提取邮件的标题、正文、附件名称、图片名称等内容,若提取的内容已通过Base64和QuotedPrintable编码方式进行过编码,则采用与其对应的解码方式进行解码。所述的对提取的文本信息内容进行分词对于解码后的邮件文本,使用分词系统对邮件文本进行分词,以得到经过分词的邮件文本。所述的统计邮件中的词频,利用TF-IDF公式将邮件文本映射成向量对于经过分词的邮件文本,首先统计其中每个词的词频和所有邮件中该词条出现的词频,对于得到的每篇文本中每个词的词频和所有邮件中出现的词频,使用TF-IDF公式把邮件文本映射成邮件文本向量,在映射成向量的时候,将标题和文本词频的权重调整为3:1,同时,加入行为特征"RE:"和"TEL:",与文本特征混合使用。所述的利用LibSVM对邮件样本进行训练得到支持向量机模型对于邮件文本向量,利用LibSVM工具包中的训练程序对所有的训练样本进行训练,得到一个支持向量机模型。所述的利用LibSVM和得到的支持向量机模型对邮件进行分类,得到邮件是否为垃圾邮件的概率值对于待判定邮件,重复步骤l)3),然后把得到的邮件向量用LibSVM工具包中的预测程序和步骤4)中得到的支持向量机模型进行分类,利用支持向量回归的方法得到邮件是否为垃圾邮件的概率值。所述的利用阈值调整降低正常邮件被误判为垃圾邮件的比率,并最终判定邮件是否为垃圾邮件对于步骤5)中得到的垃圾邮件概率值a,设定一个阈值b,只有当a/(l-a:i>b时才认定邮件是垃圾邮件。本发明具有的有益效果:1)提出一种基于SVM增量算法的垃圾邮件过滤方法,充分利用SVM单模型分类准确率最高的优点,大幅度提高垃圾邮件过滤的准确率;2)提出一种基于代价敏感的垃圾邮件过滤方法,可有效解决垃圾邮件过滤时所面临的误判代价不对等问题;3)提出一种在将邮件映射成向量时调整标题和正文内容权重的方法,且增加了标题内容的权重值,有效提高了分类准确率;4)提出一种在将邮件映射成向量时加入邮件行为特征的方法,即加入了在邮件通信中较重要的行为特征"RE:"和"TEL:",综合利用了文本特征和行为特征,有效提高了分类准确率。图1是基于支持向量机的垃圾邮件过滤方法的流程图;图2是数据预处理的流程图;图3是SVM分类器的训练流程图;图4是SVM分类器的分类流程图。具体实施例方式本发明的主要原理如下1)在邮件的预处理阶段,即特征层面,采用常规的解码、分词、特征选择等方法,经过预处理的邮件将包含标题内容和正文文本内容,同时还将每封邮件是否包含附件、图片、音频、视频等信息抽取出来。2)在模型层面,利用SVM进行训练和分类。通过训练得到一个SVM模型,找到分类超平面,即垃圾邮件和正常邮件之间的分类超平面。3)针对代价不对等问题,即正常邮件被误判为垃圾邮件的代价远大于垃圾邮件被误判为正常邮件的代价,采用阈值设定的方法,即只有当垃圾邮件的概率相比于正常邮件的概率达到一定的阈值时,才判定该邮件为垃圾邮件,以避免当垃圾邮件概率和正常邮件概率接近时产生误判。4)在实际的邮件通信过程中,如果邮件带有行为特征"RE:",那么该邮件为正常邮件的概率会比较大,而如果邮件中带有"TEL:"则邮件是广告邮件的概率较大,故在邮件向量中增加了行为特征向量,以提高邮件分类的效率。5)不仅邮件正文包含了有用信息,而且邮件标题也包含了非常重要的信息,在很多情况下,邮件标题中的信息甚至比正文信息更重要,所以对邮件标题和正文中都设定权值,且增加标题中所含信息的权重,从而提高了分类准确率。基于支持向量机的垃圾邮件过滤方法的步骤如下-1)邮件预处理。主要包括以下5个步骤邮件解码、解析文本内容为html的邮件、字符集转换、提取文本内容、繁简体中文转换。a)邮件解码就是根据邮件编码方式进行解码,为了便于网络传输等原因,邮件在发送之前需要先进行编码,常见的编码方式有Base64,QuotedPrintable等,邮件解码就是根据编码方式对邮件进行相应的解码,得到邮件的明文内容。首先根据邮件的格式信息,得到每封邮件每个文本部分的编码方式,然后对于文本部分使用相应的编码方式进行解码,目前的主流编程语言诸如Java、C存等均已经提供了相应的解码函数,只需要调用这些函数就可以获得明文内容。b)解析文本内容为html格式的邮件的理由是,通常邮件发送时可选择以html方式或纯文本方式发送,对于以html格式发送的邮件,解码后的文本中含有许多html标记、脚本内容及CSS样式的代码,若不去除,将形成无用的向量,且对后续的分类将造成影响,所以,需要去除html标记、脚本代码和CSS样式的代码,并提取html格式邮件中的真正文本内容。解析html格式的邮件时,只需顺序遍历html的正文内容,用正则表达式之类的方法去匹配html标记,同时用桟这样的数据结构来记录html标记来提取标记之间的文本内容,同时剔除掉脚本代码和CSS样式代码。c)进行字符集转换就是把以其它方式编码的内容转换成GB2312编码,这样在后续操作时,无需选取不同的编码方式来读取邮件。d)提取文本内容就是提取邮件的标题和正文,并提取邮件是否包含附件、图片、视频、音频等信息。e)进行繁简体中文转换的目的是为了后续的分词步骤,使得现有的分词系统也能够对繁体的邮件内容进行分词。详细的邮件预处理流程如图2所示。2)对邮件进行分词。分词是针对中文等东亚语言的特有步骤,就是把连续字符分成一个个单独的有意义的词汇,然后将词汇作为邮件的特征。可采用已有的开源分词系统,目前国内主要的分词系统有中科院ICTCLAS分词程序、哈工大分词程序、北大天网分词程序。以北大天网分词程序为例,将程序的源代码下载之后进行编译得到可执行程序,把需要进行分词的文件作为输入给程序就可以得到经过分词的文件。3)将邮件映射成向量。首先,统计邮件数据集中所有的词汇及其出现的频率;然后,以此为基础建立一个词汇索引表;同时,把行为特征"RE:"和"TEL'也放入词汇索引表中。a)建立词汇索引表之后,分别扫描每封邮件,并统计每封邮件中包含的词频,然后,将每封邮件映射成一个文本向量,其计算方法可采用如下的TF-IDF公式其中,是词/在邮件/中的词频,叫是训练数据集中的邮件数量,丐是含有词/的邮件数量。b)为了获得更好的分类效果,还需调整标题与正文的权重。实验结果表明,当标题与正文的权重比值为3:1时,可获得最好的分类效果,故在利用TF-IDF公式进行计算时,应将标题中的词汇词频提高至原有的3倍。4)歩骤3)已将训练数据集映射到向量空间模型,本发明不采取任何降维措施,因为实践表明降维会降低分类的准确率。对于已映射为向量的邮件,只需利用LibSVM工具包中的svm-train子程序即可由现有的训练数据集获得一个SVM分类器模型。SVM分类器的训练流程如图3所示。5)对新的待判定邮件,首先,重复步骤1)3),把需要分类的邮件映射成文本向量;然后,利用LibSVM工具包中的svm-predict,把新的邮件向量和步骤4)中获得的分类器模型作为参数输入,并选择支持向量回归(SVR)选项进行预测,即可获得该邮件是否为垃圾邮件的概率值。SVM分类器的分类流程如图4所示。6)经过步骤5)之后,得到了一个邮件是否为垃圾邮件的概率值,但是在邮件判定中存在着代价不对等的问题,即正常邮件被误判的代价远大于垃圾邮件被误判的代价。针对该问题,利用设定一个阈值的方法来控制正常邮件的误判率,即对垃圾邮件概率值a,设定一个阈值b,只有当a/(l-a)〉b时才认定邮件是垃圾邮件,也就是说,只有当邮件为垃圾邮件的概率值远大于为正常邮件的概率值时,才判定为垃圾邮件。权利要求1.一种基于支持向量机的垃圾邮件过滤方法,其步骤如下1)对邮件进行解析,提取标题、文本和字符集相关信息;2)对提取的文本信息内容进行分词;3)统计邮件中的词频,利用TF-IDF公式将邮件文本映射成向量;4)利用LibSVM对邮件样本进行训练得到支持向量机模型;5)利用LibSVM和4)中得到的支持向量机模型对邮件进行分类,得到邮件是否为垃圾邮件的概率值;6)利用阈值调整降低正常邮件被误判为垃圾邮件的比率,并最终判定邮件是否为垃圾邮件。2.根据权利要求1所述的一种基于支持向量机的垃圾邮件过滤方法,其特征在于所述的对邮件进行解析,提取标题、文本和字符集相关信息利用RFC2822,RFC2045,RFC2046邮件标准和MIME格式标准,对邮件进行解码、解析的步骤,首先提取邮件的标题、正文、附件名称、图片名称等内容,若提取的内容己通过Base64和QuotedPrintable编码方式进行过编码,则采用与其对应的解码方式进行解码。3.根据权利要求1所述的一种基于支持向量机的垃圾邮件过滤方法,其特征在于所述的对提取的文本信息内容进行分词对于解码后的邮件文本,使用分词系统对邮件文本进行分词,以得到经过分词的邮件文本。4.根据权利要求l所述的一种基于支持向量机的垃圾邮件过滤方法,其特征在于所述的统计邮件中的词频,利用TF-IDF公式将邮件文本映射成向量对于经过分词的邮件文本,首先统计其中每个词的词频和所有邮件中该词条出现的词频,对于得到的每篇文本中每个词的词频和所有邮件中出现的词频,使用TF-IDF公式把邮件文本映射成邮件文本向量,在映射成向量的时候,将标题和文本词频的权重调整为3:1,同时,加入行为特征"RE:"和"TEL:",与文本特征混合使用。5.根据权利要求1所述的一种基于支持向量机的垃圾邮件过滤方法,其特征在于所述的利用LibSVM对邮件样本进行训练得到支持向量机模型对于邮件文本向量,利用LibSVM工具包中的训练程序对所有的训练样本进行训练,得到一个支持向量机模型。6.根据权利要求l所述的一种基于支持向量机的垃圾邮件过滤方法,其特征在于利用LibSVM和得到的支持向量机模型对邮件进行分类,得到邮件是否为垃圾邮件的概率值对于待判定邮件,重复步骤l)3),然后把得到的邮件向量用LibSVM工具包中的预测程序和步骤4)中得到的支持向量机模型进行分类,利用支持向量回归的方法得到邮件是否为垃圾邮件的概率值。7.根据权利要求l所述的一种基于支持向量机的垃圾邮件过滤方法,其特征在于利用阈值调整降低正常邮件被误判为垃圾邮件的比率,并最终判定邮件是否为垃圾邮件对于步骤5)中得到的垃圾邮件概率值a,设定一个阈值b,只有当a/(l-a)>b时才认定邮件是垃圾邮件。全文摘要本发明公开了一种基于支持向量机的垃圾邮件过滤方法,其步骤如下1)对邮件进行解析,提取标题、文本和字符集相关信息;2)对提取的文本信息内容进行分词;3)统计邮件中的词频,利用TF-IDF公式将邮件文本映射成向量;4)利用LibSVM对邮件样本进行训练得到支持向量机模型;5)利用支持向量机模型对新的邮件进行分类,得到邮件是否为垃圾邮件的概率值;6)利用阈值调整来保证正常邮件被误判为垃圾邮件的比率维持在较低的水平,并最终判定邮件是否为垃圾邮件。本发明利用了支持向量机所具有的单模型分类准确率最高的优点,综合利用了文本特征和行为特征,提高了垃圾邮件过滤的准确率,同时,还有效解决了垃圾邮件过滤时所面临的误判代价不对等问题。文档编号H04L29/06GK101106539SQ20071006959公开日2008年1月16日申请日期2007年8月3日优先权日2007年8月3日发明者徐从富,王金龙,陆冠中申请人:浙江大学