收藏 分享(赏)

论文基于朴素贝叶斯开发.doc

上传人:buyk185 文档编号:6066411 上传时间:2019-03-26 格式:DOC 页数:26 大小:481KB
下载 相关 举报
论文基于朴素贝叶斯开发.doc_第1页
第1页 / 共26页
论文基于朴素贝叶斯开发.doc_第2页
第2页 / 共26页
论文基于朴素贝叶斯开发.doc_第3页
第3页 / 共26页
论文基于朴素贝叶斯开发.doc_第4页
第4页 / 共26页
论文基于朴素贝叶斯开发.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、基于 ASP 的反垃圾邮件管理系统的设计论文作者姓名: 申请学位专业: 申请学位类别: 指 导 教 师 姓 名 ( 职 称 ):论文提交日期: 基于 ASP 的反垃圾邮件管理系统的设计摘 要随着 Internet 的迅速普及,电子邮件以其快捷、方便、低成本的特点逐渐成为人们进行信息交流的主要媒介之一,但是随之而来的垃圾邮件也越来越泛滥。垃圾邮件占用了有限的存储、计算和网络资源,耗费了用户大量的处理时间,影响和干扰了用户的正常工作、生活和学习。如何有效地治理垃圾邮件是全世界共同面临的一道难题,也是互连网上目前有待解决的问题。本文首先介绍了电子邮件对人们日常生活的重要性,然后概要介绍了反垃圾邮件技

2、术的发展历史。研究了三种过滤垃圾邮件的方法,分别是黑白名单技术、主题关键字过滤技术和贝叶斯策略,对这三种技术的设计方法做了说明,重点介绍了贝叶斯过滤技术的设计原理和实现步骤。最后总结了这几种过滤技术的不足之处和设计中遇到的难点问题。关键词:电子邮件;垃圾邮件;黑白名单;主题关键字;贝叶斯Design of anti-spam mail management system based on ASPAbstractWith the rapid development of internet, the technology of email is used widely in peoples dai

3、ly life. However, the occurrence of more and more spam emails is annoying to user, which causes the great waste of users time, money as well as network bandwidth. And whats worst, it can be harmful to users. It affects and interferes with the users normal work, life and studying. How to deal with sp

4、am emails effectively, that is a common difficult problem for all over the world. In the current Internet it is a problem for waiting for us to resolve. At first this paper introduces the e-mails importance for peoples daily life. Then it introduces simply development history of the anti-spam techno

5、logy and researches three of spam filtering methods, they are black and white list technology, subject keyword filtering technology and bayesian strategy. Then the designing methods of three kinds of technology are introduced. Focusing on the bayesian filtering technology, this paper introduces its

6、designing principle and implementations steps. Finally I sums up some shortcomings of several kinds of filtering technology and some difficult problems in designing.Key words: email; spam email; black and white list; subject keyword; bayesian目 录1 引言 .111 课题背景 .112 开发概述 .11.2.1 电子邮件概述 11.2.2 反垃圾概述 22

7、 电子邮件的工作原理 .221 电子邮件的结构 .222 电子邮件的传输 .33 需求分析 .331 数据库需求分析 .332 开发环境需求 .54 系统功能和技术描述 .641 系统功能模块设计 .642 基本功能 .643 黑白名单技术 .744 关键字过滤技术 .745 贝叶斯过滤技术 .84.5.1 贝叶斯过滤算法的基本步骤 84.5.2 贝叶斯过滤算法举例 94.5.3 贝叶斯过滤模块划分 .105 系统工作流程和详细设计 1151 系统工作流程图 1152 邮件统计设计 1153 收件夹设计 1254 反垃圾功能设计 135.4.1 黑白名单过滤 .135.4.2 主题关键字过滤

