当前位置:
文档之家› 基于改进贝叶斯的垃圾邮件过滤系统设计与实现
基于改进贝叶斯的垃圾邮件过滤系统设计与实现
埘^=P(眠IG)=———菥生面i————一 Wl+乞乞N(W。,S{) 口=1 i=1
其中P(形lG)是矽在G中出现的比重。
IDI(训练垃圾邮件时,为以一;训练正常邮件时,等于k)
是该类的训练样本数,Ⅳ(形,S)为词形在S中词频。Jyl为总词 里曼
数,乞乞N(W。,S。)为该类所有词的词频和。
d=1 i=1
图1贝叶斯分类器
对于这样的一个贝叶斯分类器,若有某一待分类的样本 D,其分类特征值为并=(并。,戈:,…,‰),则样本D属于类别G的 概率为P(C=CkIX=x),因而样本D属于类别G的条件要满足 式(1):
P(C=CklX=x)=Max{P(C=C。IX=x),…,P(C=cmⅨ≈)J而由贝
叶斯P公(c式-GⅨ础)=—P(X—=x可lC=压Ck)广P(C=Ck)
基于内容的过滤有关键字匹配和分类算法的方法。 关键字匹配是将垃圾邮件中可能含有的一些关键字放到 文件中,当来了一份新邮件时,匹配此信邮件中是否含有那些
基金项目:国家863资助项目“计算机病毒防范计划”(编号:863一104棚2-01)
作者简介:丁文斌(1982-),硕士。李斌,副教授。罗浩,博士。
万方数据
此方法将知道的一些经常发送垃圾邮件的IP、域名写入 一个黑名单中,在以后服务器接受邮件时,将发送邮件机器的 IP或域名和此黑名单匹配,如果在黑名单中,则拒绝接受。
国外用的比较多的是实时黑名单技术,它是基于IP、域名 等的过滤方法的扩展,在线的查询向本邮件服务器发送邮件的 机器的IP地址是否在此黑名单中,以多人的力量提供黑名单; 但是这种方法还是比较被动,只有被发现的IP才能被过滤掉, 而且在中国没有机构提供此实时黑名单。
这种方法虽然过滤简单,速度很快;但是过滤效果较差,对 没有发现的发送垃圾邮件的IP和域名没有作用,不灵活。 1.2.2基于网络测量平台的过滤
在本地网的监测点将进出的与邮件相关的通信量汇聚成 邮件流,并区分成无效邮件流、正常邮件流和异常邮件流,然后 根据这3种邮件流的统计特性,检测出本地网中产生的广告 邮件、垃圾邮件病毒以及异常邮件行为,并通过基于策略的响 应机制实施拦截和预警。由于区分成无效邮件流、正常邮件流 和异常邮件流较困难,此方法目前的过滤效果还不是太好。 1.2.3基于内容的过滤
统。图3是此系统的邮件训练子系统的系统流程图;图4是此 系统的邮件识别子系统的系统流程图。
邮件训练子系统是对训练库中训练样本进行预处理、提取 特征、进行训练,生成邮件过滤的知识库作为邮件过滤子系统 过滤时的依据。邮件识别子系统对未知邮件进行预处理、特征 提取、词之间相关性处理、按照过滤知识库算出概率,得出过滤 结果。
图3 邮件训练子系统流程图
图4邮件识别子系统流程图 下面介绍邮件过滤系统中各步的关键技术和主要的方法:
4.1邮件预处理 根据RFC822及MIME协议对邮件进行解析,主要对邮件
格式的解析和对邮件内容的解码;得出邮件的主题和内容;对 于中文邮件,词与词之间没有明显的分隔符,因此必须对邮件 内容进行分词,为下一步特征提取作准备,该系统的分词用最 大正向匹配。 4.2特征提取
4.4词之间相关性处理 该系统是将邮件内容视为句子的有序集合,句子内部的词
基于改进贝叶斯的垃圾邮件过滤系统设计与实现
丁文斌李斌罗浩 (哈尔滨工业大学国家网络信息安全重点实验室,哈尔滨150001)
E-mail:dingwenbin@pact518.hit.edu.ca
摘要该文设计并实现了一种基于改进贝叶斯的垃圾邮件过滤系统。传统的贝叶斯方法对邮件进行过滤时,将邮件视 为一个无序关键词的向量空间,丢掉了词与词之间,句子之间的相互关系。该文则将邮件视为句间有序,句子内部关键词 无序但是相关的部分有序的集合。减少传统方法处理时信息的丢失。得到的实验结果比传统方法更好。 关键词垃圾邮件 贝叶斯过滤器 文章编号1002—8331一(2005)18—0127-04 文献标识码A 中图分类号TP393.098
目前控制垃圾邮件的方法主要是过滤,有基于IP、域名等 的过滤和基于内容的过滤。基于琅等的过滤主要用在MTA
(邮件传输代理)模块上,由于MTA的流量很大,基于内容的过 滤将大大降低服务器的工作效率。基于内容的过滤主要用在 MDA(邮件投递代理)和MUA(邮件用户代理)模块上。 1.2.1基于IP、域名等的过滤
该文使用了基于内容的过滤,在传统的贝叶斯对垃圾邮件 进行过滤的基础上,改进了此算法。从实验结果可知,改进后的 方法比传统的方法具有更好过滤效果。
2贝叶斯分类器及贝叶斯邮件过滤器 2.1贝叶斯分类器
贝叶斯分类器即是用于分类工作的贝叶斯网。一个贝叶斯 分类器的结构如图1所示,该网中应包含一个表示分类的节点 C,变量C是类别集合{C。,c2,…,C0中的一个元素。另外还有一 组节点茗=(算,,并:,…,算。)表示用于分类的特征向量。
改进的贝叶斯分类器具有以下优点:减少了大量有用信息 的丢失,使分类精度提高了;在计算难度方面也是可以接受的。 是时间复杂度和精度的一种很好的折中。
圈2简化贝叶斯分类器
由于对给定的分类变量C,各置是相对独立的,因而有: 128 2005.18计算机工程与应用
万方数据
4系统的设计与实现 按照上面改进的贝叶斯方法设计了一个垃圾邮件过滤系
若有: 尸(c_“spam”IX剐)<P(c-“ham”IX=x) 就判断为有用邮件,否则为垃圾邮件。 2.3贝叶斯过滤器的缺点 由以上分析可知,原始的贝叶斯方法得到的效果最好,但 是计算量很大,而且很难计算,是一个不可实行的方法;朴素贝 叶斯方法易于实现,但是过多地简化使得很多对于分类很有用 的信息丧失了,使得分类效果不好。 下文将要介绍一种改进的贝叶斯方法。是对以上两种方法 很好的折中。取各自的优点结合起来,来提高过滤的精度。
计算机工程与应用2005.18 127
关键字,有就认为是垃圾邮件。这种方法的误判率很高,因为在 垃圾邮件中出现的关键字在正常邮件中也可能出现,这种方法 越来越少使用了。
基于分类算法的过滤是用文本分类算法来对邮件进行过 滤。可以将邮件看作两类:垃圾邮件、正常邮件,将邮件看作向 量空间,计算垃圾邮件的相似度来判断是否为垃圾邮件。目前 主要的方法是朴素贝叶斯、SVM、KNN等算法。根据实验结果, 朴素贝叶斯的过滤效果最好而且速度很快,许多产品已经出 现,如foxmail、outlook中都有基于贝叶斯的邮件过滤功能。
特征抽取的目的就是降低向量空间的维数,提高系统的速 度,提高系统的精度,防止过拟合[31。常用的特征提取的方法有 词条和类别的互信息、词条的统计、词条的期望交叉熵和文本 证据权等。该系统的特征提取方法用的是改进互信息【4】。其计算 公式如下:
RMI(r,Ci)=log[)
Keywords:spam,bayes,filter
1概述 1.1垃圾邮件简介
垃圾邮件就是那些你并不希望收到,并且你也没有订阅 过,但却被人利用电子邮件的特点强行塞入你的邮箱的广告、 产品介绍、发财之道等内容的电子邮件。垃圾邮件一次可以发 给很多人,在Intemet上同时传送很多副本;浪费了人们的大 量时间,一般人们需要至少10秒钟来判断是否为垃圾邮件,如 果每天收到几十封垃圾邮件,就得花大约十分钟的时间来处理 它们,实在是比较痛苦的事情;对于拨号上网的用户,不但造成 时间的浪费,还造成费用的浪费;大量的垃圾邮件充满邮箱,占 用大量的系统可用空问和资源,使机器暂时无法正常工作;过 多的垃圾邮件往往会加剧网络的负载能力和消耗大量的空间 资源来存储它们,过多的垃圾邮件还将导致系统的log文件变 得很大,甚至有可能溢出文件系统,这样会给Unix,Windows等 系统造成危害;除了系统有崩溃的可能外,大量的垃圾邮件还 会占用大量的CPU时间和网络带宽,造成正常用户的访问速 度成问题;垃圾邮件占用的带宽资源,严重时会拥塞整个Inter- net链路,中断Intemet的部分线路的运营而造成巨大的经济损 失,据CAUCE组织统计,消除垃圾邮件可为全世界小型企业 和个人每年节省940万美元;携带病毒的垃圾邮件直接威胁着 整个网络系统的安全。因此,消除垃圾邮件具有非常重要的意 义。 1.2 目前垃圾邮件处理技术
Filtering Spare System Based on Improved Bayes Ding Wenbin Li Bin Luo Hao
(State Key Lab of Network Information Security,Harbin Institute of Technology,Harbin 150001) Abstract:In this text,we have developed a new filtering spam system based on improved bayes.When using the tradi—
壮1表示此特征在本邮件中存在。根据朴素贝叶斯公式计算是
垃圾邮件的概率和不是垃圾邮件的概率,然后比较这两个概率 的大小。计算公式如下(spam表示垃圾邮件,ham表示正常邮 件):
P(C=“spam”IXn=P(xX)f==x型iIC—="sp—鳓’—’琢)尸蕊(c=丁“印—啪—’’~)
P(c_“ham”IXH-P-(XxFx)。=l型c:—“h—am”—)P瓦(c=函“hram—’’一)
P(X=xlC=Ck)=FIP(xF%IC=C,)
i=1
则
P(C=CklX=x)=型—1琢万一 FIP(XI=xilX=x)P(C:q)
2.2贝叶斯邮件过滤器 贝叶斯邮件过滤器即一种贝叶斯分类器,即将邮件分成有
用和无用的(“垃圾”)两类。先提取反映邮件是否有用的特征向 量(X,,X:,…,瓦),如果Xi_O表示此特征不在本邮件中存在,
式中的分母P(X=x)和类别G无关,因而在式子(1)中比 较最大值时可以忽略,所以贝叶斯分类仅计算概率P(X=xlC= q)和P(C=Ck)。其中P(C=Ck)一般由经验得到,叫做先验概 率。而P(X=xlC=G)叫做似然函数【l】,表示在类别c。下X=x的 概率,它的计算则要困难得多。特别是对于特征数n较大,而且 特征变量之间相依程度较高时,其计算将是极其费时的。为简 化计算,可假定各个特征变量魁是相对独立的,则可采用一种 简化了的贝叶斯分类器(朴素贝叶斯),其结构如图2所示: