一种基于文字分布特征的网页正文提取方法技术

技术编号:8300867 阅读:273 留言:0更新日期:2013-02-07 04:25
本发明专利技术涉及一种基于文字分布特征的网页正文提取方法,包括以下步骤:步骤1:将网页HTML代码解析为对应的标签树;步骤2:分析网页文字分布特征,分别计算容器节点和文本节点节点权值;步骤3:后序遍历标签树,取“自身权值”最大的节点,提取其中的文字作为正文。本发明专利技术不需要人工干预,直接从单个网页中提取正文,不需要网页集合以进行学习;对标签依赖较少,能够从包含多个正文部分的网页中提取所有正文,在中英文测试集上都取得较高性能。

【技术实现步骤摘要】

本专利技术涉及一种网页正文提取方法,特别涉及。
技术介绍
当前互联网上的网页可以分为“导航网页”和包含主题信息的“内容网页”,前者主要由指向其它网页的超链接组成,后者通常包含一个或多个主要由非链接文字组成正文部分以及正文周围的噪声文字,噪声文字主要包括正文以外的导航栏、广告、推荐链接、版权声明等文字。从“内容网页”中提取正文对应于从标签树中提取包含所有正文的最小节点。随着互联网的迅速发展,充分利用其上积累的大量数据进行数据挖掘、信息抽取、网页分类等已经成为研究热点,但是网页内包含的噪声数据会产生不利影响,Gibson等在The volume and evolution of web page templates(In Proceedings of WffffJ 05, pages830-839,2005)中的实验表明早在2005年噪声数据已经占整个网页数据的40 50%,且这一比例将继续增长。网页正文提取目的是从网页HTML代码中提取表达网页主题信息的正文文本,可以为基于网页的自然语言处理任务提供有效数据,同时对提高搜索引擎性能、提高移动设备用户体验起到积极作用。业已提出的网页正文提取方法根据解析HTML代码方法的不同可以分为基于模版(template)的方法、基于网页分块(block)的方法、基于标签树解析的方法和基于标记(token)序列的方法。基于模版的方法利用网页之间包含的相同结构提取正文或识别噪声数据,人工指定模版的方法需要大量的工作,无法应用于大规模的网页信息处理;自动提取模版的方法需要一个网页集合以提取模版,且模版一旦更换,需要重新提取,另外,互联网包括很多大小不一的网站,导致模版数量巨大,管理模版成为需要解决的问题。基于网页分块的方法首先将网页解析为不重叠或嵌套的区块,然后利用每个区块的特征进行正文提取,对于此类算法,将网页合理分块本身即是一个较难解决的问题。基于标记序列的方法首先将网页解析为标记序列,然后利用标记序列的分布特征提取正文,此类方法对网页的依赖较小,通用性较强,但是没有充分利用HTML代码的结构特征。基于标签树的方法利用HTML代码自身的嵌套结构将网页解析为标签树,然后结合树节点的统计特征提取正文。随着互联网技术特别是HTML标记语言的发展,很多现有方法无法完成正文提取的任务。例如,越来越多的网页采用层叠样式表(cascading style sheets-CSS)设置网页外观,那些需要读取标签特定属性的方法无法适应此种变化;随着HTML标签的灵活运用,仅考虑特定标签的方法(例如Lin等在S. Lin and J. Ho. Discovering informativecontent blocks from web documents. In Proceedings of SIGKDDj 02,pages 588 -593, 2002.中仅考虑 table 标签,Chen 等在 L. Chen, S. Ye, and X. Li. Template detectionfor large scale search engines. In Proceedings of SAC’06,pages 1094 - 1098, 2006.中仅考虑table、p、ul标签)存在局限性。此外,不同地区,不同语言的网页存在差异,现有大部分方法没有在跨语言测试集上进行测试。
技术实现思路
本专利技术的目的是提供一种自动化和高性能的网页正文提取方法。本专利技术的基本思想是利用HTML代码自身的嵌套结构将网页解析为标签树,树中的每个节点对应网页中的一对标签,节点的层次结构由标签对的嵌套结构决定。例如,图I是某网页的简化的HTML代码,图2为图I中的代码对应的标签树。标签树中的内部节点,对应于HTML代码中具有开始标签和对应的结束标签的标签对,称为容器节点;标签树中的叶子节点,对应于HTML代码中位于标签之间的一段文字,称为文本节点。文字以文本块的形式分布在网页中,由于一个文本块对应于HTML代码中的一对标签,则一个文本块对应标签树中的一个容器节点,正文文本块中的文字多为连续成段出现的非链接文字,而噪声文本块中的文字分布为连续排列的链接文字或以非链接文字 与链接文字交替的形式出现。基于以上事实,首先将HTML代码解析为标签树,文本块的并列与嵌套关系对应于标签树节点的横向兄弟节点关系与纵向父子节点关系;对于树中的每个节点,基于该节点的子节点中文字的分布与该节点同其兄弟节点的文字分布的相互关系,为每个节点计算权值;提取“自身权值”最大的节点内的文字作为网页正文。本专利技术的目的是通过以下技术方案实现的,包括以下步骤步骤I :将网页HTML代码解析为对应的标签树,树中每个节点中保存节点的标签名称、节点编号、指向父节点的指针,每个容器节点还保存指向其所有子节点的指针的集合,每个文本节点中则包括该节点对应的文字,具体方法为一、预处理扫描HTML 代码,去掉〈scriptX/script〉、〈style>〈/style>、<noscript></noscript〉标签对以及这三个标签对之间的代码,去掉〈!——> 标签内的注释、去掉<! doctype〉标签;二、扫描预处理之后的HTML代码,从中提取标签的层次结构,建立网页HTML代码对应的标签树扫描过程中,维护一个由节点组成的线性列表每遇到一个开始标签,对其建立一个节点,节点名称设定为标签名称,并分配节点的编号,编号从I开始分配,每新建一个节点,编号增一作为该节点编号,扫描标签属性,记录其是否可见,若某一节点存在type属性且其值为hidden或存在style属性且其值为display:none或visibility:none则该节点不可见,将新建节点加入线性列表末尾;当遇到一个结束标签时,从线性列表尾部向前扫描寻找第一个与该结束标签同名的节点,将该节点以后的所有节点添加到该节点的子节点集合中,此时,若某节点不可见,则直接将其从列表中删除;对于标签之间的文本,当扫描到一个开始标签或结束标签时,对该标签与前一标签之间的文本建立一个文本节点,分配编号并添加到节点列表中;三、后处理后序遍历标签树,将子节点中不包含文本节点的节点从树中移除。步骤2 :分析网页文字分布特征与计算节点权值对网页文字分布特征的分析如下一个网页通常由多个文本块组成,每个文本块包含特定信息的文字,不同的文本块可能是并列关系或嵌套关系。视觉空间上网页中文本块的并列与嵌套的位置关系对应于标签树结构中节点的横向(同层次特别是具有相同父节点的兄弟节点之间)与纵向(父节点与其子节点之间)关系。直观上,若标签树某个节点中存在连续多个包含非链接文字的子节点,该部分文字成为正文的可能性大,并且文本子节点中包含的句子个数越多,文字越长,该部分文字成为正文的可能性越大。另一方面,标签树中若出现了连续的包含链接文字的节点或者文本节点与链接节点交替的情 况,该部分文字成为噪声文字的可能性大。与此同时,由于网页的复杂性,相反的情况也会出现,例如,正文中可能包含特定词语的超链接;而且,某些网页中存在的免责声明属于噪声文字,但是却符合正文特征。由于此类情况的存在,直接判断一个节点是否为本文档来自技高网
...