8、.145.4.3 贝叶斯过滤 .155.4.4 过滤参数设置 .176 测试与分析 1761 系统测试 1762 设计中的难点问题 1863 三种过滤技术分析 1964 通用模块分析 19结 论 20参考文献 20致 谢 21声 明 22第 1 页 共 22 页1 引言11 课题背景随着 Internet 的极度膨胀,给人们带来了大量的信息,电子邮件使人们感受到快捷和方便,更已成为一种最快速经济的通信手段,但是互联网又是一个无政府世界,有些人利用电子邮件肆意散发邮件广告,造成很多人的邮箱垃圾成堆,有些人利用电子邮箱制造邮件炸弹,使电子邮件服务器瘫痪;更有甚者利用电子邮件来传播病毒。如此种种给许

9、多用户带来了无尽的困扰。因此对垃圾邮件进行有效的过滤,已经成为了一个有重要意义的现实问题。目前,我国对垃圾邮件过滤研究中语义分析和文本分类方面的技术还比较落后,导致国内很多大型的电子邮件系统无法及时有效地发现和拒绝垃圾邮件,从而给用户造成巨大的伤害。更为严重的是国外很多垃圾邮件制造者利用这一缺陷,通过中国的邮件服务器发送垃圾邮件,致使很多国外 ISP 服务提供商封锁了中国邮件服务器的 IP 地址,给中国用户造成很多精神和经济损失。随着中国经济与世界经济的关系日益紧密,中外交流活动的逐渐增多,对外的电子邮件数量也急剧增加,如果中国电子邮件由于垃圾邮件问题遭到全面封杀,必将会对国内企业和组织造成巨

10、大影响,严重组碍中国经济的发展。因此,对新的,可靠的垃圾邮件过滤技术的研究已经成为一项紧迫任务。12 开发概述1.2.1 电子邮件概述电子邮件表示通过电子通讯系统进行信件的书写、发送和接收。今天使用的最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。通过电子邮件系统,您可以用非常低廉的价格,以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联络。同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。这是任何传统的方式也无法相比的。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地

11、应用,它使人们的交流方式得到了极大的改变。每一个申请互联网帐号的用户都会有一个电子邮件地址。它是一个很类似于用户家门牌号码的邮箱地址,或者更准确地说,相当于你在邮局租用了一个信箱。因为传统的信件是由邮递员送到你的家门口,而电子邮件则需要自己去查看信箱,只是您不用跨出家门一步。电子邮件来源于专有电子邮件系统。早在互联网流行以前很久,电子邮件就已经存在了,是在主机-多终端的主从式体系中从一台计算机终端向另一计算机终端传送文本信息的相对简单的方法而发展起来的。第 2 页 共 22 页经历了漫长的过程之后,它现在已经演变成为一个更加复杂并丰富得多的系统,可以传送声音、图片、图像、文档等多媒体信息,以至

12、于如数据库或帐目报告等更加专业化的文件都可以以电子邮件附件的形式在网上分发。1.2.2 反垃圾概述“垃圾邮件”多指未经请求而发送的电子邮件,也可以是发送给与信件主题不相关的新闻组或者列表服务器的同一信件的重复邮件。国内外的技术专家和反垃圾邮件组织对“垃圾邮件”的定义如出一辙:批量发送的未征得收信人同意的电子邮件。 这些电子邮件虽然每封的信息量不一定很大,但是邮件内容不是大多数用户需要甚至是令大多数用户讨厌的。铺天盖地的宣传邮件不仅侵犯了用户的私人空间,而且干扰了大多数用户正常使用电子邮件功能,同时给用户带来了上网时间和上网资金上的浪费,因此被称为“垃圾邮件” 。国际互联网上的常见名词 SPAM

