过滤分词技术

分词技术  时间:2021-02-20  阅读:()
收稿日期:2010-12-06基金项目:安徽省教育厅自然科学研究项目(KJ2007B248)资助.
作者简介:汪洁,女,助理工程师.
*通讯作者:朱军,男,博士研究生,讲师.
Email:zhujun@ahau.
edu.
cn安徽农业大学学报,2011,38(2):309-314JournalofAnhuiAgriculturalUniversity[DOI]CNKI:34-1162/S.
20110303.
0951.
012基于Linux的中文垃圾邮件过滤系统设计与实现汪洁1,朱军2*(1.
安徽农业大学图书馆,合肥230036;2.
安徽农业大学信息与计算机学院,合肥230036)摘要:大量的商业、色情和反动垃圾邮件和邮件病毒的泛滥给互联网用户带来很多烦恼和侵害,也给社会带来了极大的负面影响,邮件系统的安全问题引起业界的重点关注.
作者提出了一种基于规则方法和基于统计方法相结合的中文垃圾邮件过滤方案,通过机器学习解决了邮件训练集和中文过滤规则的自动更新问题,并利用Linux下的多种开源软件,设计与实现了一款基于Linux的中文垃圾邮件过滤系统.
关键词:中文;垃圾邮件;过滤;Linux;设计与实现中图分类号:TP393.
098文献标识码:A文章编号:1672352X(2011)02030906DesignandimplementationofChinese-spamfilteringsystembasedonLinuxWANGJie1,ZHUJun2(1.
LibraryofAnhuiAgriculturalUniversity,Hefei230036;2.
SchoolofInformationandComputer,AnhuiAgriculturalUniversity,Hefei230036)Abstract:Thefloodingofallkindsofspamhasbecomeaheadacheproblemforhumanandsociety.
Mailsystemsecurityattractswideattentionsandbecomesaresearchfocusinindustry.
Inthispaper,weputforwardaprojectofChinese-spamfilteringbycombiningmethodsonthebasisoftheruleandthestatistics,andsolvedtheautoupdatetechnologyinmailtrainingsetandChinesecharactersfilteringrulebymachinelearning.
AkindofChinese-spamfilteringsystemwasdesignedtorealizeitfunctionwithsomekindsofOpenSourceSoftwarebasedonLinux.
Keywords:Chinese;spam;filtering;Linux;designandimplementation电子邮件系统是互联网的一个成功典范,随着互联网的进一步发展,电子邮件已成为Internet用户最常用的通信方式之一,其作用也越来越重要.
然而,由于早期在设计邮件系统是建立在完全开放和信任基础上,这就给广告商和恶意的黑客钻了空子,近年来大量垃圾邮件的泛滥给互联网用户带来很多的烦恼和侵害,它不仅增加了用户对邮件的处理时间,而且被利用来传播计算机病毒和大量色情、反动的信息,给社会带来了极大的负面影响.
垃圾邮件就像瘟疫一样蔓延,严重污染了我们的网络环境,而且占用了大量的网络传输、存储和运算资源.
目前市场有许多反垃圾邮件产品,如:亿邮反垃圾邮件网关、趋势反垃圾邮件网关、美讯智SMG、梭子鱼、EQManager等.
这些软件对遏制垃圾邮件的泛滥起到了一定的作用.
但是它们过分依赖黑白名单和手工制订规则(如关键词过滤),尽管也采用了贝叶斯过滤技术,但由于垃圾邮件千变万化,特别是中文邮件和英文邮件在信息处理上有很大差别,而且这些过滤软件对中文垃圾邮件过滤效果尚不理想,普遍存在误判和漏判现象.
由于商业软件源代码的隐蔽性,无法对其进行分析改进或二次开发.
与这些商业软件相比,基于Linux的开源垃圾邮件过滤软件由于其源代码开放,且与各种邮件系统的接口简单易用,给我们提供了一个低成本定制适合自身邮件过滤系统的机会.
作者采用基于规则方法和基于统计方法相结合的的思想,在保障邮件服务器系统安全的前提下,利用LINUX下的多种310安徽农业大学学报2011年开源软件,结合目前比较成熟的反垃圾邮件技术,设计与实现一款基于服务器端的中文垃圾邮件过滤系统.
1系统总体结构设计1.
1过滤模式对于Internet电子邮件的传输过程而言,可能经过3个代理程序的操作:邮件用户代理(MUA)、邮件传输代理(MTA)和邮件投递代理(MDA).
那么对邮件的过滤可以发生在MTA上、MDA上,也可以是MUA上.
目前主要有2种过滤模式:(1)客户端过滤.
过滤发生在MUA客户端,由MUA定义过滤条件,当用户(MUA)从远程邮件服务器上获取邮件时进行过滤.
(2)服务器端过滤.
过滤发生在邮件服务器上,由MTA或者MDA定义过滤条件,或者使用第3方程序,实现对邮件的过滤.
这两种模式相比而言,服务器端过滤的模式有很大的优越性.
1.
2系统总体结构系统需要提供的服务有:(1)SMTP服务:作为一个邮件系统,SMTP服务是必不可少的,因为系统需要发送和接收邮件,所以要内置MTA程序.
(2)POP3服务:用户接收邮件时,MUA程序使用POP3协议访问并读取用户邮箱中的邮件.
(3)邮件过滤服务:这是系统最关键的一项服务,实现对用户邮件的扫描,分析和过滤,并对垃圾邮件进行相关处理.
(4)邮件病毒查杀服务:系统的辅助服务功能,实现对邮件病毒的查杀.
系统总体框架如图1所示:图1系统总体结构Figure1Thegeneralstructureofthesystem2邮件过滤模块设计2.
1过滤模块设计在实际应用中,仅凭借某一项或几项技术往往很难达到阻止绝大部分垃圾邮件的目标.
运用基于统计方法的贝叶斯概率模型,与基于规则方法的过滤技术相结合,提出一种基于规则方法和基于统计方法相结合的中文垃圾邮件过滤方案,并将自然语言处理中的中文分词技术应用到中文垃圾邮件过滤中,通过一次机器学习,同时得到贝叶斯过滤器的特征词库和SpamAssassin中文规则库,使用SpamAssassin中文规则库对垃圾邮件实施第1层过滤,第2层过滤采用贝叶斯过滤,从而实现了对中文垃圾邮件的双层过滤,不仅提高垃圾邮件过滤效果,并且解决了邮件训练集和SpamAssassin中文规则的自动更新问题.
其中贝叶斯过滤器采用bogofilter.
为了达到更好的过滤垃圾效果,本系统结合黑白名单和反向验证查询技术,从而实现多层过滤.
过滤模块结构如图2所示.
图2邮件过滤模块Figure2Themoduleofmailfiltering2.
2邮件交换记录的反向验证查询算法在实际应用中,如果我们能在对方邮件服务器发送邮件数据前检测出垃圾邮件,则可以节省大量的网络带宽和服务器资源.
本系统的邮件过滤模块在对方发送DATA指令前的SMTP连接阶段、MAILFROM指令和RCPTTO指令中对会话数据进行检查,通过黑名单技术拒绝和被列入黑名单IP建立连接,主要采用了中国反垃圾邮件联盟提供的实时黑名单CBL和实时白名单CML.
另外,本系统还设38卷2期汪洁等:基于Linux的中文垃圾邮件过滤系统设计与实现311计了一种对发件人邮件地址的邮件交换记录的反向验证查询算法.
算法如下:1、在SMTP建立连接时,截取对方IP地址.
2、截取MAILFROM指令后的邮件地址,分为两部分:username和domainname.
3、反向验证查询:使用nslookup查询,查看domainname是否存在,如存在则获取其IP,如不存在则是伪造地址,中断连接.
(1)运行nslookup-type=mxdomainname开始反向查询对方的DNS邮件记录(2)如果查询失败,返回"Non-existentdo-main",则说明该domainname不存在,邮件地址是伪造的,中断连接.
(3)如存在则获取其IP.
如:mail.
hf.
ah.
cnMXpreference=10,mailex-changer=mail.
hf.
ah.
cnmail.
hf.
ah.
cninternetaddress=202.
102.
192.
14(4)将取得的IP与SMTP连接时截取的IP地址进行匹配.
如果匹配成功则提示:250,senderok.
继续会话过程.
如果匹配失败则中断连接.
提示:554Con-nectionrefused(mx).
MAILFROM[username@do-mainname]mismatchesclientIP[对方IP地址],则中断连接.
3系统实现本系统选择RedHatEnterprise5作为操作系统,数据库采用MySQL5.
1和BerkeleyDB,其中BerkeleyDB数据库主要是供贝叶斯过滤器bogofilter使用.
另外,由于系统的相关组件需要perl的支持,所以在安装RedHat时选择了perl模块.
UNIX环境下的开放源码MTA程序很多,邮件管理员需要根据特定的环境来选择合适的MTA程序.
目前互联网上使用最广泛的3种MTA是:Sendmail[1]、Qmail、Postfix.
本系统选择性能稳定的Sendmail作为MTA,并且安装了开源软件Apache和OpenWebmail,以提供WebMail服务.
3.
1安装SpamAssassin从http://spamassassin.
apache.
org网站上下载SpamAssassin安装源代码后即可安装,具体步骤如下(需root权限):#tarxzfMail-SpamAssassin-3.
3.
1.
tar.
gz#cdMail-SpamAssassin-3.
3.
1.
tar.
gz#perlMakefile.
PL#make#makeinstall3.
2安装MIMEDefangMIMEDefang是专门为sendmail设计的一个邮件过滤程序,它对每封通过邮件服务器的邮件进行检查,修改和过滤.
MIMEDefang不仅可以提供sendmail与SA的接口,而且提供了与病毒扫描软件的接口.
从www.
mimedefang.
org网站上下载最新的mimedefang安装源代码,安装步骤如下(root用户):#tarxzfmimedefang-2.
70.
tar.
gz#cdmimedefang-2.
70#.
/configure#make#makeinstall创建一个用户名字为defang,mimedefang运行的时候使用该用户的权限.
#adduserdefang在mimedefang源代码中有启动mimedefang的脚本:examples/init-script.
把这个脚本拷贝到/etc/init.
d目录下.
启动mimedefang.
#/etc/init.
d/init-scriptstart3.
3将SpamAssassin和Sendmail集成[2]在Sendmail邮件服务器集成SpamAssassin的框架如图3所示,其中SMTP、Milter和MUA是Sendmail的原始模块.
MIMEDefang是sendmail和SpamAssassin之间的接口.
每次收到一封邮件时,milter模块就调用MIMEDefang模块,并将返回的检测结果送到MUA.
图3SpamAssassin和Sendmail集成框架Figure3IntegratedframeworkofSpamAssassinandSendmail在sendmail.
cf文件中要添加2行,第1行在"#Inputmailfilters"行下面添加"OInputMailFilters=mimedefang",另外在MAILFILTERDEFINITIONS下面添加1行"Xmimedefang,S=unix:/var/spool/MIMEDefang/mimedefang.
sock,F=,T=S:60s;R:60s;E:60s".
312安徽农业大学学报2011年集成后运行测试结果如下:[root@mailfirewallMail-SpamAssassin-3.
3.
1]#spamassassin--test-modeTo:RecipientSubject:Testspammail(GTUBE)X-Spam-Flag:YESX-Spam-Checker-Version:SpamAssassin3.
3.
1(2010-3-16)onmailfirewall.
ahau.
edu.
cnX-Spam-Level:X-Spam-Status:Yes,score=997.
2required=5.
0tests=ALL_TRUSTED,GTUBEautolearn=hamversion=3.
3.
1MIME-Version:1.
03.
4基于规则的评分过滤MIMEDefang首先检测SpamAssassin是否运行,接着就调用SpamAssassin给邮件评分.
在调用SpamAssassin前,先判断邮件的大小,一般认为大于300KB的邮件是垃圾邮件的可能性较小,而且SpamAssassin过滤大邮件会影响速度.
如果评分结果大于设定的阈值,则在日志中进行记录,并在邮件的主题中加入垃圾邮件标记,如"*****SPAM*****,以方便MUA进行过滤.
低于阈值的邮件被送入贝叶斯过滤器.
过滤算法如下:Subfilter{if($Features{"SpamAssassin"}){#检测SpamAssassin是否安装运行if(-s".
/INPUTMSG"=$req){md_graphdefang_log('spam',$hits,$RelayAddr);action_change_header("Subject","*****SPAM*****$Subject");#如果计算结果大于阈值,则在该邮件的主题中增加"*****SPAM*****标记action_add_part($entity,"text/plain","-suggest","$report\n","SpamAssassinRe-port.
txt","inline");}else{action_delete_header("X-Spam-Score");#删除信头中的X-Spam-Score标记}}}}3.
5基于统计的贝叶斯过滤本系统利用bogofilter作为贝叶斯过滤器,其数据库采用BerkeleyDB,并结合中文分词技术实现对中文垃圾邮件的过滤.
图4用户邮箱Figure4User′smailbox当邮件到来时,它利用中文分词技术对邮件关键词进行扫描,根据关键词在垃圾邮件中出现的概率与中立值0.
5的距离,提取15个关键词,然后计算该邮件的垃圾邮件概率.
如果计算结果超过约定38卷2期汪洁等:基于Linux的中文垃圾邮件过滤系统设计与实现313的阈值,则判定为垃圾邮件,直接送到用户的垃圾邮件箱,如图4所示.
为了防范邮件病毒和黑客攻击,本系统还安装了基于Linux/Unix平台的开源防病毒软件ClamAv,另外还配置了iptables包过滤防火墙.
由于篇幅关系不再赘述.
4基于Linux中文垃圾邮件过滤系统测评4.
1评价指标对中文垃圾邮件过滤系统测评需要定义一些指标,本文借鉴了文本分类和信息检索领域的一些指标[3].
设测试集中有N封邮件,为了叙述方便,先定义几个变量,见表1,其中,N=A+B+C+D.
表1变量定义Table1Thedefinitionofvariables属性Property正确为SPAM正确为非SPAM系统判定为SPAMAB系统判定为非SPAMCD定义如下评价指标:(1)召回率(Recall):Recall=%100*+CAA,即垃圾邮件检出率.
该指标反映了过滤系统发现垃圾邮件的能力,召回率越高,"漏网"的垃圾邮件就越少.
(2)正确率(Precision):Precision=%100*+BAA,即垃圾邮件检对率.
正确率反应了过滤系统"找对"垃圾邮件的能力,正确率越大,将非垃圾邮件误判为垃圾邮件的数量越少.
(3)精确率(Accuracy):Accuracy=%100*+NDA,即对所有邮件的判对率.
(4)误判率(Error):Error=%100*+NCB=1-Accuracy4.
2试验方法和结果使用SpamAssassin自带的缺省英文规则对测试集中的中文邮件进行测试,将阈值设置为10个等级(0.
5-5.
0),试验结果见表2.
仅使用SpamAssassin中文规则对测试集中的中文邮件进行测试,将阈值设置为10个等级(0.
5-5.
0),试验结果见表3.
结合前面的试验结果,取SpamAssassin的阈值为4.
0,保证第1层过滤误判率为0,将贝叶斯过滤器作为本系统的第2层过滤组件,主要对通过SpamAssassin过滤后邮件采用统计的方法进行过滤,根据最小风险的贝叶斯决策[4],第2层过滤的贝叶斯过滤器的阈值分别取0.
5、0.
9和0.
99,试验结果见表4.
表2使用SpamAssassin缺省英文规则过滤的试验结果Table2TestresultsbyusingSpamAssassinwithdefaultEnglishfilteringrules阈值ThresholdRecallError0.
565.
2%54.
4%162.
7%53.
2%1.
561.
6%50.
7%2.
058.
3%48.
4%2.
557.
5%47.
2%353.
8%46.
4%3.
552.
6%46.
1%4.
050.
4%45.
8%4.
548.
6%45.
5%5.
047.
1%45.
1%表3使用SpamAssassin中文规则过滤的试验结果Table3TestresultsbyusingSpamAssassinwithChinesefilteringrules阈值ThresholdRecallError0.
585.
4%4.
4%181.
8%3.
5%1.
578.
4%2.
2%2.
072.
7%1.
7%2.
568.
3%0.
8%365.
4%0.
5%3.
561.
6%0.
1%4.
058.
2%0.
0%4.
553.
6%0.
0%5.
050.
8%0.
0%表4中文垃圾邮件过滤系统试验结果Table4TestresultsbyusingChinese-spamfilteringsystem阈值RecallError0.
590.
3%3.
6%0.
987.
6%2.
2%0.
9985.
2%1.
0%4.
3试验结果分析从表2的试验结果可以看出,使用SpamAssassin自带的缺省英文规则过滤中文垃圾邮件,效果很差,而且由于一些英文规则对中文过于敏感,导致误判率很高.
使用经过统计生成的中文规则后,过滤效果有314安徽农业大学学报2011年明显提高.
随着阈值增高,召回率降低,但是误判率也降低.
当阈值设定为4.
0时,在误判率为0的情况下可以检测出58.
2%的垃圾邮件.
阈值高了,虽然漏掉了一些垃圾邮件,但是判断更加准确了.
同时从表3的试验结果可见,如果仅仅使用SpamAssassin中文规则这一种过滤方法,尚不能很好地解决召回率和误判率的均衡关系.
同时这也表明基于规则的过滤方法灵活性不是很强.
但是将采用基于规则方法和基于统计方法相结合后,由于SpamAssassin在误判率为0的前提下过滤了58.
3%的垃圾邮件,剩下41.
7%的垃圾邮件由贝叶斯过滤器过滤,在阈值分别取0.
5、0.
9和0.
99的情况下,又分别过滤了剩下41.
7%的垃圾邮件的76.
74%、70.
26%和64.
51%,召回率大幅提高,说明结合了中文分词的贝叶斯过滤器在对中文垃圾邮件过滤中作出了一定的贡献,但是和贝叶斯过滤器可以过滤95%以上的英文垃圾邮件中的显著成绩相比,还有一些差距.
参考文献:[1]梁如军.
RedHatLinux9网络服务[M].
北京:机械工业出版社,2005.
[2]PaulAV.
Sendmail理论与实践[M].
谢君英,译.
北京:电子工业出版社,2003.
[3]曾春,邢春晓,周立柱.
基于内容过滤的个性化搜索算法[J].
软件学报,2003,14(5):999-1004.
[4]边肇祺,张学工.
模式识别[M].
2版.
北京:清华大学出版社,1999:12.

Linode($5/月),新用户注册送100美元,11个数据中心云服务器

关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...

无忧云-河南洛阳BGP,CEPH集群分布式存储,数据安全可靠,活动期间月付大优惠!

 无忧云怎么样?无忧云服务器好不好?无忧云值不值得购买?无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点...

EtherNetservers年付仅10美元,美国洛杉矶VPS/1核512M内存10GB硬盘1Gpbs端口月流量500GB/2个IP

EtherNetservers是一家成立于2013年的英国主机商,提供基于OpenVZ和KVM架构的VPS,数据中心包括美国洛杉矶、新泽西和杰克逊维尔,商家支持使用PayPal、支付宝等付款方式,提供 60 天退款保证,这在IDC行业来说很少见,也可见商家对自家产品很有信心。有需要便宜VPS、多IP VPS的朋友可以关注一下。优惠码SUMMER-VPS-15 (终身 15% 的折扣)SUMMER-...

分词技术为你推荐
伪装微信地理位置伪装微信地理位置 朋友圈显示地理位置怎么改缓冲区溢出教程溢出攻击法使用什么样的原理金山杀毒怎么样金山杀毒怎么样?不兼容安卓手机软件不兼容怎么办?苹果5怎么越狱苹果5怎么越狱硬盘人电脑对人有多大辐射?xv播放器下载除了迅雷看看播放器还有什么播放器支持xv格式的视频?xv播放器下载xv播放器怎么下载?xp系统停止服务XP系统停止服务后怎么办?免费qq空间装扮有办法免费装扮QQ空间吗??
便宜虚拟主机 qq云存储 yardvps 便宜建站 mobaxterm 好看的桌面背景大图 圣诞促销 台湾google shuang12 国外的代理服务器 主机返佣 测试网速命令 万网服务器 phpinfo sonya winserver2008 ncp是什么 cdn加速技术 asp介绍 server2008 更多