为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于MIME邮件结构的邮件内容提取技术的研究

2011-06-22 4页 pdf 174KB 49阅读

用户头像

is_867668

暂无简介

举报
基于MIME邮件结构的邮件内容提取技术的研究 © 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net X IANDA I TUSHU Q INGBAO J ISHU   85    基于 M IME邮件结构的邮件内容提取技术 的研究 胡 燕 滕桂法 董素芬 王 聃 (河北农业大学信息科学与技术学院 保定 071001) 【摘要】为准确提取电子邮件的内容 ,对邮件的组成结构进行详尽的分析 ,归纳出邮件正文特征...
基于MIME邮件结构的邮件内容提取技术的研究
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net X IANDA I TUSHU Q INGBAO J ISHU   85    基于 M IME邮件结构的邮件内容提取技术 的研究 胡 燕 滕桂法 董素芬 王 聃 (河北农业大学信息科学与技术学院 保定 071001) 【摘要】为准确提取电子邮件的内容 ,对邮件的组成结构进行详尽的 ,归纳出邮件正文特征 ,并出一个基 于 M IME邮件结构的邮件预处理系统。该系统采用分块处理和特征识别的方法 ,克服电子邮件不规范的缺点 ,并 对邮件正文中的回复行和广告行进行过滤 ,从而实现对邮件内容快速准确提取。 【关键词】多用途互联网邮件扩展 电子邮件 预处理 【分类号】TP393. 098 Research on Extracting E - ma il Information Based on Structure of M IM E Ma il Hu Yan Teng Guifa Dong Sufen W ang Dan ( School of Information Science and Technology, Agricultural University of Hebei, Baoding 071001, China) 【Abstract】In order to accurately extract the information of E - mail, E - mail’s structure and content features are ana2 lyzed, and an E - mail p retreatment system based on structure ofM IME mail is designed. U sing block - treatment and fea2 ture identification methods, this system overcomes the shortcom ings of informal style and filteres rep ly lines and advertising lines. The system finally realizes expectative goal of extracting E - mail information quickly and accurately. 【Keywords】M IME E - mail Pretreatment   收稿日期 : 2008 - 01 - 04   收修改稿日期 : 2008 - 01 - 21   本文在详尽分析 M IME邮件格式 [ 1 - 3 ]的基础上 ,采用对邮件进行分块处理和特征识别的方法 ,设计出一个实 用并能够准确提取邮件内容的邮件预处理系统。该系统可用于垃圾邮件过滤 ,电子邮件文字转语音 ,以及邮件分 类等邮件处理系统的预处理。本文将此作为中文电子邮件作者身份识别系统的预处理。 1 M IM E邮件 1. 1 简 介   多用途互联网邮件扩展 (Multipurpose Internet Mail Extensions,M IME)是当前广泛应用的一种电子邮件技术规 范。在 M IME出现之前 ,互联网使用 RFC822[ 4 ]作为电子邮件的文本格式。但是 RFC822具有一定的局限性 : 它只能发送基本的 ASC II码文本信息 ,邮件内容如果包含语音、图像等多媒体数据以及其他二进制数据文件 ,实 现起来就非常困难。M IME在 RFC822的基础上对电子邮件规范作了大量的扩展 ,引入了新的格式规范和编码方 式 ,弥补其缺陷。随着网络的飞速发展和电子邮件的广泛应用 ,M IME已经成为得到广泛支持的电子邮件的标准 , 成为 HTTP协议标准的一部分。 总第 164期  2008年  第 5期 © 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 86     现代图书情报技术 1. 2 组成结构   一封规范的电子邮件主要由邮件头和邮件体两大 部分组成。它们之间以一个空白行进行分隔。当邮件 体被分为多个段时 ,每个段又包含段头和段体两部分 , 这两部分之间也以空行分隔。   邮件头包括发件人、收件人、主、日期、M IME版 本、邮件内容的类型等重要信息。邮件头的结构较为 复杂 ,通常由多个头字段和字段内容组成 ,如 From、 To、Date、Subject等。了解各个字段的含义和作用 ,对 邮件内容的正确提取起着至关重要的意义。   邮件体是一系列的文本行 ,它包含用户发送的希 望接收者收到的信息 ,也就是通常所说的邮件内容。 它的类型由邮件头的“Content - Type”字段定义 ,该字 段是 M IME对 RFC822扩展的最主要信头字段 ,包含很 丰富的信息。常见的简单类型有 Text/Plain (纯文本 ) 和 Text/H tm l(超文本 )。需要特别说明的是 Multipart 类型 ,它用于表达 M IME组合消息 ,是 M IME协议中最 重要的一种类型 ,是 M IME邮件的精髓。常见的 Multi2 part类型有 3种 : Multipart /M ixed, Multipart /Related和 Multipart /A lternative。它们之间的主要区别是 : Multi2 part /M ixed表示邮件体中的内容是混合组合类型 ,各 部分之间没有特定的关系 ,通常是各自意义分离的 ,如 果要在邮件中添加附件 ,就必须将整封邮件的 M IME 类型定义为 Multipart /M ixed; Multipart /Related表示消 息体中的内容是关联组合类型 , 如果要在 HTML格式 的正文中引用内嵌资源 ,就要定义 Multipart /Related类 型的 M IME消息 ;Multipart /A lternative表示部件之间的 原始数据都是相同的 ,只是格式不一样 ,如果纯文本内 容与 HTML文本内容共存 ,就要定义 Multipart /A lterna2 tive类型的 M IME消息。   Multipart的子类型中都定义了各自的 Boundary属 性 ,邮件使用这些 Boundary中定义的字符串作为标识 , 将邮件内容分成不同的段 ,段体内的每个子段以“ - - ”+ boundary行开始 ,父段则以“ - - ”+ boundary +“ - - ”行结束 ,不同段之间用空行分隔。准确地获 取和判断边界信息是正确提取邮件内容的关键。 2 邮件正文特征分析   弄清楚邮件的组成结构 ,就可以通过对各个字段 的提取来获得感兴趣的信息 ,如邮件的接收地址、发送 地址、附件、邮件的内容等。在邮件内容里 ,除了发送 者希望接收者收到的信息外 ,还包含一些无用信息 ,如 回复行和广告行的内容。为了提高后续处理的速度 , 需要将这些无用信息过滤掉。   目前人们使用电子邮件的方式 ,主要是通过 Out2 look或直接通过各大网站登录到相应的邮箱系统。由 于发信人所使用的邮件系统不同 ,回复行和广告行的 结构也有所不同。正是这种不规范性 ,使得回复行和 广告行的准确提取显得十分困难。通常来说 ,一封回 复的邮件 ,主题通常是以“回复 : ”、“RE: ”等开始 ,然而 在编辑邮件的时候 ,用户是可以修改这部分信息的 ,所 以不能单凭主题内容来判断邮件是否存在回复行 ,还 要根据邮件的内容来进行判断。通过研究实际获取的 邮件发现 ,大部分的邮件回复行中都包含前一封邮件 的头信息以及正文内容 ,并且在每行的头部以“ > ”开 头。有些回复行还会以“ | ”、“: ”或其他符号开头。邮 件后存在的广告行内容 ,通常都包含链接地址 ,并且广 告行与正文之间以分隔线隔开。 表 1 邮件回复行和广告行的具体特征 行特征描述 当 前 行 上 一 行 下 一 行 是否有空白行 √ √ √ 是否有邮件地址格式 √ √ √ 是否是最后一行 √ 是否是倒数第二行 √ 是否有 URL地址格式 √ √ √ 是否有邮件头格式 √ √ √ 行是否以特定的符号结束 ,例如正则表达式 : " \ " " $" √ 上一行或下一行是否与当前行使用了同一个符号结尾 ,例如正则 表达式 : " \ " " $" √ 标点符号在行中的比例大于 40% √ √ √ 广告行标记是否符合以下正则表达式 : " [^ \ s ] 3 - - - 3 [ \ s ]3 $"或 " [^ \ s ] 3 = = = 3 [ \ s ] 3 $" √ √ √ 行中是否有 10个或更多的特殊字符 ,如以下正则表达式 : " [^ \ s ]3 ( [ \3 ] | # | [ \ + ] | [ \ ^] | - | [ \~ ] | [ \ & ] | [ / / / ] | [ \ $] | - [ \ ! ] | [ \ / ] | [ \% ] | [ \: ] | [ \ = ] ) {10, } [ \ s] 3 $" √ √ √ 回复行是否有明显标识 ,如 ′> ′或 ′|′或 ′: ′ √ √ √ 当前行是否有发信人的姓名 (可以从邮件头得到姓名 ) √ 是否以标点符号作为当前行的开头 √ √ √ 上一行或下一行与当前行是否用了同一个符号开头 √ √ √ 是否以 1或 2个标点符号作为行的开头 ,类似典型的邮件回复形 式 ,如以下正则表达式 : " ! \p{ Punct} {1, 2} \ > " √ √ √ 回复行标识是否符合以下正则表达式 : " ^[ \ s ] 3 - - - 3 [ \ s ] O riginal[ \ s ]M essage[ \ s] 3 - - - 3 [ \ s ] 3 $" √ √ √ 回复行标识是否以 "写道 : "结尾 √ √ √ 行中字母和数字 (如正则表达式 ) : " \ [ a - zA - Z0 - 9 ] "的比例 是否小于 80% √ √ √   根据上述分析 ,本文在 V itor R. Carvalho[ 5 ]介绍的 特征识别方法的基础上 ,归纳出回复行和广告行的具 体特征 (如表 1所示 ) ,并利用这些特征判断回复行和 应用实践 © 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net X IANDA I TUSHU Q INGBAO J ISHU   87    广告行的内容。在表 1中 ,第一列列出了回复行和广 告行的具体特征描述 ,第 2、3、4列 (“当前行 ”、“上一 行”和“下一行 ”)表明该特征在哪一行被应用了。例 如 ,为了把某个邮件中的第 25行描述成一个特征集 , 空白行特征不仅在第 25行被出 ,而且在第 24行 和第 26行也被检测到了。并且在邮件中 ,这 3行确实 都是空白行 ,那么第 25行将包含以下 3个特征 :空白 行、上一行空白行和下一行空白行。 3 邮件预处理技术   电子邮件预处理的目的就是对原始邮件进行拆分 处理 ,得到有用的信息 ,最后生成纯文本文件。这些有 用的信息包括发信人、收信人、日期、主题、正文、附件 等信息。获取过程是把以上信息从邮件文档中按照邮 件的特定格式提取出来 ,并按照特定的含义存储到数 据库的对应属性中。对于那些无用的信息如广告行、 回复行等 ,在处理的时候就要将其过滤掉。由于电子 邮件是一种半结构化的文本文件 ,含有大量的非正式 的语言 ,如 HTML标记、图像、声音等信息 ,处理起来相 对困难 ,故本文只取 Text/Plain (纯文本 )类型进行 处理。   本文将邮件从结构上分割成邮件头和邮件体两部 分 ,再从邮件体中分割出附件和纯文本部分 ,最后将纯 文本部分分割成正文、邮件回复和广告行 3部分 ,这种 分块处理的方法既加快了邮件预处理的速度 ,又保证 了正文提取的准确性。   通过以上分析 ,笔者提出如图 1所示的电子邮件 预处理系统的任务模型 ,本文根据该任务模型展开 研究。 图 1 电子邮件预处理系统的任务模型   下面介绍邮件预处理系统中几个关键性问题的处 理方法 :   ( 1)邮件头信息的提取   由于邮件头和邮件体两部分之间是由一个空白行 来分隔的 ,因此可以利用这一特征来对邮件头和邮件 体进行分割 ,然后对邮件头进行结构和语法分析 ,提取 发信人、收信人、日期、主题等有用的字段信息。这些 字段分别存放在 From、To、Data和 Subject等字段中。   ( 2)邮件体中 Text/Pla in分段信息的判断   首先判断 Content - Type给出的邮件类型 ,如果为 Text/Plain类型 ,那么邮件为纯文本邮件 ,按照分割邮 件头和邮件体的方法 ,提取出来邮件体的内容。目前 人们接收到的电子邮件往往是由多部分组成 ,除包括 基本的正文信息外 ,还存在图像、声音等多媒体信息。 邮件通过 Multipart类型将内容分隔成不同的段 ,各段 之间的边界标识由对应 Multipart类型的 Boundary属 性定义。可以利用 Content - Type给出的边界标识提 取出邮件中的分段信息 ,从而获得所需要的内容。   ( 3)邮件体中附件的处理   邮件中的附件信息由对应的 Content - Type字段、 Content - Transfer - Encoding字段、Content - D isposition 字段和 Multipart /M ixed类型定义。前 3个字段定义附 件的类型、名称和编码方式 , Multipart /M ixed则定义附 件同邮件内容的分段标识。附件处理的具体方法是 : 首先判断 Content - D isposition字段或 Content - Type字 段中是否有给定的文件名 ,这个文件名一般由参数 Name或参数 Filename来确定 ;然后将从邮件原文中提 取出的附件信息 ,根据附件采用的编码类型进行解码 , 最后将解码后的内容存入到以原文件名命名的文件 中 ,当作附件来处理。   ( 4)邮件正文中回复行和广告行的提取   在文本处理中 ,需要将获得的文本表示成向量空 间模型 ,文本的内容越少 ,其空间的维数就越低 ,处理 速度就越快。因此要对提取出来的邮件内容进行精 简 ,即去掉回复行和广告行部分。本文采用基于 V itor R. Carvalho特征识别的方法将每封邮件看成是由若干 个序列行组成 ,每一个序列行又被看成是一组特征的 集合。通过寻找邮件的最后 N行是否存在如表 1所示 的特征或从上下行推出的特征来对回复行和广告行内 容进行判断 ,从而过滤掉这些无用信息。 总第 164期  2008年  第 5期 © 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 88     现代图书情报技术   下面给出利用 C + +语言从邮件中提取相关信息 的关键代码 :   CString str;   CString str1, str2, str3, str4;   str = " " ;   while ( ! feof( fp) )    {     ch = fgetc ( fp) ;     str + = ch;     fl + = 1;    }   fclose ( fp) ;   CString temp;   temp. Format( " % d" , fl) ;   str1 = str. M id ( str. Find ( " < " , str. Find ( " From " ) ) , str. Find ( " > " , str. Find ( " From: " ) ) - str. Find ( " < " , str. Find ( " From" ) ) + 1) ; / / str1存储发件人内容   str2 = str. M id ( str. Find ( " To: " ) + sizeof ( " To: " ) , str. Find ( " \ r \n" , str. Find ( " To: " ) ) - str. Find ( " To" ) - sizeof ( " To: " ) ) ;   if ( str2. Find ( " < " ) ! = - 1)   str22 = str2. M id ( str2. Find ( " < " ) , str2. Find ( " > " ) - str2. Find ( " < " ) + 1) ;   str2 = str22;    / / str2存储收件人内容   str3 = str. M id ( str. Find ( " Subject: " ) + sizeof ( " Subject: " ) , str. Find ( " \ n" , str. Find ( " Subject" ) ) - str. Find ( " Sub2 ject: " ) - sizeof( " Subject: " ) ) ;    / / str3存放主题内容   ⋯⋯ 4 实验结果与分析   基于 M IME结构的邮件预处理系统是以 Borland 公司的 C + + Builder 6. 0为开发平台 ,并运行在 W in2 dows NT/2000平台之上。为了验证该系统对邮件内容 提取的效果 ,对实际生活中利用 Outlook Exp ress收到 的 158封电子邮件按照本文提出的方法进行预处理 , 其中有 42封邮件被标记为含有附件。实验结果如表 2 所示 : 表 2 邮件预处理系统测试结果 处理的邮件数 未能正确提取的邮件数 准确率 邮件头信息 158 0 100% 正文内容 158 9 94. 3% 附件 42 0 100%   实验结果表明 ,本文由于采用了对邮件进行分块 处理的方法 ,因此在邮件内容的正确提取方面有了很 大的改进 ,能够有效地提取邮件头信息和附件内容 ,准 确率达到 100%。通过特征识别的方法 ,对回复行和 广告行的特征进行判断 ,能够较为有效地过滤掉这些 无用信息 ,使得正文内容提取的准确率达到 94. 3%。 实验结果显示有 9封邮件未能正确提取出正文的内 容 ,对这 9封邮件进行分析发现 ,其中 3封未能正确过 滤掉回复行 , 6封未能正确过滤掉广告行。错误的原 因主要有两方面 :一是回复行未能正确识别 ,由于这些 邮件中的回复行头部没有明显的标识 ,程序误把回复 行的内容当成了正文内容 ;二是广告行未能正确识别 , 由于正文内容格式与广告行格式相似 ,所以程序误把 正文当成广告被过滤掉。 5 结  语   本文在 RFC822和 M IME标准的基础上 ,设计出一 个邮件内容提取方法 ,并将其应用于电子邮件作者身 份识别系统的预处理。采用对邮件进行分块和特征识 别的方法 ,加快了邮件内容的提取速度 ,并对邮件附 件、回复行以及广告行等无用信息进行了有效过滤。 本系统目前尚处于测试使用阶段 ,由于对回复行和广 告行特征的归纳还不够完善 ,以及在邮件样本上缺乏 多样性 ,所以该系统还需作更进一步的研究。 参考文献 : [ 1 ] 汪晓平 ,钟军. V isual C + +网络通信协议分析与应用实现 [M ]. 北京 :人民邮电出版社 , 2003: 347 - 380. [ 2 ] 张孝祥 ,方立勋. Java邮件开发详解 [M ]. 北京 :电子工业出版 社 , 2007: 64 - 78. [ 3 ] M IME (Multipurpose Internet Mail Extensions) Part One: Mecha2 nism s for Specifying and Describing the Format of Internet Message Bodies[ S]. Nathaniel Borenstein and Ned Freed, 1994. [ 4 ] KFC 822: Standard for ARPA Internet Text Messages [ EB /OL ]. [ 2007 - 09 - 28 ]. http: / /www. ietf. org/ rfc / rfco822. txt? number = 822. [ 5 ] Carvalho V R, Cohen W W. Learning to Extract Signature and Re2 p ly L ines from Email[ EB /OL ]. [ 2007 - 09 - 28 ]. http: / /www. cs. cmu. edu /~wcohen /postscrip t/ email - 2004. pdf. (作者 E - mail: katehu_2001@163. com) 应用实践
/
本文档为【基于MIME邮件结构的邮件内容提取技术的研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索