【技术保护点】
一种基于文字分布特征的网页正文提取方法,包括以下步骤:步骤1:将网页HTML代码解析为对应的标签树,树中每个节点中保存节点的标签名称、节点编号、指向父节点的指针,每个容器节点还保存指向其所有子节点的指针的集合,每个文本节点中则包括该节点对应的文字,具体方法为:一、预处理:扫描HTML代码,去掉、、标签对以及这三个标签对之间的代码,去掉标签内的注释、去掉标签;二、扫描预处理之后的HTML代码,从中提取标签的层次结构,建立网页HTML代码对应的标签树:扫描过程中,维护一个由节点组成的线性列表:每遇到一个开始标签,对其建立一个节点,节点名称设定为标签名称,并分配节点的编号,编号从1开始分配,每新建一个节点,编号增一作为该节点编号,扫描标签属性,记录其是否可见,若某一节点存在type属性且其值为hidden或存在style属性且其值为display:none或visibility:none则该节点不可见,将新建节点加入线性列表末尾;当遇到一个结束标签时,从线性列表尾部向前扫描寻找第一个与该结束标签同名的节点,将该节点以后的所有节点添加到该节点的子节点集合中,此时,若某节点不可见,则直接将其从列表中删除;对于标签之间的文本,当扫描到一个开始标签或结束标签时,对该标签与前一标签之间的文本建立一个文本节点,分配编号并添加到节点列表中;三、后处理:后序遍历标签树,将子节点中不包含文本节点的节点从树中移除。步骤2:计算节点权值:一、按照以下公式(1)计算容器节点i的权值:在式(1)中,节点i的权值由两部分组成:第一部分为该节点的“自身权值”,取决于该节点的子节点中文字的分布情况,数值上等于该节点所有子节点权值的和;第二部分为该节点的“附加权值”,表示所有兄弟节点对该节点权值的影响;在式(1)第一部分中,C为节点i的直接子节点集合;在第二部分中,N为节点i的兄弟节点集合,W(n)“为节点n的自身权值,ID(i)为节点i在标签树中的编号,某一节点权值对其它节点权值的影响按照高斯分布N(0,σ2)计算,在此条件下,距该节点越近的节点对其影响越大;为防止过度平滑,规定若节点“附加权值”的绝对值大于该节点“自身权值”的绝对值,“附加权值”符号不变但绝对值设置为该节点“自身权值”的绝对值;二、按照以下公式(2)计算文本节点j的权值:W(j)=Σs∈S(Σl∈L12πσ1e-(ID(s)-ID(l))22σ12W(l)+W(s))+α*Σn∈N12πσ2e-(ID(j)-ID(n))22σ22W(n)′---(2)在式(2)中,文本节点j的权值由两部分组成:第一部分为该节点的“自身权值”,取决于该节点包含的文字的分布,第二部分为该节点的“附加权值”,表示所有兄弟节点对该节点权值的影响;在式(2)第一部分中,S表示节点j内包含的句子的集合,L表示某个句子s相邻的句子集合,即S中除s以外的句子集合,W(s)和W(l)表示每个句子自身的权值,该权值绝对值等于句子内包含的文字的个数,ID表示句子在段落中的序号,段落某一句子权值对其它句子权值的影响按照高斯分布N(0,σ12)计算;在第二部分中,N为节点j的兄弟节点集合,W(n)“为节点n的自身权值,ID(j)为节点j在标签树中的编号,某一节点权值对其它节点权值的影响按照高斯分布N(0,σ22)计算;将每个文本节点中的文字段落划分成句子,每个句子长度为句子内中文字符个数、英文单词个数、数字个数之和,为区别不同文字在计算权值时的不同作用,对于链接文字,句子的自身权值等于句子长度,对于链接文字和用户交互节点内的文字,句子的自身权值等于句子长度的相反数;在式(1)和式(2)中,对于非链接文字以及权值为正的节点,σ(σ1、σ2)取经验值1;对于链接文字、用户交互节点内的文字以及权值为负的节点,σ(σ1、σ2)取经验值0.5;α为比例因子,取经验值10;节点权值的取值范围为实数域R,按照定义,权值越大,节点包含的文字成为正文的可能性越大;权值越小,节点包含噪声文字的可能性越大;三、后序遍历标签树,对每个节点按照上述模型与公式计算权值,并记录自身权值最大的节点;步骤3:后序遍历标签树,取“自身权值”最大的节点,提取其中的文字作为正文。FDA00002271153200021.jpg...

【技术特征摘要】

【专利技术属性】
技术研发人员:袁武林子涵袁文
申请(专利权)人:北京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1