13、、 UCE(Unsolicited Commercial Email 不请自来的商业电子邮件)和 UBE(Unsolicited Bulk Email 不请自来的批量电子邮件)与通常所称的垃圾邮件是一样的。反垃圾邮件技术的研究是一项长期而艰巨的任务,经历了以下几个时代:表 1-1 反垃圾邮件的历史第一代 第二代 第三代 第四代基础 MTA 控制 实时黑名单 贝叶斯过滤 多技术整和分层过滤白名单和黑名单 电子签名 人工智能简单的关键字搜索 机器语言学习信件头测试标题过滤简单的 DNS 测试当前的反垃圾邮件技术可以分为 4 大类:过滤器(Filter) 、反向查询(Reverse lookup)、

14、挑战 (challenges)和密码术(cryptography),这些解决办法都可以减少垃圾邮件问题,但是都有它们的局限性。其中过滤又包括关键词过滤、黑白名单、HASH 技术、基于规则的过滤、智能和概率系统、贝叶斯算法,验证查询技术分为反向查询技术、DKIM 技术、SenderID 技术、FairUCE 技术,挑战分为挑战-响应、计算性挑战。2 电子邮件的工作原理21 电子邮件的结构电子邮件可视为半结构化的文本文件。RFC822 明确的把邮件划分为两部分:第 1 部分称为邮件头,邮件头中包含若干数据字段,其作用是标识邮件的重要第 3 页 共 22 页部分,例如发送者、接收者、主题和注释。邮件

15、头字段应出现在邮件体之前,两部分间使用一个空行分隔。第 2 部分就是邮件体(body) ,邮件体(body)是发送用户发给接收用户邮件的内容。22 电子邮件的传输电子邮件与普通信件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址) ,发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中,如下图所示:用户 邮件服务器SMTP邮件服务器 用户图 2-1 高层 SMTP 接口模型电子邮件系统主要由以下 3 部分组成:MUA (Mail UserAgent),邮件用户代理,是帮助用户读和写邮件;MTA (MailTransport Agent),邮件传输代理,负责将邮件从一

16、个服务器传到另一个服务器;MDA(MailDeliveryAgent),邮件投递代理,将邮件分发到用户的邮箱里。整个邮件传输过程如下图所示:MUA MTAMDA发件方 MTAMDA 邮箱接收方SMTP图 2-2 邮件传输中的代理3 需求分析31 数据库需求分析该系统采用 Microsoft SQL Server 2000 数据库,数据库的名称 mail。对系统功能的分析绘制了系统总体 E-R 图,如图 3-1 所示:第 4 页 共 22 页写邮件邮件发送接收属于收件夹垃圾邮件 正常邮件显示垃圾邮件过滤n图 3-1 系统 E-R 图为了消除数据的冗于在表中采取了主关键字。根据数据库功能模块的不同

17、,所做需求分析的不同建立了以下表,它们分别是:1. 用于保存邮件夹内邮件信息的数据表,具体设计如表 3-1 所示:表 3-1 mail 数据表字段名称 字段说明 字段类型 主关键字mailitem 邮件编号 int *mailfrom 发件人地址 varcharmailto 收件人地址 varcharmaildate 发件日期 datetimemailsubject 邮件主题 varcharmailbody 邮件内容 varchar2. 用于保存所添加的黑白名单邮件地址的数据表,具体设计如表所示:表 3-2 black_mailadd 数据表字段名称 字段说明 字段类型 主关键字ID 编号 i

18、nt *Mailadd 黑名单邮件地址 varchar表 3-3 white_mailadd 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *Mailadd 白名单邮件地址 varchar3. 用于保存用户添加的主题关键字的信息表,具体设计如表所示:表 3-4 key_word 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *word 被过滤的关键字 varchar111n1111第 5 页 共 22 页4. 贝叶斯过滤所要用到的数据表,具体设计如表所示:表 3-5 drop_word 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *wor

19、d 不做分析的常用字 varchar表 3-6 bayes_field 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *value 阈值 int表 3-7 hash_all 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *token 独立字串 varchargood_time 出现在合法邮件中次数 intgood_pro 出现在合法邮件中概率 floatbad_time 出现在垃圾邮件中次数 intbad_pro 出现在垃圾邮件中概率 float表 3-8 hash_pro 数据表字段名称 字段说明 字段类型 主关键字ID 编号 int *token 独立字

