美章网 资料文库 行文本统计去噪网页文本抽取方法范文

行文本统计去噪网页文本抽取方法范文

本站小编为你精心准备了行文本统计去噪网页文本抽取方法参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

行文本统计去噪网页文本抽取方法

随着网络技术的发展,尤其是Web2.0时代的到来,Web已成为一个巨大的知识宝库,如何挖掘和理解Web中的海量数据,如何在Web海洋中快速找到人们所需的信息已成为当前研究的一个热点。目前,互联网中大部分信息都存储在半结构化的网页里,而网页通常含有一些与正文信息无关的广告信息、导航链接信息以及版权信息等,这些信息通常也被称为噪声信息。噪声信息的存在是导致网页正文提取准确率不高的一个重要原因,因此识别和清除网页中存在的噪声文本是提高网页文本采集效果的一个关键技术。由于不同网站的模板和结构有所不同,实现一种有效、通用及实现简单的网页正文信息自动抽取技术显得尤为重要。目前国内外学者对Web信息的抽取工作已经做了大量的研究,所提出的方法中主要包括基于模板的方法[1]、基于学习的方法[2-5]、基于网页内容分块的方法[6-7]和基于统计的方法[8-10]等。文献[1]通过自动抽取同类网页的Wrapper来对同类网页进行自动抽取。文献[2]通过将网页文本按照其显示属性的不同进行分组,以显示属性值为基础对Web页面文本进行分类。文献[3]将相似度高的网页归为一类,依据每类网页训练得到的网页模板对未知网页的内容进行提取,该方法适用于网页结构相似度较高的网络文献的提取,而无法适用于结构不同的Web网页的信息提取。文献[4-5]提出利用某些学习方法来识别广告冗余及不相关信息,但是这些技术都不是自动化的操作,需要大量手工标记训练数据和领域知识。文献[6]通过计算页面集中每个属性的信息熵,依据熵值将一个网页划分为内容块和噪声块,该方法虽然可以发现和区分出同一个站点中页面的内容信息和噪声信息,但对不同的模板的不同网站需要设置不同的最优阈值。文献[7]将HTML网页分为不同的文本内容块,然后通过分析块重要度和块特征来辨别出含有正文的内容块,在识别噪声信息如导航栏、网站目录等信息时采用通过敏感词过滤及广告地址过滤等方法,具有一定的局限性。文献[8-9]所提出的方法实现简单、通用性好,但存在以下缺点:(1)只考虑了table节点;(2)当某些网页所包含的正文信息很短时,因为信息量较少,所包含的正文节点往往会被过滤掉。文献[10]通过统计中文句号确定部分正文信息,然后根据正文信息在结构上的相似性确定其他正文信息的内容。该方法在某些正文信息较少的网页中,可能会将噪声判定为代表结构的正文信息,从而无法提取出真正的正文。本文在前人工作的基础上,结合对HTML网页性质的观察和分析,实现了一种基于DOM树及行文本统计去噪的网页文本抽取方法,该方法克服了文献[8-10]中所提出方法的不足,不仅可以提取正文文本较多的网页正文,同时还能够较好地提取正文内容较少的网页正文。为了验证本文提出方法的有效性,文章对来源不同的10个中英文网站的2000个新闻网页进行了抽取实验,实验结果表明本文提出的方法确实提升了网页信息提取的准确度,并能适用于不同结构网站的网页信息的全自动提取。

1网页标准化及DOM树生成

