logo资料库

打包Matlab博士论文关于垃圾邮件分类-基于NP的垃圾邮件分析系统的设计与实现.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
第 33 卷 第 10 期 Vol.33 No.10 ·网络与通信· 计 算 机 工 程 Computer Engineering 文章编号:1000—3428(2007)10—0092—03 2007 年 5 月 May 2007 文献标识码:A 中图分类号:TP393 基于 NP 的垃圾邮件分析系统的设计与实现 (1. 中国科学院高能物理研究所计算中心,北京 100049;2. 中国科学院研究生院,北京 100049) 翟伟斌 1,2,叶进星 1,2,陈 宇 1,2,许榕生 1,2 摘 要:垃圾邮件的泛滥成灾给人们的正常生活带来了很大的不便和危害。该文设计并实现了基于 NP 的垃圾邮件分析系统,具有邮件抓 取、还原和类别识别功能,能够有效识别垃圾邮件。实验结果表明,该系统对于垃圾邮件的追踪具有良好的实用价值。 关键词:网络处理器;垃圾邮件;向量空间模型 Design and Implementation of Spam Mail Analysis System Based on Network Processors ZHAI Weibin1,2, YE Jinxing1,2, CHEN Yu1,2, XU Rongsheng1,2 (1. Computing Center, Institute of High Energy Physics, Chinese Academy of Sciences, Beijing 100049; 2. Graduate School, Chinese Academy of Sciences, Beijing 100049) 【Abstract】The spam mails are inconvenient and harmful to people’s life. The paper designs a spam mail analysis system based on network processors, which has the ability of snatching, restoring mails and dispatching mails, which can identify spam mails effectively. The good performance of this model is presented. 【Key words】Network processor; Spam mail; Vector space model 本系统将 NP 串接在想要监控的网络上,能自动对所有 流经的网络包进行抓取,然后传送给垃圾邮件处理器。设计 支持透明接入的方式,这 给系统部署带来极大的方 便,因为不需要对路由器 或交换机进行任何设置, 用户甚至感觉不到 NP 的 存在。 从网卡接收 数据包,记录 包长等信息 是否为 IP 包 Y N N 垃圾邮件一般是指未经请求而发来的电子邮件,通常包 含一些商业广告以及其它不良信息。自从互联网普及以来, 电子邮件逐渐成为人们生活中便捷的通信手段之一。然而, 随之产生的垃圾邮件迅速蔓延,污染网络环境,占用大量传 输、存储和运算资源,影响了网络的正常运行。根据 2005 年 1 月份中国互联网信息中心 CNNIC 发布的第 15 次互联网统 计报告,中国用户每周收发的正常邮件数分别为 4.4 封和 3.6 封,收到的垃圾邮件数达到 7.9 封,垃圾邮件数量已经超过 了正常邮件数量。对于用户来说,处理垃圾邮件不但造成时 间和费用的浪费,而且有可能收到对系统安全构成威胁的病 毒邮件。因此,消除垃圾邮件具有非常重要的意义。 目前处理垃圾邮件主要采用在邮件服务前面放置垃圾邮 件处理器。在垃圾邮件达到邮件服务器前进行过滤,一般采 用基于 IP、域名的过滤。这种过滤方法只是在垃圾邮件到达 目的地时才过虑掉,而不能有效地找到垃圾邮件的起源地, 在源头上切断垃圾邮件。本文提出的基于 NP 垃圾邮件分析 系统,可以部署在各个交换机上,能够对经过交换机的垃圾 邮件进行截获分析,并把分析结果反馈给管理人员,管理人 员根据反馈结果进行分析,用来准确定位垃圾邮件的来源。 1 邮件抓取 目前,网络监控系统在硬件上一般采用 PC 架构,抓包 软件则采用 Linux 下的 Libpcap 工具包,实现对网络数据包 的捕获。这种架构只能适应于百兆带宽,对于高速网络,由 于 PC 机 CPU 处理能力和存储总线吞吐能力的限制会出现严 重的丢包现象。为了实现高速网络垃圾邮件监控,本文采用 网络处理器(Network Processor,NP)架构。NP 是为宽带网 络应用而设计的专用处理器,它具有很高的数据包处理能力, 可以完全满足高速网络的数据包抓取任务。 —92— 邮件抓取流程如图 1 所示, 对 NP 传送来的一 个包,先将其存入内存中, 而后对其进行协议分析, 协议分析的顺序从底层到 高层,同时进行协议过滤, 将符合条件的数据包传给 下一步处理程序。由于电 子邮件一般采用 POP3 和 SMTP 协议,因此本系统 只抓取 POP3 和 SMTP 数 据包,其余数据包全部过 滤掉。 2 邮件还原 是否为 TCP 包 Y 协议分析, 过滤 POP 3 数据包 SMTP 数据包 结束 邮件还原 图 1 邮件抓取流程 电子邮件在网络上是以包的形式传输,一封邮件根据长 基金项目:国家自然科学基金资助项目(70471064) 作者简介:翟伟斌(1975-),男,博士生,主研方向:信息提取; 叶进星、陈 宇,博士生;许榕生,研究员、博导 收稿日期:2006-05-25 E-mail:zhaiwb@gmail.com
度的不同,会拆分为数个不同 的数据包,这些数据包在网络 上传输时,不一定会走相同的 路径,而且还有丢包的可能, 所以抓取到的邮件数据包不一 定是完整的。即便是完整的数 据包,顺序一般也是打乱的。 所以要对数据包进行重组。本 文采用 Linux 操作系统下的 Libnids 函数库实现网络数据 包的重组。还原后的邮件存储 后 供 下 一 步 进 行 邮 件 分 析 。 Libnids 的网络数据处理流程 如图 2 所示。 3 邮件分析 POP3 数据包 SMTP 数 据包 nids 初始化 判断数据包 的完整性 N Y 数据包重组 还原后 邮件 结束 邮件分析 图 2 邮件还原流程 本邮件分析系统采用基于改进的向量空间模型,通过机 器学习的方法,在大量语料中自动获取特征词,即垃圾邮件 和非垃圾邮件的特征集,利用规则统计相关信息,并用向量 空间表示,当抓获到新邮件时,对邮件进行处理,用向量空 间表示,分别与垃圾邮件向量空间和非垃圾邮件向量空间进 行比较,得出抓取到的邮件的类别。原理如图 3 所示。 读取训练邮件 邮件预处理, 分词, 去掉停用词, 词性 标注, 词的位置标 注 生成每个训练邮 件的特征向量 提取每个训练邮 件的特征向量 生成垃圾邮件中 心向量 生成正常邮件中 心向量 读取新邮件 新邮件预处理, 分 词,去掉停用词, 词 性标注, 词的位置 标注 生成新邮件的特 征向量 提取新邮件的特 征向量 新邮件特征向量 计算向量夹角 邮件类别 图 3 邮件分析流程 3.1 邮件分类技术 (1)定义。邮件分类就是在给定的分类模型下,根据邮件 内容自动判别垃圾邮件和非垃圾邮件类别的过程。 (2)邮件的表示。邮件还原后为文本形式,但是计算机只 能识别二进制码,不可能像人一样读懂文本,所以必须将邮 件内容转换为计算机可识别格式。根据“贝叶斯假设”,假定 字和词在确定文本内容的作用上相互独立,就可以使用文本 中出现的字或词的集合来代替文本。 =< wtwt , 1 2 目前,在信息处理方向上,文本的表示主要采用向量空 间模型(VSM)。向量空间模型的基本思想是以向量来表示文 ,其中 ti 为文本的特征项, d 本: wi 是 ti 在该文档中的权值。特征项一般可以选择字、词或词 组,普遍认为词作为特征项要优于字和词组,因此,要将文 本表示为向量空间中的一个向量,就首先要提取文本中的特 n wt n ;...; > ; , , 2 1 i i i ) × × log( Key t ,( dt i 征词,由这些特征词及其权重作为向量的维数来表示文本, 权重的计算方法主要运用 TFIDF 公式,我们在系统中采用了 一种比较普遍的 TFIDF 公式[1]: tf dtW dt nN ) ,( ,( )01.0 / + = i i i t 为词 ti 在文本 d 为词 ti dtW i ,( ) 其中, 中的权重,而 在文本 d 中的词频, itKey 为词 ti 的加权值,取值按照表 1 所 示,N 为训练文本的总数, itn 为训练文本集中出现 ti 的文本 作归一化处理,限制其取 数。为了便于处理,通常对 ) 值位于区间[0, 1]中,即 dtW ) ,( i K ∑ dtW , 其中,K 为向量 d 的维数。 dtW ,( i ,( dtW i (1) tf = 2 j ) 1 = ) ( ) i ′ i j i j 邮件文本经过分词程序预处理后,统计词频,最终表示 为上面描述的向量。采用 TFIDF 方法计算权重没有考虑邮件 的结构特性和特征词的词性对权重的影响,事实上同一个关 键词出现在邮件的不同位置,它所能表达邮件内容的能力是 有差别的,同时同一位置出现的不同词性的特征词,在表达 邮件内容的能力上也存在很大差异。本文引入了权重系数概 念,对于一个邮件,其标题、正文、附件中出现的特征词, 根据词性,给予不同程度的加权(见表 1)。 表 1 不同域特征词的加权值 标题 正文 附件 其它 名词 1.5 1.2 1.1 1 动词 1.45 1.15 1.05 1 形容词 1.4 1.1 1.025 1 副词 1.4 1.1 1.025 1 3.2 特征项的抽取 由于邮件长度的随机性,因此在对邮件进行特征提取时, 有可能得到的向量空间维数很大,随着维数的增加,用来训 练邮件分类器和测试性能所需的对象个数会随着系统维数呈 指数级增长[2]。同时还有很多词对于区分垃圾邮件和非垃圾 邮件所起的贡献很小,可以完全忽略。 因此需要进行维数压 缩,这样做还可以提高程序的效率。对于每一类邮件,应去 除那些表现力不强的特征项,筛选出针对该类的特征项集合, 本文采用词和类别的互信息量进行特征项抽取[3]。其计算公 式如下: (2) CtI log[ ,( ) = j 为特征词 t 在类别 Cj 中出现的比重, tKey 为特 jCtP 其中, |( ) 征词 t 加权值,取值如表 1 所示, )(tP 是特征词 t 在所有训练 文本中的比重。 CtP |( tP )( ) ] j × Key t 对计算出来的所有的互信息量 I 进行从大到小排序,根 据需要抽取一定数量的特征项。 3.3 邮件训练和分类算法 给定一定数量的垃圾邮件和正常邮件进行训练,对于各 个类别中的每一个邮件按照图 3 所示进行训练,最后得出该 类邮件的中心向量,中心向量为该类别所有训练文本向量的 简单算术平均。 对于需要处理的新的邮件,进行处理,用特征向量表示。 最后计算新邮件和每类邮件中心向量的相似度。公式为 dd , i im( s ) = j ( K ∑ n 1 = K ∑ n 1 = WW × in W 2 in )( K ∑ n 1 = jn W 2 jn ) (3) —93—
为新邮件的特征向量, jd 其中, id 量,K 为特征向量的维数,Wn 为向量的第 n 维。 为第 j 类邮件的中心向 比较每类中心向量与新邮件的相似度,将邮件分到相似 度最大的那个类别中。 4 实验及结果 为了有效地评价垃圾邮件监控系统性能的好坏,我们使 用两个评定指标 GP(邮件识别的准确率)和 GR(邮件识别的查 全率)[4]。 = (4) 其中,Np 为正确识别出的垃圾(正常)邮件数,Nw 为误识别 为垃圾(正常)邮件数。 GP N p N + N w P (5) GR = N N p s 其中,Ns 为应该识别出的垃圾(正常)邮件数。 首先本文对中科院高能物理研究所 mail 用户举报的垃圾 邮件进行筛选,去除一些包含加密信息、图片信息以及一些 内容过短的垃圾邮件,选取 1 000 封作为训练样本。按照图 3 方式进行训练,得出垃圾邮件的中心向量。然后对 NP 抓取 的邮件进行手动分析,选取 1 000 封正常邮件作为正常邮件 训练样本,同理按照图 3 进行训练,得出正常邮件的中心向 量。对随后在中心交换机上抓取的 1 000 封邮件进行分类, 结果如表 2 所示。 表 2 邮件过滤的准确率,查全率 垃圾邮件 正常邮件 垃圾邮件类别 正常邮件类别 无法识别邮件 483 35 11 26 441 4 GP 94.8% 92.6% GR 91.3% 93.6% 本系统对抓取的邮件分类后,如果是垃圾邮件,会向管 理员发出警报信息,管理员根据得到垃圾邮件警报信息(包含 垃圾邮件的来源),进行垃圾邮件追踪,便于从源头上消除垃 圾邮件。邮件分类错误的主要原因是一些邮件内容过短,只 有单单几个字。对于这样的邮件,很难判断类别。 邮件种类无法识别是因为表示邮件的向量和垃圾邮件中 心向量,正常邮件的中心向量的差别都超过了设定的限度值。 主要原因是:(1)用来参与训练的样本邮件内容不够全面,系 统训练不够充分。(2)邮件中包含了无法识别内容,邮件无法 正常还原。 5 结束语 从系统得到的实验结果可以看出,采用基于 NP 架构的 垃圾邮件分析系统,可以有效地抓取经过高速网络交换机的 垃圾邮件,并能快速地对邮件进行还原、分类,同时邮件类 别识别的准确率也达到了可以接受的程度。但是只能对邮件 中的文字内容进行处理,对于图片信息无法处理。由于越来 越多的垃圾邮件(如商业广告)采用图片形式,因此必须能够 监控到这部分垃圾邮件。下一步工作将是带图片信息的邮件 还原,这将是一个很有挑战性的工作。 参考文献 1 Sebastiani F. Machine Learning in Automated Text Categorization[J]. ACM Computing Surveys, 2002, 34(1): 11-12, 32. 2 Meisel W. Computer-oriented Approaches to Patten Recognition[M]. New York: Academic Press, 1972. 3 庞剑峰, 卜东波, 白 硕. 基于向量空间模型的文本自动分类研究 与实现[EB/OL]. http://www.ict.ac.cn/xueshu/2001/115.doc. 4 Sakkis G, Droutsopoulos I, Paliouras G. Stacking Classifiers for Anti-spam Filtering of E-mail[C]//Proc. of EMNLP′01. 2001: 45. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (上接第 65 页) 的嵌入式实时控制系统,因此今后的工作将包括: (1)高精度时钟管理系统的实现; (2)在中断进程化基础上,研究不同的实时调度策略,以 支持不同实时性需求的应用; (3)研究网络资源调度以实现实时远程控制等。 参考文献 1 李小群, 赵慧斌, 叶以民, 等. RFRTOS: 基于 Linux 的实时操作系 统[J]. 软件学报, 2003, 14 (7). 2 Michael B. A Linux-based Real-time Operating System[D]. Socorro, New Mexico: New Mexico Institute of Mining and Technology, 1997. 3 House S B, Niehaus D. KURT-Linux Support for Synchronous Fime- grain Distributed Computations[C]//Proc. of the 6th IEEE Real Time Technology and Applications Symposium. 2000. 4 Srinivasan B. A Firm Real-time System Implementation Using Commercial Off-the-shelf Hardware and Free Software[D]. Depart- ment of Electrical Engineering and Computer Science, University of Kansas, 1998-02. 5 赵慧斌. RFRTOS——基于 Linux 的 Qos 实时操作系统[D]. 北京: 中国科学院软件研究所, 2003. 表 2 软中断进程化之前与之后的内核不确定延迟(μs) 软中断进程化之前 Min Max 0 38 11 0 15 0 27 0 31 0 0 38 200/次 1 2 3 4 5 总计 Avg 6.15 2.99 3.16 4.46 3.66 4.084 软中断进程化之后 200/次 1 2 3 4 5 均值 Min Max 0 1 0 0 1 0 1 0 2 0 0 2 Avg 0.03 0.00 0.01 0.01 0.04 0.018 200/次 表 3 软中断进程化之前与之后的执行延迟(μs) 软中断进程化之前 软中断进程化之后 Min Max 38 0 15 0 14 0 15 0 0 15 38 0 Min Max 2 0 2 0 2 0 3 0 0 2 3 0 Avg 5.28 4.69 4.66 4.57 4.98 4.836 1 2 3 4 5 总计 200/次 1 2 3 4 5 总计 Avg 0.16 0.20 0.22 0.27 0.17 0.204 4 结束语 本文实现了中断进程化方法,不仅大大减少了原中断机 制造成的大量不确定内核延迟,而且可以实现与系统中其他 任务在统一调度框架下的资源竞争。实验表明这种改进是显 著的,较大地减少了内核的不确定延迟。该研究是基于 Linux —94—
分享到:
收藏