20、串 varchartoken_pro 垃圾邮件综合概率 float32 开发环境需求安装此系统所需的基本软、硬件环境为: Windows95、 Windows98 或 WindowsNT/2000/XP。 Microsoft SQL Server 2000 数据库 Pentium100 及以上档次的 IBM PC 及其兼容机。 128M 以上内存。 5000M 以上可用硬盘空间。 高密软盘驱动器。 VGA 显示器。 CDROM 驱动器。 本程序在 Windows2000 Professional 操作系统下,以中文Dreamweaver MX 2004 为前台开发工具,用中文版 Microso

21、ft SQL Server 2000 数据库为后台数据库。第 6 页 共 22 页4 系统功能和技术描述41 系统功能模块设计本系统分为三个大模块,每个大模块下有不同的功能划分,模块结构图如图 4-1 所示:反垃圾邮件管理系统日常操作 邮件夹 垃圾邮件过滤收邮件写邮件收件夹垃圾邮件夹过滤设置黑名单管理白名单管理主题关键字管理贝叶斯策略图 4-1 系统功能模块结构图1. 日常操作模块这个模块分为收邮件和写邮件两部分,用户可以通过这个模块收发电子邮件,完成正常邮件和垃圾邮件的接收,本系统是采用从本地数据库读取数据,为反垃圾技术的研究提供测试环境。2. 邮件夹此模块建立了两个文件夹,分别是收件夹和垃

22、圾邮件夹,经过过滤的正常邮件显示在收件夹中,过滤后得到的垃圾邮件显示在垃圾邮件夹中。并可以对邮件进行删除和查看操作。3. 垃圾邮件过滤此模块是本设计的核心部分,采用了黑名单、白名单、主题关键字、贝叶斯过滤技术来过滤垃圾邮件,用户可以通过过滤设置来启动和停止这些过滤规则。42 基本功能通过黑名单、白名单、主题关键字、贝叶斯过滤技术完成客户端的垃圾邮件过滤,每个过滤规则在对邮件进行处理判断后,若可以确定邮件的属性,即第 7 页 共 22 页为垃圾邮件或非垃圾邮件就可以直接把邮件显示在垃圾邮件夹和收件夹。客户端垃圾邮件过滤模型如下图所示:EmailPOP3Black list filter (Sub

23、ject keyword filter)Allow list filter Non-spamspamBayesian filterWhite list filterStartEnd图 4-2 客户端垃圾邮件过滤模型43 黑白名单技术黑名单是一个简单有效最常用的过滤方法,它首先检查邮件头,如果发送者在黑名单内,就拒绝接收该邮件。黑名单可以是发送垃圾邮件的服务器、开放的代理、开放的中继以及发送者邮箱地址。现在有很多组织都在做*bl(block list),将那些经常发送垃圾邮件的 IP 地址(甚至 IP 地址范围)收集在一起,做成block list。白名单过滤的方法是在邮件过滤系统中维持一张白名

24、单表,其中收录了用户认可的邮件地址。当收到的邮件其发送者在用户的白名单中,该邮件就被判定为正常邮件。这种方法能 100%的屏蔽垃圾邮件,但是同时也会过滤掉很多第一次与收件人通信的正常邮件,而这些用户不在收件人的白名单中。目前很多邮件接收端都采用了黑白名单的方式来处理垃圾邮件,包括 MUA和 MTA,当然在 MTA 中使用得更广泛,这样可以有效地减少服务器的负担。本文中黑名单和白名单分别是已知的垃圾邮件发送者或可信任的邮件发送者的邮件地址,这种技术手段是最传统的方式,它通过黑名单技术对垃圾邮件进行屏蔽,通过白名单技术对允许的邮件进行放行。44 关键字过滤技术这种技术是根据在邮件头、邮件主题或者邮

