第28卷第8期
2011年8月
计算机应用与软件
Computer Applications and Software
V0l_28 No.8
Aug.2011
中文垃圾邮件过滤综合方法
李玉峰 郜晓晶
(内蒙古农业大学计算机与信息工程学院 内蒙古呼和浩特010018)
摘 要 随着电子邮件在人们生活中的广泛应用,垃圾邮件的危害也日益引起人们的重视。目前,已经有一些过滤系统在英文环
境中取得了较好的过滤效果,但在中文环境中,过滤效果不够理想。针对中文垃圾邮件,提出一种将基于IP的白名单过滤、基于规则
的SpamAssassin过滤、基于统计的贝叶斯过滤结合在一起的垃圾邮件综合过滤方法,并在Linux下的实验中取得良好的过滤效果。
关键词 垃圾邮件过滤 贝叶斯分类SpamAssassin
中图分类号TP317.2 文献标识码A
CoMPREHENSIVE APPRoACH FoR CHINESE SPAM EMAIL FILTERING
Li Yufeng Gao Xiaojing
(College of Computer and Information Engineering,Inner Mongolia Agricultural University,Hohhot 010018,Inner Mongolia,China)
Abstract With the wide application of E—mail in people’S daily life,the harm incurred by the spam attracts increasing attentions.At
present,some filtering systems have got satisfied filtering effect in English circumstances.However in Chinese circumstances,the filtering
effect is still not ideal yet.For the Chinese spam,this paper proposes a comprehensive spam filtering method which combines the IP—based
white list filtering,the principle—based SpamAssassin filtering and the statistic-based Bayesian—filtering together,and it achieves perfect
ifltering effect in the experiment in Linux system.
Keywords Spam filtering Bayesian-classiifcation SpamAssassin
在基于规则的垃圾邮件过滤技术方面,SpamAssassin处于
0 引 言
遥遥领先的地位 J,己经被RedHat公司OEM到RedHat Linux
的标准安装组件里。另外,SpmaAssassin可成为完全独立的平
随着Internet应用在全球的快速普及,电子邮件已经成为人
台,当被最终用户或系统管理员调用时,可以方便地与Proc-
们日常生活中通信、交流的重要手段之一。然而,垃圾邮件的滥
mail、Sendmail或Qmail以及其它MTA一起使用,为单一用户甚
发,不仅浪费了大量的网络资源,而且给整个社会带来很大危
至整个站点过滤垃圾邮件。其次,它允许用户自定义规则和修
害。其中中文垃圾邮件占很大比重。
改规则权值。研究表明,经过合适的参数调整,SpmaAssassin可
目前,随着垃圾邮件过滤技术的不断发展,已经有一些垃圾
以过滤90%的垃圾邮件 。
邮件过滤系统在英文环境中取得了较好的过滤效果,但在中文
尽管SpamAssassin在设计的时候考虑了多种语言的兼容
环境中,过滤效果均不够理想,不能满足用户的要求。本文对几
性,但目前广泛应用的都是比较适合英文用户的版本,其中绝大
种常用的过滤算法进行了研究,分析了它们在中文环境中存在
部分是英文过滤规则,中文用户使用前需要对其进行较大的调
的问题,根据各算法的优缺点,提出了一种中文环境中的垃圾邮
整,要使中文垃圾邮件过滤更有效,还需要添加中文过滤规则,
件综合过滤方法,首先通过白名单过滤,将在白名单中的正常邮
件直接接收,然后通过基于规则的方法过滤,保证误判率为0,
并经常更新。
常用的基于概率统计的分类方法中,贝叶斯 作为一种经
最后通过基于统计的方法过滤,尽量提高查全率,并在Linux下
典的概率统计算法,在垃圾邮件过滤方面得到了广泛的应用。
完成实验,取得了良好的过滤效果。
贝叶斯过滤器与以前收到的垃圾邮件和合法邮件中相同词语及
短语出现的概率对比来确定垃圾邮件的可能性。贝叶斯过滤器
1垃圾邮件过滤技术
功能强大,但它仅在英文邮件环境中得到实现。文献[5]描述
了一些对简单贝叶斯方法的一些可能改进,得到了99.75%的垃
目前,垃圾邮件过滤技术主要集中在基于邮件地址、标题和
圾邮件过滤准确率。中文邮件与英文邮件存在较大的差异,首
内容进行过滤。从实际应用分析,邮件内容是邮件的主要信息
先是中文分词和特征选取具有更大难度,英文是用空格简单地
载体,因此对邮件内容进行过滤被认为是目前最有效的过滤方
法。基于内容的邮件过滤方法主要分为基于规则匹配和基于概
收稿日期:2010—05—15。李玉峰,讲师,主研领域:计算机网络,网
率统计两类 。
络安全,多媒体技术。
220 计算机应用与软件 20l 1年
分词,而中文的词与词之间没有直接的分词符号,通常是通过人
的理解来划分的,而中文语义理解还处于研究初期。这些差异
Assassin规则库,保证他们的及时更新。将用户发送的邮件提
取内容作为特征词库的学习资料,提取收件方地址作为白名单
对于步骤(2)和步骤(3)提到的基于SpamAssassin过滤昕
使得直接将该贝叶斯算法的过滤器应用于中文环境显然是不合
理的。目前还没有基于该算法的过滤工具被很好地设计实现 需的规则库,以及基于贝叶斯过滤所需的特征词库,需要经过
来. .
2所示步骤生成。
2综合过滤方法
由于基于规则过滤的工具如SpamAssassin和基于统计的过
滤方法,如贝叶斯过滤器在垃圾邮件过滤方面已经达到了比较
高的准确率 ,但都是在英文垃圾邮件过滤中取得较好的效
果。相对来说,基于规则匹配的过滤方法检测垃圾邮件的准确
率高,不能检测新的垃圾邮件,即漏检率高。而基于概率统计的
过滤方法检测垃圾邮件的准确率相对不高,但能检测新的垃圾
邮件,即漏检率低。鉴于以上分析,两种方法各有优缺点,为了
加强过滤效果,本文运用基于规则方法和基于统计方法相结合
的过滤方案,首先通过白名单过滤,将正常邮件直接接收,然后
通过基于规则方法的SpamAssassin过滤,保证误判率为0,最后
通过基于统计方法的贝叶斯过滤器过滤,尽量提高查全率。过
滤流程如图1所示。
图1 中文垃圾邮件过滤流程图
(1)对于一封新到达的邮件,系统首先查看邮件的发送方
地址,如果在白名单中,则直接送到用户邮箱,否则进入基于规
则的SpamAssassin过滤。
(2)基于规则的SpamAssassin过滤要求达到零误报率。根
据实际情况调整规则的分值,通过训练集生成规则库添加中文
规则,并定期更新Chinese—rules.cf中文规则。经过SpamAssas-.
sin过滤判别为垃圾邮件的直接进入Spare集。
(3)通过规则过滤的邮件经过中文分词、特征选取,进入贝
叶斯过滤器过滤,贝叶斯算法以特征词库为基础,对这封邮件的
全文进行查看和计算后做出判断。判别为垃圾邮件的进入
Spare集,对于处于判别边界值的邮件放人疑似集,提交给用户
处理 j
(4)将过滤后的正常邮件提交用户阅读。并将Spam集打
包给用户审阅 .
(5)将过滤产生的Spam集和Ham集以及用户的手动反馈 fang.ef文件中添加whitelist—from @ccert.edu.cn,会使所有来
信息,交由贝叶斯过滤的特征词库进行再学习,并更新Spam. 自ccert.edu.cn的邮件被视为正常邮件。根据文献[10]通过实
图2生成SpamAssassin中文规则和贝叶斯特征词厍过程
本文采用Java语言编程实现邮件解码,采用Javamail实
邮件元素的分离。关于特征选取部分,采用中国科学院计算技
术研究所提供的汉语词法分析系统ICTCLAS(Institute of Corn—
puting Technology,Chinese Lexical Ana1),sis System)实现咔l文分
词,该系统的分词正确率高达97.58% 特征选取办法采川
DFR,文献[8]实验结果表明,在英文文本分类中表现良好的特
征抽取方法(IG、MI和CHI),但是在中文文本分类实验中的表
现远远不及DF,并分析了原因..文献[9]针对DF依赖高频i百J
的缺点,MI对低频词依赖等特点,对DF进行了改进,用新函数
DFR(Document Frequency Ratio)文本频率比值进行特征选取,
实验显示,DFR比DF具有更好的特征选择效果,而且保留了原
公式简单高效的优点。
计算权值并生成特征词库和SpamAssassiO中文规则分为以
下几步完成:
(1)将垃圾邮件集和正常邮件集经过邮件解码、元素分离、
中文分词后,得到垃圾邮件集对应的subject—bad,body—bad表,
正常邮件集对应的subject一_good和body—good表。采用以上提
到的DFR方法将subject.一bad表和subject.good表作为一个训练
集,将body—bad表和bode—good表作为一个训练集,分别得到4
张特征词表,经过特征选取后,分别由subject—bad和subject—
good得到垃圾邮件主题特征词表s ̄bjm,由body—bad和body—
good得到垃圾邮件信体特征词表body。这两张表的key为to—
ken,value为probability。
(2)按照特征词的垃圾邮件概率值(probabihty)由大到小
进行排序,分别从垃圾邮件主题特征词表(subject)和垃圾邮件
信体特征词表(bc,ay)中,选取500个主题特征词和5OO个信体
内容特征词,根据SA的规则写法标准建立相应的sA主题规则
和内容规则,名字分别表示为“CN—subject”和“CN—body”。利用
sA提供的mass—check脚本对中文规则进行评估,最后选出500
条最好的规则。
(3)将垃圾邮件主题特征词表(subject)和垃圾邮件信体特
征词表(body)合并生成贝叶斯特征词库。其中两个表中十}{同
的特征词的权值取二者平均值..本系统使用spamAssassin提供
的白名单功能,如在Linux下/etc/mail/SpamAssassin/sa,.mimede-
第8期 李玉峰等:中文垃圾邮件过滤综合方法 221
验中获得的中文邮件对于SpamAssassin自带的缺省英文规则的 中文邮件进行测试,将阈值设置为5个等级,实验结果见表2
匹配情况表,调整了SpamAssassin自带英文规则的分值。根据
所示。
对邮件训练集的学习获得特征词,按照SpamAssassin过滤规则
表2使用SpamAssassin缺省英文规则过滤的实验结果
的格式,添加中文过滤规则。通过以下步骤设置实现CCERT的
阚值 查全率 误判率
中文垃圾邮件过滤规则集Chinese_rules.cf的定期更新。
O.5 67.4% 55.3%
(1)下载中文过滤规则集Chinese_rules.cf,在Linux下执行
语句wget-N—P/usr/share/spamassassin/www.ccert.edu.cn/spam/
1.5 62.3% 54.25
sa/Chinese
_
mles.cfo
2.5 58.5% 49.7%
(2)实现中文过滤规则集Chinese—rules.cf一个月更新一
次,在root的crontab中添加一行:001¥ wget-N—P/usr/share/
3.5 54.2% 48.4%
spamAssassin http://www.ccert.edu.cn/spam/sa/Chineserules.
—
4.5 48.6% 45.3%
cf重新启动init—script,在Linux下执行:/etc/init.d/init—script re-
(2)调整SpamAssassin自带规则并补充中文规则后,采用
“10次交叉验证方法”,结果取平均值。阈值设置为9个等级,
3综合过滤系统测评
实验结果如表3所示,与表2比较过滤效果有明显提高。通过
调整阈值使正常邮件误判率下降的情况下,垃圾邮件查全率也
3.1 邮件训练集和测试集的获取
在下降,当阈值为3.5时,达到误判率为0的过滤目的,但是查
本文使用的邮件集的收集主要采用以下两种方式:
全率不是很高,所以要采用贝叶斯过滤器作进一步过滤。
(1)通过收集内蒙古农业大学校园网邮箱教师和学生正常
表3调整补充Spamassassln规则后的过滤结果
邮件1034封,垃圾邮件1203封。
阈值 查全率 误判率
(2)CCERT提供的垃圾邮件和正常邮件集。其中选取
4056封正常邮件和5000封垃圾邮件。
0.5 84.6% 4.1%
由于邮件集中既有简体中文邮件又有英文和繁体中文邮
1 81.1% 3.2%
件,所以经过编码识别后,只保留简体中文邮件10223封,其中
垃圾邮件5702封,正常邮件4521封。然后采用K次交叉验证
1.5 77.9% 2.O%
方法… (K-fold cross validation),将这10223封邮件分为10份,
2 73.5% 1.4%
每份大约1022篇,每次取其中的9份作为训练集,另外1份作
为测试集,如此交叉做10次。
2.5 69.2% O.7%
3.2评价指标
3 66.3% 0.1%
本文借鉴了文本分类和信息检索领域的一些指标。设测试
3.5 63.5% O.0%
集中有Ⅳ封邮件,为了叙述方便,先定义几个变量,见表1所
示,其中,N A+ +C+D。
4 59.8% O.0%
表1变量定义表
4.5 55.4% O.0%
正确为SPAM 正确为非SPAM
(3)贝叶斯过滤器作为本系统的第三层过滤组件,主要对
系统判定为SPAM A 曰
通过SpamAssassin过滤后邮件采用统计的方法进行过滤,它利
系统判定为非SPAM C D
用前面学习过程中生成自己特征词库对邮件作出判断,实验使
定义如下评价指标:
用贝叶斯过滤器SpamBayes,过滤结果见表4和表5,表5与表4
(1)查全率(也叫召回率)(Recal1):Recall=D/(C+D)×
相比较,经过对中文邮件的分词和特征选取、建立特征词库后并
100%,即垃圾邮件检出率。该指标反映了过滤系统发现垃圾邮
作为第三步组件进行过滤,过滤效果有明显提高。
件的能力,召回率越高,“漏网”的垃圾邮件就越少。
表4贝叶斯过滤器直接过滤的结果
(2)误判率(Error):Error=(B+C)/N×100%。
贝叶斯算法
3.3实验环境和结果
查全率 87.2%
1)实验环境
本系统选择Linux Red Hat 9.0作为操作系统,数据库采用
误报率 7.5%
MySQL 4.020和bsddb,其中bsddb数据库主要供贝叶斯过滤器
表5贝叶斯过滤器作为第三步过滤的结果
SpamBayes使用,在安装SpamBayes时由Python自带,编程语言
贝叶斯算法
采用Java。选择性能稳定的Sendmail作为MTA,并且安装了开
查全率 92.7%
源软件Apache和OpenWebmail,以提供WebMail服务。
误报率 3.8%
2)实验方法和结果
(1)使用SpamAssassin自带的缺省英文规则对测试集中的
(下转第226页)
226 计算机应用与软件 2011血
图6为空间查询结果的示例。
_.
,
孵 。。_u 一
、
i
江苏省铜矿
矿产地慧数:1 3
最小值.O019
最大值 9238 000
平均值 96b b27
总和.’2551 e53
单位万吨
6空间查询结果
3.4属性查询模块
全部属性 系统首先将弹出文件选择窗口,用户须选择点
文件,返回文件的工作区号和属性结构类型,然后系统以表格的
形式显示当前窗Vl中全部点的所有可见属性值。
单点属性系统将弹出文件选择窗口,用户须选择点文件,
返回文件的工作区号和属性结构类型,此时系统处在单点查询
状态,用户双击所需查询的矿产地的点图元时,系统则弹出窗体
显示该矿产地的可见属性值,但此处不允许用户进行修改。
修改属性此处用户在弹出的对话框中选择点文件后系统
即处在单点编辑状态,用户双击所需修改的矿产地的点图元时,
系统则弹出窗体显示该矿产地的全部属性值,此处允许用户进
行修改。
3.5设置路径模块
系统弹出对话框,对话框中显示当前MAPGIS客户端的矢
量库和系统库目录供用户修改。
4 结 语
该系统设计合理,具有浏览全局、空间查询、属性查询、统
计、属性编辑、底图选择和叠加、结果图形输出等多项功能,实现
了直观显示查询结果空间位置和属性的目标。界面友好简洁,
不熟悉GIS软件操作的人员也可以方便地使用,在使用过程中
受到专家的好评,它是一个有创新的实用的软件。
参考文献
【1]王强,王永春,滕寿仁.MAPGIS二次开发在国家储量空间数据库
中的运用[J].西部探矿工程,2006,18(12).
[2]Hart J M.Windows System Programming[M].机械工业出版
社,2005.
[3]萨师渲.数据库系统概论[M].北京:高等教育出版社,1991.
[4]中国地质大学(武汉)信息工程学院.MAPGIS地理信息系统开发
手册[M].1998.
[5]赵森,廖望,梁乘铭.Visual C++程序设计教程[M].冶金工业出
版社,2006.
[6]吴信才,郑贵洲,谢忠,等.地理信息系统设计与实现[M].北京:电
子工作出版社,2002.
[7]夏云庆.Visual C++6.0数据库高级编程[M].北京希望电子出版
社。2002.
[8]Chang K T.地理信息系统总论[M].科学出版社,2003.
[9]蔡洪春,张春明,等.基于GIS技术的矿产资源信息系统[J].地质
与资源,2003.
(上接第221页)
3.4实验结果分析
通过以上实验,说明将基于IP的白名单过滤和基于规则的
SpamAssassin过滤,以及基于统计的贝叶斯过滤算法相结合,对
中文垃圾邮件的过滤有很大贡献。虽然与文献[12]通过改进
贝叶斯算法设计的中文垃圾邮件过滤的98%的查全率相比,与
文献[13]基于RBF神经网络学习得到中文垃圾的99%过滤效
果相比,还有一定的差距,但可以通过改进中文分词方法、特征
选取方法、以及在实际应用中随着邮件训练集的不断积累而达
到更好的过滤效果。
4结语
本文首先描述了基于规则匹配的SpamAssassin过滤方法,
和基于统计技术的贝叶斯过滤方法在英文垃圾邮件过滤中的良
好效果,以及在中文垃圾邮件过滤中的不足,SpamAssassin缺省
英文规则的调整、补充中文规则以及自动更新CCERT的中文过
滤规则集等方法克服SpamAssassin在中文垃圾邮件过滤中的不
足,通过在贝叶斯过滤器过滤之前增加独立的中文分词和特征
选取模块,使贝叶斯过滤器适用于中文环境。将该方法在Linux
下完成实验,将英文垃圾邮件过滤中应用效果很好的Spam—
Assassin和贝叶斯过滤器这样的开源软件应用于中文环境,设
计并实现中文垃圾邮件过滤系统,可以很好地完成中文垃圾邮
件的过滤。
参考文献
[1]王斌,潘文锋.基于内容的垃圾邮件过滤技术综述[J].中文信息
学报,2005,19(5):1~10.
[2]SpamAssassin网站[OL].http://www.spamassassin.org.
[3]Graham P.Stopping Spam l OL].2003—08.http://www.paulgra—
ham.com/stopspam.htm.
[4]Deshpande V P,Erbacher R F,Harris C.An evaluation ot Nalve Bayes—
ian anti—spare filtering techniques[c]//Proceedings of the 2007 IEEE
Workshop nil Information Assurance United States Military Academy,
West Point,NY,20—22 June 2007:333—340.
[5]Graham Paul(2002).Better Bayesian Filtering[OL].2003—1 1—13
http://www.paulgraham.corn/spare.htm1.
[6]William Y.The spam—filtering accuracy plateau at 99 9%accuracy and
how to get past it[EB/OL].[s.1.]:MIT Spam Conference,2004
(2004—01—18)[2005—08—20],http://crml14.sourceforge.net/
PlateauPa—per.pdf.
—
[7]中文分词网站[OL].http://ictclas.org.
[8]代六玲,黄河燕,陈肇雄.中文文本分类中特征抽取方法的比较研
究[J].中文信息学报,2004,18(1).
[9]宁慧,吕志龙.中文文本分类中特征选择方法的研究[J].电脑知
识与技术,2007(21).
[10]徐激,龚俭.垃圾邮件的综合过滤方法[J].计算机科学,2005,32
(2).
[1 1]李爱平,廖桂平,吴泉源.诊断型专家系统中的基于粗糙集的归纳推理
方法[J].广西师范大学学报:自然科学版,2003,21(1):34—39
[12]黄志刚.基于贝叶斯的中文垃圾邮件过滤系统的设计与实现[D].
电子科技大学,2007.
[13]宁静.基于数据挖掘的中文垃圾邮件过滤技术研究[D].西南交通
大学,2006.
本文发布于:2023-11-18 17:36:22,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/170030018294275.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:中文垃圾邮件过滤综合方法.doc
本文 PDF 下载地址:中文垃圾邮件过滤综合方法.pdf
留言与评论(共有 0 条评论) |