论文部分内容阅读
摘 要:在信息技术飞速发展的今天,电子邮件作为一种快捷,经济的通信方式得到了普及,但随之而来垃圾邮件问题也愈加严重。邮件中包含的广告、不良信息甚至是病毒,会对用户造成更大的危害。本文通过对当前反垃圾邮件技术的研究,选取关键字过滤、黑白名单过滤与贝叶斯过滤三种过滤法来实现一个反垃圾邮件管理系统,旨在帮助用户过滤垃圾邮件,获取更好的邮件使用体验。
关键词:垃圾邮件识别;特征选择;贝叶斯算法
1 研究背景
目前,email早已是非常基础的网络交流方式,然而目前却有大量的人被垃圾邮件所困扰。目前市面上存在的反垃圾邮件方式主要有四种,分别是关键词过滤技术、黑名单技术、白名单技术以及智能概率过滤技术。他们都有其优点,但各自也在应用空间上存在一些不足。[1]贝叶斯算法在垃圾邮件的分类上效果是很好的,但训练数据集的数量和质量将会非常影响贝叶斯算法的实际效果。[2]
2 研究目的
本文研究的内容为实现一个稳定的反垃圾邮件管理系统,可通过黑名单过滤方式、关键字过滤方式和贝叶斯过滤方式实现对垃圾邮件的过滤。旨在使用多种技术来解决垃圾邮件对用户的困扰,解决垃圾邮件频繁骚扰用户的情况,实现实用的垃圾邮件过滤管理系统。
3 关键技术
3.1 中文分词技术
对英文进行分词,只需按空格进行切片即可将句子拆分为词语,而中文文本因为无明显的拆分规则的特点,需要复杂的算法对文本进行分析处理。本系统使用JAVA平台开源的IKAnalyer工具对文本进行分词。IKAnalyer具有优化的词典存储,更小的内存占用,支持用户词典扩展定义等优点。
3.2 贝叶斯算法
贝叶斯过滤算法是基于贝叶斯概率公式设计实现的一种分类算法,是一种简单有效的分类算法,在算法处理的对象相互之间的关系较小时,该算法可获得非常好的分类效果。而当算法处理的对象相互之间的关系较大时,算法的效果将会变差。使用贝叶斯算法处理垃圾邮件、垃圾短信和垃圾评论可获得非常好的效果,由于贝叶斯算法可以根据用户收到的新邮件以及用户对邮件的操作来进行自我学习,这使贝叶斯算法对垃圾邮件的识别越来越准确。
4 系统实现
4.1 邮件管理模块
在邮件管理中,主要需要实现邮件删除、邮件还原和彻底删除功能。邮件删除功能允许用户删除自己接收的邮件信息,该邮件删除功能主要是将邮件移入垃圾箱,而不是彻底删除邮件信息。邮件还原功能为邮件删除功能的逆向操作,即将用户通过邮件删除功能移入垃圾箱的邮件还原到用户收件箱。彻底删除邮件功能允许用户彻底从数据库和磁盘上删除用户接收的邮件信息和邮件附件,且不可恢复。
4.2 邮件过滤模块
邮件过滤模块需要实现的直接功能主要有设置过滤方式和添加黑名单功能,还需要实现三种过滤方式的过滤算法。设置过滤方式主要设置当前用户所使用的垃圾邮件过滤方式,主要包括黑名单过滤、关键词过滤和贝叶斯过滤。用户在过滤方法设置界面挑选想使用的过滤规则,系统根据用户的选择调用相应的过滤规则进行使用。
4.3 邮件收发模块
邮件收发模块主要实现了收邮件、发邮件、邮件存草稿和浏览邮件功能。支持从外部邮箱收发邮件。
收邮件的过程为:首先用户点击收取邮件后,程序前台想后端发送收件请求,通过IMAP协议连接上该用户所在的邮件服务器,进行认证后从邮件服务器上拉取该用户的未读邮件,并将邮件加入本系统的数据库中。统计未读邮件的数量,显示有多少封未读邮件显示给用户。如果未发现用户有未读邮件,则显示未发现有未读邮件。
发送邮件过程类似于邮件接收过程,在发送时检查发送用户是否在本系统中,若没有,再将邮件发送到对方的邮件服务器上。
邮件存草稿功能为用户在编写邮件过程中,可点击存草稿来将邮件内容保存到草稿箱,以供以后发送和编辑。
浏览邮件功能允许用户查看已经收到的邮件,并在查看页面进行相应的操作,如进行邮件删除、还原、彻底删除等操作。
4.4 贝叶斯过滤总体设计
贝叶斯过滤的过程为首先对训练样本进行分词处理,然后根据分词结果分别将垃圾邮件中词的词频和正常邮件中词的词频进行存储。然后在收取一份新邮件时,先进行分词,然后根据数据库中的多个词的词频在垃圾邮件分类中和正常邮件中的概率进行联合分析,计算多个词影响下该邮件时垃圾邮件的概率,如果大于设置的阀值,则认为是垃圾邮件,需要有丰富的垃圾邮件和正常邮件数据集作为训练样本。[3]
实现贝叶斯分类器的一般步骤为,首先对有标记的样本数据进行分类,分为50%的训练样本,25%的验证样本以及25%的测试样本,所有的分类均是从数据集中随机抽取。接着取训练样本对贝叶斯分离器进行训练,得到训练后各个对象的概率,最后使用训练的结果对验证样本进行分类,验证正确率和误判率,最后使用测试样本对算法进行测试。[4]
參考文献:
[1]金彩琴.对垃圾邮件过滤技术的问题研究[J].计算机技术与发展,2011,21(9):225-228.
[2]霍军昌.垃圾邮件过滤中信息增益的改进研究[J].计算机科学,2014,41(06):214-224.
[3]MA X L.Research of spam-filtering based on optimized native Bayesian algorithm[J].Alication Research of Computer,2012,29(3):1091-1094.
[4]WANG S C,DU R J,LIU Y.The learning and optimization of full Bayes classifiers with continuous attributes[J].Chinese Journal of Computer,2012,35(10):2129-2138.
关键词:垃圾邮件识别;特征选择;贝叶斯算法
1 研究背景
目前,email早已是非常基础的网络交流方式,然而目前却有大量的人被垃圾邮件所困扰。目前市面上存在的反垃圾邮件方式主要有四种,分别是关键词过滤技术、黑名单技术、白名单技术以及智能概率过滤技术。他们都有其优点,但各自也在应用空间上存在一些不足。[1]贝叶斯算法在垃圾邮件的分类上效果是很好的,但训练数据集的数量和质量将会非常影响贝叶斯算法的实际效果。[2]
2 研究目的
本文研究的内容为实现一个稳定的反垃圾邮件管理系统,可通过黑名单过滤方式、关键字过滤方式和贝叶斯过滤方式实现对垃圾邮件的过滤。旨在使用多种技术来解决垃圾邮件对用户的困扰,解决垃圾邮件频繁骚扰用户的情况,实现实用的垃圾邮件过滤管理系统。
3 关键技术
3.1 中文分词技术
对英文进行分词,只需按空格进行切片即可将句子拆分为词语,而中文文本因为无明显的拆分规则的特点,需要复杂的算法对文本进行分析处理。本系统使用JAVA平台开源的IKAnalyer工具对文本进行分词。IKAnalyer具有优化的词典存储,更小的内存占用,支持用户词典扩展定义等优点。
3.2 贝叶斯算法
贝叶斯过滤算法是基于贝叶斯概率公式设计实现的一种分类算法,是一种简单有效的分类算法,在算法处理的对象相互之间的关系较小时,该算法可获得非常好的分类效果。而当算法处理的对象相互之间的关系较大时,算法的效果将会变差。使用贝叶斯算法处理垃圾邮件、垃圾短信和垃圾评论可获得非常好的效果,由于贝叶斯算法可以根据用户收到的新邮件以及用户对邮件的操作来进行自我学习,这使贝叶斯算法对垃圾邮件的识别越来越准确。
4 系统实现
4.1 邮件管理模块
在邮件管理中,主要需要实现邮件删除、邮件还原和彻底删除功能。邮件删除功能允许用户删除自己接收的邮件信息,该邮件删除功能主要是将邮件移入垃圾箱,而不是彻底删除邮件信息。邮件还原功能为邮件删除功能的逆向操作,即将用户通过邮件删除功能移入垃圾箱的邮件还原到用户收件箱。彻底删除邮件功能允许用户彻底从数据库和磁盘上删除用户接收的邮件信息和邮件附件,且不可恢复。
4.2 邮件过滤模块
邮件过滤模块需要实现的直接功能主要有设置过滤方式和添加黑名单功能,还需要实现三种过滤方式的过滤算法。设置过滤方式主要设置当前用户所使用的垃圾邮件过滤方式,主要包括黑名单过滤、关键词过滤和贝叶斯过滤。用户在过滤方法设置界面挑选想使用的过滤规则,系统根据用户的选择调用相应的过滤规则进行使用。
4.3 邮件收发模块
邮件收发模块主要实现了收邮件、发邮件、邮件存草稿和浏览邮件功能。支持从外部邮箱收发邮件。
收邮件的过程为:首先用户点击收取邮件后,程序前台想后端发送收件请求,通过IMAP协议连接上该用户所在的邮件服务器,进行认证后从邮件服务器上拉取该用户的未读邮件,并将邮件加入本系统的数据库中。统计未读邮件的数量,显示有多少封未读邮件显示给用户。如果未发现用户有未读邮件,则显示未发现有未读邮件。
发送邮件过程类似于邮件接收过程,在发送时检查发送用户是否在本系统中,若没有,再将邮件发送到对方的邮件服务器上。
邮件存草稿功能为用户在编写邮件过程中,可点击存草稿来将邮件内容保存到草稿箱,以供以后发送和编辑。
浏览邮件功能允许用户查看已经收到的邮件,并在查看页面进行相应的操作,如进行邮件删除、还原、彻底删除等操作。
4.4 贝叶斯过滤总体设计
贝叶斯过滤的过程为首先对训练样本进行分词处理,然后根据分词结果分别将垃圾邮件中词的词频和正常邮件中词的词频进行存储。然后在收取一份新邮件时,先进行分词,然后根据数据库中的多个词的词频在垃圾邮件分类中和正常邮件中的概率进行联合分析,计算多个词影响下该邮件时垃圾邮件的概率,如果大于设置的阀值,则认为是垃圾邮件,需要有丰富的垃圾邮件和正常邮件数据集作为训练样本。[3]
实现贝叶斯分类器的一般步骤为,首先对有标记的样本数据进行分类,分为50%的训练样本,25%的验证样本以及25%的测试样本,所有的分类均是从数据集中随机抽取。接着取训练样本对贝叶斯分离器进行训练,得到训练后各个对象的概率,最后使用训练的结果对验证样本进行分类,验证正确率和误判率,最后使用测试样本对算法进行测试。[4]
參考文献:
[1]金彩琴.对垃圾邮件过滤技术的问题研究[J].计算机技术与发展,2011,21(9):225-228.
[2]霍军昌.垃圾邮件过滤中信息增益的改进研究[J].计算机科学,2014,41(06):214-224.
[3]MA X L.Research of spam-filtering based on optimized native Bayesian algorithm[J].Alication Research of Computer,2012,29(3):1091-1094.
[4]WANG S C,DU R J,LIU Y.The learning and optimization of full Bayes classifiers with continuous attributes[J].Chinese Journal of Computer,2012,35(10):2129-2138.