25、件正文中是否含有设定的关键字符来判断邮件是否为垃圾邮件,然后采取处理措施。这种技术非常简单易行,现在的邮件客户端一般都提供这种技术。根据调查显示,采用基于关键字符技第 8 页 共 22 页术的邮件过滤器能够捕获到 60%的垃圾邮件。但是这种当邮件中含有某类的关键字符时就判定邮件为垃圾邮件的技术缺点非常致命,它的误确认率特别高。例如将单词“free“设置为过滤关键字,那么所有包含有这个单词的邮件都会被过滤掉,不管这封邮件来自于你的朋友还是垃圾邮件制造者。本文中是设置要过滤的邮件标题关键字,对标题中含有这些关键字的邮件进行过滤。45 贝叶斯过滤技术4.5.1 贝叶斯过滤算法的基本步骤第一步:通过收

26、集大量的邮件,按规则分为垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集,相当于两个数据库;第二步:提取邮件主题和邮件正文中的独立字串,如商品、易趣等作为TOKEN 串,并统计提取出的 TOKEN 串出现的次数,即字频,按照上述方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件;第三步:每一个邮件集对应一个哈希表,hashtable_good 对应非垃圾邮件集而 hashtable_bad 对应垃圾邮件集。表中存储 TOKEN 串到字频的映射关系。如下所示:TOKEN 串 出现次数商品 N1易趣 N2法轮功 N3色情 N4第四步:计算每个哈希表中 TOKEN 串出现的概率 P=(某 TOKEN

27、 串的字频)/(对应哈希表的长度);第五步:综合考虑 hashtable_good 和 hashtable_bad,推断当新来的邮件中出现某个 TOKEN 串时,该邮件作为垃圾邮件的概率。存在事件 S:该邮件为垃圾邮件, 1 2 , n 代表 TOKEN 串,则 PS/ i表示在邮件中出现 TOKEN串 i 时,该邮件为垃圾邮件的概率。第六步:建立新的哈希表 hashtable_probability 存储 TOKEN 串 i 到PS/ i的映射,如下所示:TOKEN 串 垃圾邮件的概率商品 PS/ 1易趣 PS/ 2法轮功 PS/ 3色情 PS/ 4重复此步骤直到得到出现某字串的邮件为垃圾邮

28、件的概率,垃圾邮件集和第 9 页 共 22 页非垃圾邮件集的学习过程就算结束了。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性,当新到一封邮件时,按照步骤生成新的 TOKEN 串,查询 hashtable_probability 得到该 TOKEN 串的键值。假设由该邮件共得到 N 个 TOKEN 串, 1 2 3 n ,则 hashtable_probability 中对应的值为 P1, P2, P3, Pn, PS/ 1, 2, 3, n表示在邮件同时出现多个 TOKEN 串 1, 2, 3, n 时,该邮件为垃圾邮件的概率,由复合概率

29、公式可得:PS/ 1 2 3 n=(P 1 * P2* Pn)P 1 * P2* Pn + (- P 1 )*(- P 2)*(- P n),当 PS 1, 2, 3, n 超过预定阈值时,就可以判断该邮件为垃圾邮件。4.5.2 贝叶斯过滤算法举例例如:一封含有“法轮功”字样的垃圾邮件 A 和 一封含有“法律”字样的非垃圾邮件 B。根据邮件 A 生成 hashtable_ bad,该哈希表中的记录为:法:1 次轮:1 次功:1 次计算得在本表中:法出现的概率为 0.3轮出现的概率为 0.3功出现的概率为 0.3根据邮件 B 生成 hashtable_good,该哈希表中的记录为:法:1律:1计