目前互联网中大多数网页仍然使用HTML格式,HTML语言是一种标识语言(MarkupLan-guage),它定义了一套标签来刻画网页显示时的页面布局。在HTML格式的网页中,存在标签不匹配、嵌套混乱及标签格式不规范等情况,如有〈title〉标签,而没有对应的〈/title〉标签,这种不规范有时不会对网页的正常显示有影响,但不便于正文信息的抽取,为此首先应对HTML代码进行预处理,将其标准化。本文采用W3C组织推荐的工具集HT-MLTidy[11]来将书写不规范的HTML文档转换成格式良好的XHTML文档(XML的子集)。对HT-ML网页规范化的过程主要包括如下步骤:(1)统一网页的编码形式,将编码为GBK、GB2312、UTF-8等不同格式的网页统一转换成UTF-8字符集编码格式;(2)使用开源工具HTMLTidy转化网页为标准化的XHTML文档;(3)用正则表达式替换可能引起错误和干扰的字符,如将HTML源码中的“&nbsp”以空串替换,将HTML标签格式〈strong〉〈/strong〉、〈font〉〈/font〉、〈p〉〈/p〉以空串替换等;(4)通过在网页的头部添加标准的XML声明〈?xmlversion=“1.0”encoding=“UTF-8”〉,将标准化后的HTML文档转化为XML文件;(5)用C++的Tinyxml库把标准化后的XML网页源码解析成一棵DOM树;(6)将DOM(documentobjectmodel)树中与正文提取无关的节点信息删除,这些节点包括style、script、img、〈!--〉、iframe、object、meta、applet、link、doc等。其中DOM是一种以面向对象方式描述的文档模型,它定义了表示和修改文档所需的对象,这些对象的行为和属性以及这些对象之间的关系。DOM树将整个页面映射为一个由层次节点组成的树形结构,其典型结构如图1所示。

2网页正文内容提取

2.1基于标点符号统计提取正文内容通过对网页源码的分析发现,网页中包含文字的节点通常分为两类:一类是包含有标点符号的文字节点,这类节点大多数是正文节点和某些版权信息节点;另一类是不包含标点符号的文字节点,这类节点通常是导航或广告链接节点。文献[10]统计发现约有96%的中文句号出现在网页正文中,是所有中文标点符号中分布最多的。该文将句号作为网页正文区别于其他部分的特征。考虑到中文句号对英文网页的不适用性,以及在某些网页的正文中只有感叹号而无句号等其他情况,本文将中英文句号、逗号、感叹号、中括号等标点符号作为区分网页正文与其他部分的特征。设文本节点element={c1,c2,…,cn},ci(i=1,…,n)为组成该文本节点的字符,这些字符包括中文汉字、英文字母和中英文标点。为了体现标点符号特征明显的文本为正文内容这一思想,通常是定义满足条件文本节点element的标点符号个数文本节点element的所有字符总数>p的文本节点内容为网页正文内容,这样处理将使得阈值的设置相当困难。由于不同网页的正文内容差别很大,有些正文的标点符号多,有些正文的标点符号少,有些正文虽然很长,但是一共就几个句子,所以标点符号的比值非常小,此时如果阈值p取得太大,则无法将正文取出。反之为了能够将长短不同的网页的正文都能取出,将阈值p设定得太小,就会将更多的噪声选择进来。考虑到网页正文部分文字较多而标点符号相对较少的特点,本文的处理方法是将标点符号比值落在区间[0,p]之间的节点文本取出作为网页正文内容,这样做可以确保所有网页的正文都能够被提取出来,不会被噪声所淹没。本文随机提取了10个不同网站的2000篇网页,设定p值在0.01到0.9之间(间隔刻度为0.01)来提取正文,结果显示当p值设定在0.3以下时能够对所有网页全部提取正文。同时由于网页中某些版权等信息也有可能是比较长的文本信息,并且也包含一定的标点符号,如腾讯网中的噪声文本“如果你对新闻频道有任何意见或建议,请到交流平台反馈。”和新浪网中的噪声文本“┊Copyright?1996-2011SINACorporation,AllRightsReserved新浪公司”中均含有一定比例的标点符号,这些噪声数据也会被同时提取出来作为正文内容。通过对网页的详细分析发现,相同网站的网页的噪声信息是基本相同的,如具有相同的广告信息,具有相同的版权信息等,同时这些信息一般均会出现在不同行上。基于这个特点,我们提出在初始构建DOM树并提取含有部分噪声的正文内容的基础上,使用MD5编码技术统计行文本信息,将视为噪声的行文本从已提取的正文中删除。