30、算得在本表中:法出现的概率为 0.5律出现的概率为 0.5综合考虑两个哈希表,共有四个 TOKEN 串: 法 轮 功 律当邮件中出现“法”时,该邮件为垃圾邮件的概率为:P=0.3/(0.3+0.5)=0.375出现“轮”时:P=0.3/(0.3+0)=1出现“功“时:P=0.3/(0.3+0)=1第 10 页 共 22 页出现“律”时P=0/(0+0.5)=0;由此可得第三个哈希表:hashtable_probability 其数据为:法:0.375轮:1功:1律:0当新到一封含有“功律”的邮件时,我们可得到两个 TOKEN 串,功 律查询哈希表 hashtable_probability 可

31、得:P(垃圾邮件|功)=1P(垃圾邮件|律)=0此时该邮件为垃圾邮件的可能性为:P=(0*1)/0*1+(1-0)*(1-1)=0由此可推出该邮件为非垃圾邮件。4.5.3 贝叶斯过滤模块划分针对贝叶斯过滤的流程以及其所需要的功能,可以把整个过滤从功能上分为邮件预处理、贝叶斯算法实现、数据库访问、过滤主逻辑几个主要模块,系统结构如下图所示:过滤主逻辑模块邮件预处理模块贝叶斯算法模块数据库访问模块图 4-3 贝叶斯过滤系统结构图邮件预处理模块:这个模块主要负责读取邮件,对邮件进行编解码,去html 的 tag 等;贝叶斯算法模块:这个模块主要的功能是对邮件文本向量化,统计特征向第 11 页 共 2

32、2 页量词出现的次数,分类器的训练、调整、更新,新邮件的过滤等;数据库访问模块:在文本向量化,统计频率和计算概率时需要访问数据库,这个模块主要对数据库进行访问操作;过滤主逻辑模块:这个模块负责调用其余各个模块的功能,实现垃圾邮件过滤处理的主逻辑。5 系统工作流程和详细设计51 系统工作流程图系统服务工作流程图如图 5-1 所示:邮件处理界面读邮件 写邮件 过滤设置 黑白名单过滤 主题关键字过滤 贝叶斯过滤加入编码解码图 5-1 系统服务工作流程图52 邮件统计设计进入反垃圾邮件管理系统就可直观的显示收件夹和垃圾邮件夹中邮件的数目,并可点击进入浏览邮件,如果各种过滤策略启动,收到的邮件满足黑名单

33、、关键字、贝叶斯过滤的条件,不满足白名单过滤的条件将会被显示在垃圾邮件夹里,正常邮件会被显示在垃圾邮件夹里,邮件统计界面如图 5-2 所示:第 12 页 共 22 页图 5-2 邮件统计53 收件夹设计被过滤后的正常邮件被显示在收件夹内,显示了寄件人、日期和邮件主题,可对邮件进行删除和内容查看操作。如图 5-3 所示:图 5-3 收件夹点击邮件主题,进入邮件浏览界面,如下图所示:图 5-4 邮件内容查看第 13 页 共 22 页54 反垃圾功能设计5.4.1 黑白名单过滤此部分完成黑白名单的添加、修改、删除操作,如果收到黑名单中的地址发来的邮件就进行过滤显示在垃圾邮件夹里,如果收到白名单中的地

34、址发来的邮件就直接显示在收件夹内,黑名单界面如下图所示:图 5-5 黑名单地址白名单显示界面如下图所示:图 5-6 白名单地址白名单添加界面如下图所示:图 5-7 白名单添加黑名单过滤的代码如下:rem 通过黑名单过滤function black_leach(add)sqlb = “select * from black_mailadd where mailadd= “&add &“set rsb = server.CreateObject(“adodb.recordset“)rsb.open sqlb,conn,1if rsb.eof then black_leach=“true“ 不在黑名

35、单里,不被过滤else black_leach=“false“ 在黑名单里,被过滤end ifrsb.closeset rsb=nothingend function第 14 页 共 22 页5.4.2 主题关键字过滤主题关键字添加界面:图 5-8 主题关键字添加完成主题关键字的添加后,如果收到的邮件标题中含有要过滤的关键字就显示在垃圾邮件夹中,方便用户有选择的查看和删除,添加完成后出现以下界面,可以向数据库中添加、修改、删除主题关键字,如图所示:图 5-9 主题关键字设置主题关键字过滤核心代码如下:rem 对标题进行分词,并查询单词中是否有被过滤的关键字:subjectleachfuncti

36、on sub_leach(strf)dim strtempstrf=Trim(strf)strf=strf&“ “strtemp=“for i =1 to len(strf)if mid(strf,i,1)0“rs.open sql,conn,1,3r_t=rs.recordcountdo until rs.eofi=rs(“good_time“)/r_ti=int(i*1000)/1000rs(“good_pro“)=irs.update3. 构造 hash_pro 表的代码如下:function make_proset rss=server.CreateObject(“adodb.reco

37、rdset“)sqls=“select token,good_pro,bad_pro from hash_all “rss.open sqls,conn,1,3do until rss.eofstr=rss(“token“)i=rss(“bad_pro“)/(rss(“bad_pro“)+rss(“good_pro“)i=int(i*1000)/1000conn.execute “insert into hash_pro values(“&str&“,“&i&“)“rss.movenextlooprss.close第 17 页 共 22 页end function5.4.4 过滤参数设置此模块

38、可以启动和停止过滤策略,对四种过滤规则进行设定,界面如图 5-14 所示图 5-14 过滤参数设置6 测试与分析61 系统测试1. 黑白名单功能测试:在黑名单中加入要过滤的邮件地址,在白名单中加入允许放行的邮件地址,启动黑白名单功能,发送两封邮件,前一封邮件地址在黑名单中,后一封邮件地址在白名单中,发信人是前者的邮件被显示在垃圾邮件夹中,发信人是后者的邮件被显示在收件夹中,测试成功。2. 主题关键字过滤测试:添加要过滤的关键字,启动主题关键字过滤功能,发送一封标题中含有过滤关键字的邮件,该邮件被显示在垃圾邮件夹里,测试成功。3. 贝叶斯过滤测试:启动贝叶斯过滤功能,在文本 1.txt 中写入非

39、垃圾邮件样本集,在文本 2.txt 中写入垃圾邮件样本集,对 1.txt 和 2.txt 进行学习,分析计算得到哈希概率表,发送一封含有这两个样本集字串的邮件,设定一个阈值,垃圾邮件概率超过这个阈值邮件被显示在垃圾邮件夹里,小于这个阈值邮件被显示在收件夹里,测试成功。测试中我在 1.txt 中写入了 fa、lv 两个字串,在 2.txt 中写入 fa、lun、gong 三个字串,经过学习得到下图所示的数据表:图 6-1 hash_all 数据表第 18 页 共 22 页生成的哈希概率表如下图所示:图 6-2 哈希概率表当发送一封邮件内容是 fa lun mail 的邮件时,计算得到的垃圾邮件概

40、率大于预先设定的阈值 95,该邮件被显示在垃圾邮件夹中。点击邮件浏览界面中对邮件进行 bayes 分析的按钮可以显示 bayes 分析的各项指标,如下图所示:图 6-3 bayes 分析62 设计中的难点问题1.对系统中需要使用的过滤参数进行集中的管理和配置。主要包括以下两个方面的内容:(1)提供用户界面给用户修改相关参数,以完成个性化定制。(2)在系统的使用过程中,考虑到用户的实际情况,应该方便的允许用户随时开启或关闭邮件过滤功能。针对此问题我设计了一个参数设置模块来根据用户的需要开启关闭不同的过滤规则。第 19 页 共 22 页2. 特征串的选取特征串选取好坏将决定最终的过滤效果。特征串词

41、库不是静态建立的,而是根据垃圾邮件集和非垃圾邮件集动态变化的,这样才能保证其一定的智能性和不断的学习能力。因此需要考虑多种情况,准确的提取垃圾邮件集合和非垃圾邮件集合中的特征信息,从而建立比较完善的特征串词库。对英文邮件,token 串的选取不能仅简单的以单词为分解目标。而应该考虑到各种变化的情况,比如字母大小写 ,字母的异化。63 三种过滤技术分析黑白名单技术占用较少的计算机资源,易于实施,但需要手动维护邮件地址清单,此方案在成熟的垃圾邮件解决方案中只起补充作用。关键字过滤是一个简单但是有效的阻断绝大多数垃圾邮件的方法,其优点是简单易构造、易实现、可靠性高。而缺点是:必须经常对关键字进行更改

42、和产生较多误报的情况。贝叶斯算法在实际应用中需注意的方面:1. 纯粹的贝叶斯算法过滤只考虑了邮件正文的内容,而往往邮件头部的一些信息是很重要的,因此必须把邮件头部的不同组成部分出现的 TOKEN 标识出来,且其权重设置为较大值。2. 在遇到某些特殊邮件时要根据这些网页的具体特征去判断这些邮件的合法性,例如在某个邮件中邮件正文很少,除此之外就只有一个网页的链接,那么这封邮件就很有可能是垃圾邮件。3. 由于正常邮件被误判断为垃圾邮件很有可能给用户带来极大的损失,因此必须采取方法降低正常邮件的误判。这里可以采取二级过滤规则的策略,即在一封邮件被判断为垃圾邮件以后还可以利用别的过滤规则对其再次进行判断

43、,若符合某些条件则把其判为非垃圾邮件。4. 由于贝叶斯算法在电子邮件中的应用是由使用英语的人提出来并按照英语的语法习惯处理 TOKEN 串的,所以,当把他们应用到汉字处理或者其他并不和英语类似的语言时就会产生许多问题。这里也不具备对中文的识别,因为中文的分词算法比较复杂,准确率不高。64 通用模块分析本系统中包括一些通用模块,这些模块以文件的形式保存,可以在其他文件中使用#include 语句包含这些模块,使用其中定义的功能。比如:conn.asp 实现到数据库的连接,代码如下:结 论在设计过程中,我深刻认识到了反垃圾邮件技术研究的重要性,它对我们的工作和生活都产生着巨大的影响。我也对目前所应

44、用到的各种反垃圾技术做了全面的了解,最后选择了三种常见的技术进行了功能设计,它们分别是黑白名单技术、主题关键字过滤技术、贝叶斯过滤技术,本文就围绕这三种技术做了详细说明并阐述了开发过程,希望通过这三种技术提高垃圾邮件的过滤率。但是由于现在很多垃圾邮件发送者也在利用各种过滤技术的漏洞发送垃圾邮件,要想做到百分之百的过滤垃圾邮件是一件不可能的事,在设计中使用的三种过滤技术也存在着各自的缺陷,还有很多难点问题,比如黑白名单地址的选取,主题关键字的选取,贝叶斯垃圾邮件集和非垃圾邮件集的搜集。当然还有很多更高效的过滤技术有待我们去研究,控制和消除垃圾邮件也不是几个人或几个组织就可以完成的,它需要全社会的

45、共同努力,来建立一个洁净的网络空间。参考文献1邓文渊,陈惠贞,陈俊荣. ASP 与网络数据库技术M.北京:中国铁道出版社,20032顼宇峰,马军.ASP 网络编程从入门到精通M.北京:清华大学出版社,20063立雅科技.DreamweaverMX&ASP 网页整合大全M.北京:电子工业出版社,20044张莉,王强.SQL Server 数据库原理及应用教程M.北京:清华大学出版社,20035四维科技,胡标.ASP 网络编程技术与实例M.北京:人民邮电出版社,20046 陈勇,李卓桓.反垃圾邮件完全手册M.北京:清华大学出版社,2006第 21 页 共 22 页致 谢本文是在李贵洋老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!在论文完成过程中,本人还得到了李中志老师和同班同学的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报