2.2行文本统计去噪信息摘要MD(messagedigest)是根据公开的MD5算法对原信息进行数学变换后得到的一个128位的特征码,依据特征码的惟一性和不可逆性,MD5编码值可以惟一地代表原信息的特征。行文本统计去噪的过程是,首先将节2.1提取出的正文内容依据换行标志‘\n’划分为行文本集,然后计算每个行文本的MD5编码,并维持一个行编码表,对正文的每一行进行统计并检索MD5编码表,当行文本频繁出现时,判定该行文本为噪声信息,将其从正文部分删除。行文本统计去噪算法的详细描述如下:(1)读入一篇含有噪声的网页正文文本Text;(2)按照换行标志‘/n’划分网页正文文本Text得到行文本集D={t1,t2,…,tn},其中ti(i=1,2,…,n)为行文本;(3)fori=1tondo(4)计算ti的MD5编码并查找MD5编码表;(5)如果编码表为空,则在编码表中插入一条新记录,该记录的LC值设为1;(6)如果编码表不空且找到ti的相同编码值,则将编码表中该记录的LC值加1;(7)判断ti的LC值,如果满足LC≤int1+RC()L,则保留ti,否则认为ti是噪声,将ti从当前网页正文Text中删除;(8)endfor(9)成功处理网页的数量RC加1,转入(1)继续下一篇网页正文的处理。算法中的参数LC代表某文本行总共出现的次数,RC代表当前已经成功处理多少篇文章,L表示每处理多少篇文章允许行文本噪声增加一行的范围。通常随着处理新闻网页数量的增加,部分行文本重复的概率就会增加,因此需要设定一定的范围来判定该行文本是否是噪声。本文设置L为50,即处理文章个数在50篇以内,允许判定为噪声的行文本重复次数为2,当处理文章个数为100时,允许判定为噪声的行文本重复次数为3,依此类推。算法中随着处理文章的增多,行文本记录在数据库中会急剧增加,这会导致查询数据库的效率降低。事实上,某些属于正文的行文本的重复出现次数会很低,这些行文本应该需要从行文本数据库中删除。本文的处理方法是当行文本的重复次数小于成功处理总得文章个数的1%时,即LC≤RC100时,将该类行文本记录从行文本数据库中删除。这样随着采集到的新闻数量的增多,行文本数据库的大小基本维持在一个恒定的大小。为了验证本文算法思想的正确性,作者对10个网站均分别自动抽取1万个网页的正文,实验结果显示同类网站的广告链接信息、版权信息等出现的次数比较频繁。表1展示了部分网站中出现的频繁度行文本信息。依据噪声数据高频繁度出现的特点可以去除很多文本信息中的干扰因素,获取准确率较高的正文内容。

3实验结果

本文对来自主流和非主流及结构完全不同的9个中文网站和一个英文网站中一共抽取了2000个网页作为测试数据,采用基于标点符号统计及结合行文本统计去噪的算法对这2000个网页的正文进行提取,提取结果如表2所示。从表2统计结果可以看出,本文提出的方法在不同网站的新闻网页上抽取的结果最高为100%,最低达到93%,平均准确率达到96.8%。通过分析发现,对于某些广告噪声较多的网站如news.sina.com.cn,new.qq.com等,本文方法的优势更为明显。由于本文提取的新闻网页全部来自不同的网站,并且所提取的准确率差别不大,这证明本文提出的方法具有很强的通用性,能够适用于不同结构的网站新闻文本信息的提取。通过对抽取出错的网页进行分析发现,抽取错误的主要因素为以下几点:(1)〈span〉、〈h〉等修饰标签过多的网站提取结果会丢失部分正文,原因是所使用的C++的TidyHt-ml库在规范html源码的时候存在着一些不足,它在处理大块有着相同标签的源码的时候会误删一部分标签;(2)由于基于行文本统计的去噪需要一个学习的过程,所以在初始的几个网页处理效果不明显,会包含一些错误的链接信息。图2为采集到的来自不同网站新闻网页的语料数据库的部分截图。

4总结

本文在改进基于标点符号统计的网页文本信息抽取方法的基础上,引入了基于行文本统计去噪的方法,得到了效果较好的网页文本信息提取结果。从来自不同网站的中英文新闻网页的提取结果看,所提出的方法具有较高的准确率,并且实现方法简单,具有很强的通用性。该方法已经被用于作者研究的网络舆情分析原型系统的新闻网页语料的采集系统中,进一步的研究工作是对采集新闻相对应的评论做进一步的提取。