CN102915361A - 一种基于文字分布特征的网页正文提取方法 - Google Patents
一种基于文字分布特征的网页正文提取方法 Download PDFInfo
- Publication number
- CN102915361A CN102915361A CN2012103972400A CN201210397240A CN102915361A CN 102915361 A CN102915361 A CN 102915361A CN 2012103972400 A CN2012103972400 A CN 2012103972400A CN 201210397240 A CN201210397240 A CN 201210397240A CN 102915361 A CN102915361 A CN 102915361A
- Authority
- CN
- China
- Prior art keywords
- node
- weights
- text
- sentence
- literal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于文字分布特征的网页正文提取方法,包括以下步骤:步骤1:将网页HTML代码解析为对应的标签树;步骤2:分析网页文字分布特征,分别计算容器节点和文本节点节点权值;步骤3:后序遍历标签树,取“自身权值”最大的节点,提取其中的文字作为正文。本发明不需要人工干预,直接从单个网页中提取正文,不需要网页集合以进行学习;对标签依赖较少,能够从包含多个正文部分的网页中提取所有正文,在中英文测试集上都取得较高性能。
Description
技术领域
本发明涉及一种网页正文提取方法,特别涉及一种基于文字分布特征的网页正文提取方法。
背景技术
当前互联网上的网页可以分为“导航网页”和包含主题信息的“内容网页”,前者主要由指向其它网页的超链接组成,后者通常包含一个或多个主要由非链接文字组成正文部分以及正文周围的噪声文字,噪声文字主要包括正文以外的导航栏、广告、推荐链接、版权声明等文字。从“内容网页”中提取正文对应于从标签树中提取包含所有正文的最小节点。
随着互联网的迅速发展,充分利用其上积累的大量数据进行数据挖掘、信息抽取、网页分类等已经成为研究热点,但是网页内包含的噪声数据会产生不利影响,Gibson等在The volume and evolution of web page templates(InProceedings of WWW’05,pages 830-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 informative content blocks from web documents.In Proceedings ofSIGKDD’02,pages 588–593,2002.中仅考虑table标签,Chen等在L.Chen,S.Ye,and X.Li.Template detection for large scale search engines.In Proceedings ofSAC’06,pages 1094–1098,2006.中仅考虑table、p、ul标签)存在局限性。此外,不同地区,不同语言的网页存在差异,现有大部分方法没有在跨语言测试集上进行测试。
发明内容
本发明的目的是提供一种自动化和高性能的网页正文提取方法。
本发明的基本思想是:利用HTML代码自身的嵌套结构将网页解析为标签树,树中的每个节点对应网页中的一对标签,节点的层次结构由标签对的嵌套结构决定。例如,图1是某网页的简化的HTML代码,图2为图1中的代码对应的标签树。标签树中的内部节点,对应于HTML代码中具有开始标签和对应的结束标签的标签对,称为容器节点;标签树中的叶子节点,对应于HTML代码中位于标签之间的一段文字,称为文本节点。文字以文本块的形式分布在网页中,由于一个文本块对应于HTML代码中的一对标签,则一个文本块对应标签树中的一个容器节点,正文文本块中的文字多为连续成段出现的非链接文字,而噪声文本块中的文字分布为连续排列的链接文字或以非链接文字与链接文字交替的形式出现。基于以上事实,首先将HTML代码解析为标签树,文本块的并列与嵌套关系对应于标签树节点的横向兄弟节点关系与纵向父子节点关系;对于树中的每个节点,基于该节点的子节点中文字的分布与该节点同其兄弟节点的文字分布的相互关系,为每个节点计算权值;提取“自身权值”最大的节点内的文字作为网页正文。
本发明的目的是通过以下技术方案实现的:
一种基于文字分布特征的网页正文提取方法,包括以下步骤:
步骤1:将网页HTML代码解析为对应的标签树,树中每个节点中保存节点的标签名称、节点编号、指向父节点的指针,每个容器节点还保存指向其所有子节点的指针的集合,每个文本节点中则包括该节点对应的文字,具体方法为:
一、预处理:
扫描HTML代码,去掉<script></script>、<style></style>、<noscript></noscript>标签对以及这三个标签对之间的代码,去掉<!---->标签内的注释、去掉<!doctype>标签;
二、扫描预处理之后的HTML代码,从中提取标签的层次结构,建立网页HTML代码对应的标签树:
扫描过程中,维护一个由节点组成的线性列表:每遇到一个开始标签,对其建立一个节点,节点名称设定为标签名称,并分配节点的编号,编号从1开始分配,每新建一个节点,编号增一作为该节点编号,扫描标签属性,记录其是否可见,若某一节点存在type属性且其值为hidden或存在style属性且其值为display:none或visibility:none则该节点不可见,将新建节点加入线性列表末尾;当遇到一个结束标签时,从线性列表尾部向前扫描寻找第一个与该结束标签同名的节点,将该节点以后的所有节点添加到该节点的子节点集合中,此时,若某节点不可见,则直接将其从列表中删除;对于标签之间的文本,当扫描到一个开始标签或结束标签时,对该标签与前一标签之间的文本建立一个文本节点,分配编号并添加到节点列表中;
三、后处理:后序遍历标签树,将子节点中不包含文本节点的节点从树中移除。
步骤2:分析网页文字分布特征与计算节点权值:
对网页文字分布特征的分析如下:
一个网页通常由多个文本块组成,每个文本块包含特定信息的文字,不同的文本块可能是并列关系或嵌套关系。视觉空间上网页中文本块的并列与嵌套的位置关系对应于标签树结构中节点的横向(同层次特别是具有相同父节点的兄弟节点之间)与纵向(父节点与其子节点之间)关系。
直观上,若标签树某个节点中存在连续多个包含非链接文字的子节点,该部分文字成为正文的可能性大,并且文本子节点中包含的句子个数越多,文字越长,该部分文字成为正文的可能性越大。另一方面,标签树中若出现了连续的包含链接文字的节点或者文本节点与链接节点交替的情况,该部分文字成为噪声文字的可能性大。与此同时,由于网页的复杂性,相反的情况也会出现,例如,正文中可能包含特定词语的超链接;而且,某些网页中存在的免责声明属于噪声文字,但是却符合正文特征。由于此类情况的存在,直接判断一个节点是否为正文节点的方法存在一定的局限性,解决这一问题的一种途径是考虑节点周围文字的整体分布情况,即在计算节点权值过程中同时考虑节点内部的文字分布与节点的兄弟节点的文字分布对该节点的影响。节点内部的文字分布由节点内子节点文字分布决定,表现为文字的纵向分布特征,兄弟节点对某节点的影响则表现为文字的横向分布特征,若一段链接文字周围都是非链接文字,则该段链接文字成为正文的可能性会增大,反之亦然。为区分非链接文字与链接文字的不同作用,在计算过程中非链接文字权值取正值,链接文字以及用户交互标签对应节点内的文字权值取负值。用户交互标签指名称为select、option、textarea、optgroup、menu、label、input、button、applet的标签。
理论上,在信号处理中输出函数是输入函数与系统函数的卷积,卷积运算中系统的响应不仅与当前时刻系统的输入有关,也跟之前若干时刻的输入有关。将这一理论从时间角度对应到标签树的空间结构上,标签树中节点的权值不仅取决于其包含的文字的分布,还受与其相邻的节点的影响;与信号随时间衰减这一特性对应,节点权值对其它节点权值的影响应随节点之间距离的增大而减小。同时,卷积运算起到了数据平滑的作用,由于考虑了节点之间的相关性,那些属于正文的链接文字的权值将得到提升,从而可以被正确抽取为正文。
因此,本发明使用下列公式表示网页文字分布特征:
一、按照以下公式(1)计算容器节点i的权值:
在式(1)中,节点i的权值由两部分组成:第一部分为该节点的“自身权值”,取决于该节点的子节点中文字的分布情况,数值上等于该节点所有子节点权值的和;第二部分为该节点的“附加权值”,表示所有兄弟节点对该节点权值的影响;
在式(1)第一部分中,C为节点i的直接子节点集合;在第二部分中,N为节点i的兄弟节点集合,W(n)'为节点n的自身权值,ID(i)为节点i在标签树中的编号,某一节点权值对其它节点权值的影响按照高斯分布N(0,σ2)计算,在此条件下,距该节点越近的节点对其影响越大;为防止过度平滑,规定若节点“附加权值”的绝对值大于该节点“自身权值”的绝对值,“附加权值”符号不变但绝对值设置为该节点“自身权值”的绝对值(如式(1)的第2行与第3行所示)。
二、按照以下公式(2)计算文本节点j的权值:
在式(2)中,文本节点j的权值由两部分组成:第一部分为该节点的“自身权值”,取决于该节点包含的文字的分布,第二部分为该节点的“附加权值”,表示所有兄弟节点对该节点权值的影响;
在式(2)第一部分中,S表示节点j内包含的句子的集合,L表示某个句子s相邻的句子集合,即S中除s以外的句子集合,W(s)和W(l)表示每个句子自身的权值,该权值绝对值等于句子内包含的文字的个数,ID表示句子在段落中的序号,段落某一句子权值对其它句子权值的影响按照高斯分布N(0,σ1 2)计算;在第二部分中,N为节点j的兄弟节点集合,W(n)'为节点n的自身权值,ID(j)为节点j在标签树中的编号,某一节点权值对其它节点权值的影响按照高斯分布N(0,σ2 2)计算。
将每个文本节点中的文字段落划分成句子,每个句子长度为句子内中文字符个数、英文单词个数、数字个数之和,为区别不同文字在计算权值时的不同作用,对于链接文字,句子的自身权值等于句子长度,对于链接文字和用户交互节点内的文字,句子的自身权值等于句子长度的相反数;
在式(1)和式(2)中,对于非链接文字以及权值为正的节点,σ(σ1、σ2)取经验值1;对于链接文字、用户交互节点内的文字以及权值为负的节点,σ(σ1、σ2)取经验值0.5;α为比例因子,取经验值10;节点权值的取值范围为实数域R,按照定义,权值越大,节点包含的文字成为正文的可能性越大;权值越小,节点包含噪声文字的可能性越大。
三、后序遍历标签树,对每个节点按照上述模型与公式计算权值,并记录自身权值最大的节点;
步骤3:后序遍历标签树,取“自身权值”最大的节点,提取其中的文字作为正文。
有益效果
本发明利用标签树这种自然且直观的数据结构来表示网页,根据网页内文字分布特征从网页对应的标签树中提取包括所有正文的最小节点。本方法不需要人工干预,直接从单个网页中提取正文,不需要网页集合以进行学习;对标签依赖较少,仅需识别不可见的标签以及用户交互标签,且这两类标签并非网页主体,对性能影响较小;能够从包含多个正文部分的网页中提取所有正文,在中英文测试集上都取得较高性能。
附图说明
图1为某网页的简化的HTML代码。
图2为图1中的代码对应的标签树。
具体实施方式
下面结合附图,具体说明本发明的优选实施方式。
本实施方式实现了一种基于文字分布特征的网页正文提取方法,包括以下步骤:
步骤1:将网页HTML代码解析为对应的标签树,树中每个节点中保存节点的标签名称、节点编号、指向父节点的指针,每个容器节点还保存指向其所有子节点的指针的集合,每个文本节点中则包括该节点对应的文字,具体方法为:
一、预处理:
扫描HTML代码,去掉<script></script>、<style></style>、<noscript></noscript>标签对以及这三个标签对之间的代码,去掉<!---->标签内的注释、去掉<!doctype>标签;
二、扫描预处理之后的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)计算,在此条件下,距该节点越近的节点对其影响越大。为防止过度平滑,规定若节点“附加权值”的绝对值大于该节点“自身权值”的绝对值,“附加权值”符号不变但绝对值设置为该节点“自身权值”的绝对值(如式(1)的第2行与第3行所示)。
二、按照以下公式(2)计算文本节点j的权值:
在式(2)中,文本节点j的权值由两部分组成:第一部分为该节点的“自身权值”,取决于该节点包含的文字的分布,第二部分为该节点的“附加权值”,表示所有兄弟节点对该节点权值的影响;
在式(2)第一部分中,S表示节点j内包含的句子的集合,W(s)和W(l)表示每个句子自身的权值,该权值绝对值等于句子内包含的文字的个数,L表示某个句子s相邻的句子集合,即S中除s以外的句子集合,ID表示句子在段落中的序号,段落某一句子权值对其它句子权值的影响按照高斯分布N(0,σ1 2)计算。在第二部分中,N为节点j的兄弟节点集合,W(n)'为节点n的自身权值,ID(j)为节点j在标签树中的编号,某一节点权值对其它节点权值的影响按照高斯分布N(0,σ2 2)计算。
将每个文本节点中的文字段落划分成句子,每个句子长度为句子内中文字符个数、英文单词个数、数字个数之和,为区别不同文字在计算权值时的不同作用,对于链接文字,句子的自身权值等于句子长度,对于链接文字和用户交互节点内的文字,句子的自身权值等于句子长度的相反数。
在式(1)和式(2)中,对于非链接文字以及权值为正的节点,σ(σ1、σ2)取经验值1;对于链接文字、用户交互节点内的文字以及权值为负的节点,σ(σ1、σ2)取经验值0.5;α为比例因子,取经验值10;节点权值的取值范围为实数域R,按照定义,权值越大,节点包含的文字成为正文的可能性越大;权值越小,节点包含噪声文字的可能性越大。
三、后序遍历标签树,对每个节点按照上述模型与公式计算权值,并记录自身权值最大的节点;
步骤3:后序遍历标签树,取“自身权值”最大的节点,提取其中的文字作为正文。
为验证本方法的有效性和通用性,在三个测试集上分别运行了本方法——记为TDMW(Text Distribution-MaxWeight)和基于文本密度的正文提取算法(content extraction via text density-CETD)。CETD是F.Sun,D.Song,and L.Liao在【Dom based content extraction via text density.In Proceedings of SIGIR’11,pages 245–254,2011.】中提出的算法,是目前被认为性能很好的一种方法。CETD算法中使用文本密度(text density)衡量节点重要程度。该算法中,计算每个节点包含的文字长度、标签个数、链接文字长度、链接标签个数,文本密度由上述特征的组合比例确定,节点的最终权值由其子节点的密度和确定。作者还提出了利用网页自身特征确定阈值的启发式方法,但是密度和这一衡量标准趋于提取包含子节点较多的节点,即算法趋于获得较高的召回率。本发明提出的方法同样首先将HTML代码解析为标签树,但在解析过程的细节上与CETD不同;计算节点权值时,CETD中的文本密度属于比例算法,密度和只是简单地将节点的文本密度相加,权值取值范围为非负实数域,而本发明提出的方法仅考虑文字长度,模型中的权值包括自身权值和附加权值两部分,属于加权累加算法,且文字根据其成为正文的可能性在计算权值时有正负之分,权值取值范围为实数域。
用于验证的三个测试集合分别为:
(1)CleanEval测试集:该测试集分为两个子集合:CleanEval-en子集合包括934个英文网页,CleanEval-zh子集合包括966个中文网页。CleanEval测试集中包括多种类型的网页,例如个人网页、新闻网页、论坛网页、商品信息网页等,且网页来源多样,能充分检验算法的通用性。
(2)EN-700测试集:该测试集取自Dom based content extraction via text density.(In Proceedings of SIGIR’11,pages 245-254,2011.),由Big 5和Chaos两个部分组成,共包括700个英文网页。其中Big 5包括Ars Technica、BBC、Yahoo!英文、New York Times、Wikipedia5个网站每个网站各100个网页,Chaos由从Google News、一些知名博客平台中随机抽取的200个网页组成。
(3)ZH-700测试集:为检验TDMW在中文网页上的性能,构建了ZH-700测试集。类似于EN-700,ZH-700也由Big 5和Chaos两个部分组成,Big 5由取自Ifeng、People、QQ、Sina、Yahoo !中文5个网站每个网站各100个中文网页组成,Chaos由从访问量较大的网站随机爬取的200个中文网页组成。
采用信息抽取(information extraction)领域通用的评价标准衡量算法性能。评价指标包括:准确率P、召回率R以及F值,分别定义如下:
准确率:P=Lec/Le (3)
召回率:R=Lec/Lc (4)
F=2*P*R/(P+R) (5)
式(3)~式(5)中,Le为算法抽取到的文本长度,Lc为网页实际正文的长度,Lec为抽取到的文本中包含的网页正文的长度。其中,文本长度定义为文本中的汉字个数、英文单词个数、数字个数之和。
算法在三个测试集上的运行结果如表1~表7所示。
表1算法在CleanEval测试集上的性能
表2算法在EN-700测试集上的准确率
Ars Technica | BBC | Yahoo! | NewYorkTimes | Wikipedia | Big5 | Chaos | Average | |
CETD | 98.31% | 79.53% | 78.88% | 96.72% | 94.65% | 89.62% | 96.07% | 91.46% |
TDMW | 99.71% | 91.29% | 84.65% | 94.80% | 96.00% | 93.29% | 94.37% | 93.60% |
表3算法在EN-700测试集上的召回率
Ars Technica | BBC | Yahoo! | NewYorkTimes | Wikipedia | Big5 | Chaos | Average | |
CETD | 99.99% | 98.96% | 97.25% | 99.72% | 96.73% | 98.53% | 98.15% | 98.42% |
TDMW | 100.00% | 98.76% | 89.68% | 99.95% | 80.01% | 93.68% | 98.44% | 95.04% |
表4算法在EN-700测试集上的F值
Ars Technica | BBC | Yahoo! | NewYorkTimes | Wikipedia | Big5 | Chaos | Average | |
CETD | 99.14% | 88.19% | 87.11% | 98.20% | 95.68% | 93.86% | 97.10% | 94.81% |
TDMW | 99.85% | 94.88% | 87.09% | 97.31% | 87.28% | 93.48% | 96.36% | 94.31% |
表5算法在ZH-700测试集上的准确率
Ifeng | People | Sina | Yhoo! | Big5 | Chaos | Average | ||
CETD | 67.72% | 80.56% | 59.31% | 87.93% | 85.50% | 76.20% | 78.44% | 76.84% |
TDMW | 92.62% | 94.93% | 99.18% | 95.17% | 99.33% | 96.25% | 84.98% | 93.03% |
表6算法在ZH-700测试集上的召回率
Ifeng | People | Sina | Yahoo! | Big5 | Chaos | Average | ||
CETD | 99.36% | 99.84% | 99.97% | 99.21% | 100.00% | 99.68% | 98.79% | 99.42% |
TDMW | 98.54% | 89.90% | 95.05% | 99.27% | 95.59% | 95.67% | 95.78% | 95.70% |
表7算法在ZH-700测试集上的F值
Ifeng | People | Sina | Yahoo! | Big5 | Chaos | Average | ||
CETD | 80.54% | 89.17% | 74.45% | 93.23% | 92.18% | 86.37% | 87.45% | 86.69% |
TDMW | 95.49% | 9235% | 97.07% | 97.18% | 97.42% | 95.96% | 90.06% | 94.35% |
TDMW在CleanEval测试集上F值为96.43%,考虑到CleanEval测试集中网页的复杂性,该结果表明对文字分布特征的分析有效,TDMW具有较好的通用性。
在EN-700测试集上,CETD算法在BBC和Yahoo!两个网站上准确率较低,原因是这两个网站的网页中的相关新闻列表中的每个条目都包含了一定数量的非链接文字,某些相关新闻符合正文特征而被提取。TDMW中这两个网站的准确率有一定提升,在BBC和Yahoo!上比CETD分别高11.76%和5.77%,说明TDMW能较好的刻画网页特征。TDMW在Yahoo!和Wikipedia上的召回率与CETD存在差距,这是因为部分Yahoo!网页中新闻正文与用户评论(本发明与Dom based content extraction via text density.(In Proceedings of SIGIR’11,pages245–254,2011.)均将其视为网页正文)之间存在较多噪声文字,导致包含所有正文的节点的权值小于某一个子节点的权值。在Wikipedia网页中正文内部链接文字的比例比其它网站大,这部分文字在TDMW计算节点权值时造成不利影响,且Wikipedia网页中不同正文部分之间存在较多链接文字列表,导致TDMW仅提取到非链接文字比例较大的部分正文。
CETD在ZH-700测试集上的准确率较低,特别是Ifeng和QQ两个网站,其准确率均不足70%,原因与EN-700中的BBC和Yahoo!相同。TDMW在Chaos上准确率相对于Big 5较低,这是因为某些网页内存在长度较长且分段显示的免责声明文字,这部分文字符合正文特征。ZH-700实验结果表明,TDMW召回率较CETD仅低3.72%,准确率较CETD高16.19%,总体性能较CETD高7.66%。
总体而言,TDMW与性能很好的CETD算法相比,在CleanEval测试集和EN-700测试集上性能仅比CETD低0.6%和0.5%,而在ZH-700测试集上性能比CETD高7.66%。该结果表明本发明提出的算法对网页文字分布特征的分析是有效的,且基于此的正文提取算法具有较高性能。
Claims (1)
1.一种基于文字分布特征的网页正文提取方法,包括以下步骤:
步骤1:将网页HTML代码解析为对应的标签树,树中每个节点中保存节点的标签名称、节点编号、指向父节点的指针,每个容器节点还保存指向其所有子节点的指针的集合,每个文本节点中则包括该节点对应的文字,具体方法为:
一、预处理:
扫描HTML代码,去掉<script></script>、<style></style>、<noscript></noscript>标签对以及这三个标签对之间的代码,去掉<!---->标签内的注释、去掉<!doctype>标签;
二、扫描预处理之后的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的权值:
在式(2)中,文本节点j的权值由两部分组成:第一部分为该节点的“自身权值”,取决于该节点包含的文字的分布,第二部分为该节点的“附加权值”,表示所有兄弟节点对该节点权值的影响;
在式(2)第一部分中,S表示节点j内包含的句子的集合,L表示某个句子s相邻的句子集合,即S中除s以外的句子集合,W(s)和W(l)表示每个句子自身的权值,该权值绝对值等于句子内包含的文字的个数,ID表示句子在段落中的序号,段落某一句子权值对其它句子权值的影响按照高斯分布N(0,σ1 2)计算;在第二部分中,N为节点j的兄弟节点集合,W(n)'为节点n的自身权值,ID(j)为节点j在标签树中的编号,某一节点权值对其它节点权值的影响按照高斯分布N(0,σ2 2)计算;
将每个文本节点中的文字段落划分成句子,每个句子长度为句子内中文字符个数、英文单词个数、数字个数之和,为区别不同文字在计算权值时的不同作用,对于链接文字,句子的自身权值等于句子长度,对于链接文字和用户交互节点内的文字,句子的自身权值等于句子长度的相反数;
在式(1)和式(2)中,对于非链接文字以及权值为正的节点,σ(σ1、σ2)取经验值1;对于链接文字、用户交互节点内的文字以及权值为负的节点,σ(σ1、σ2)取经验值0.5;α为比例因子,取经验值10;节点权值的取值范围为实数域R,按照定义,权值越大,节点包含的文字成为正文的可能性越大;权值越小,节点包含噪声文字的可能性越大;
三、后序遍历标签树,对每个节点按照上述模型与公式计算权值,并记录自身权值最大的节点;
步骤3:后序遍历标签树,取“自身权值”最大的节点,提取其中的文字作为正文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210397240.0A CN102915361B (zh) | 2012-10-18 | 2012-10-18 | 一种基于文字分布特征的网页正文提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210397240.0A CN102915361B (zh) | 2012-10-18 | 2012-10-18 | 一种基于文字分布特征的网页正文提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102915361A true CN102915361A (zh) | 2013-02-06 |
CN102915361B CN102915361B (zh) | 2015-03-11 |
Family
ID=47613727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210397240.0A Expired - Fee Related CN102915361B (zh) | 2012-10-18 | 2012-10-18 | 一种基于文字分布特征的网页正文提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102915361B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617164A (zh) * | 2013-10-22 | 2014-03-05 | 小米科技有限责任公司 | 网页预取方法、装置及终端设备 |
CN104268192A (zh) * | 2014-09-20 | 2015-01-07 | 广州金山网络科技有限公司 | 一种网页信息提取方法、装置及终端 |
CN104346405A (zh) * | 2013-08-08 | 2015-02-11 | 阿里巴巴集团控股有限公司 | 一种从网页中抽取信息的方法及装置 |
CN105354292A (zh) * | 2015-10-30 | 2016-02-24 | 东莞酷派软件技术有限公司 | 一种页面输出方法及装置 |
CN107203527A (zh) * | 2016-03-16 | 2017-09-26 | 北大方正集团有限公司 | 新闻网页的正文抽取方法和系统 |
CN108874934A (zh) * | 2018-06-01 | 2018-11-23 | 百度在线网络技术(北京)有限公司 | 页面正文提取方法和装置 |
CN110533018A (zh) * | 2018-05-23 | 2019-12-03 | 北京国双科技有限公司 | 一种图像的分类方法及装置 |
CN113343140A (zh) * | 2020-03-03 | 2021-09-03 | 四川大学 | 一种基于neo4j图形数据库自动提取网页正文内容的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593200A (zh) * | 2009-06-19 | 2009-12-02 | 淮海工学院 | 基于关键词频度分析的中文网页分类方法 |
CN102063501A (zh) * | 2011-01-05 | 2011-05-18 | 罗敏 | 一种互联网网页转换的方法及装置 |
US20110282898A1 (en) * | 2005-04-29 | 2011-11-17 | Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust | Manipulation and/or analysis of hierarchical data |
-
2012
- 2012-10-18 CN CN201210397240.0A patent/CN102915361B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110282898A1 (en) * | 2005-04-29 | 2011-11-17 | Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust | Manipulation and/or analysis of hierarchical data |
CN101593200A (zh) * | 2009-06-19 | 2009-12-02 | 淮海工学院 | 基于关键词频度分析的中文网页分类方法 |
CN102063501A (zh) * | 2011-01-05 | 2011-05-18 | 罗敏 | 一种互联网网页转换的方法及装置 |
Non-Patent Citations (1)
Title |
---|
曹玉娟等: "基于概念和语义网络的近似网页检测算法", 《软件学报》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346405B (zh) * | 2013-08-08 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种从网页中抽取信息的方法及装置 |
CN104346405A (zh) * | 2013-08-08 | 2015-02-11 | 阿里巴巴集团控股有限公司 | 一种从网页中抽取信息的方法及装置 |
CN103617164A (zh) * | 2013-10-22 | 2014-03-05 | 小米科技有限责任公司 | 网页预取方法、装置及终端设备 |
CN103617164B (zh) * | 2013-10-22 | 2017-02-01 | 小米科技有限责任公司 | 网页预取方法、装置及终端设备 |
CN104268192A (zh) * | 2014-09-20 | 2015-01-07 | 广州金山网络科技有限公司 | 一种网页信息提取方法、装置及终端 |
CN104268192B (zh) * | 2014-09-20 | 2018-08-07 | 广州猎豹网络科技有限公司 | 一种网页信息提取方法、装置及终端 |
CN105354292A (zh) * | 2015-10-30 | 2016-02-24 | 东莞酷派软件技术有限公司 | 一种页面输出方法及装置 |
CN107203527A (zh) * | 2016-03-16 | 2017-09-26 | 北大方正集团有限公司 | 新闻网页的正文抽取方法和系统 |
CN107203527B (zh) * | 2016-03-16 | 2019-06-28 | 北大方正集团有限公司 | 新闻网页的正文抽取方法和系统 |
CN110533018A (zh) * | 2018-05-23 | 2019-12-03 | 北京国双科技有限公司 | 一种图像的分类方法及装置 |
CN110533018B (zh) * | 2018-05-23 | 2022-02-25 | 北京国双科技有限公司 | 一种图像的分类方法及装置 |
CN108874934A (zh) * | 2018-06-01 | 2018-11-23 | 百度在线网络技术(北京)有限公司 | 页面正文提取方法和装置 |
CN108874934B (zh) * | 2018-06-01 | 2021-11-30 | 百度在线网络技术(北京)有限公司 | 页面正文提取方法和装置 |
CN113343140A (zh) * | 2020-03-03 | 2021-09-03 | 四川大学 | 一种基于neo4j图形数据库自动提取网页正文内容的方法 |
CN113343140B (zh) * | 2020-03-03 | 2022-12-13 | 四川大学 | 一种基于neo4j图形数据库自动提取网页正文内容的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102915361B (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102915361B (zh) | 一种基于文字分布特征的网页正文提取方法 | |
Sun et al. | Dom based content extraction via text density | |
CN102184189B (zh) | 基于dom节点文本密度的网页核心块确定方法 | |
CN102541874B (zh) | 网页正文内容提取方法及装置 | |
CN103646112B (zh) | 利用了网络搜索的依存句法的领域自适应方法 | |
CN102662969B (zh) | 一种基于网页结构语义的互联网信息对象定位方法 | |
Song et al. | A hybrid approach for content extraction with text density and visual importance of DOM nodes | |
CN103544255A (zh) | 基于文本语义相关的网络舆情信息分析方法 | |
CN101251855A (zh) | 一种互联网网页清洗方法、系统及设备 | |
CN103324666A (zh) | 一种基于微博数据的话题跟踪方法及装置 | |
CN103853760A (zh) | 一种网页正文内容提取方法和装置 | |
CN103310014B (zh) | 一种提高检索结果准确率的方法 | |
CN102750390A (zh) | 新闻网页要素自动提取方法 | |
CN103927397A (zh) | 一种基于区块树的Web页面链接块的识别方法 | |
CN107894974A (zh) | 基于标签路径和文本标点比特征融合的网页正文提取方法 | |
CN104794108A (zh) | 网页标题抽取方法及其装置 | |
US10042827B2 (en) | System and method for recognizing non-body text in webpage | |
CN104572934A (zh) | 一种基于dom的网页关键内容抽取方法 | |
Yu et al. | Web content information extraction based on DOM tree and statistical information | |
CN103559202B (zh) | 一种网页内容抽取装置和方法 | |
CN104572787B (zh) | 伪原创网站的识别方法及装置 | |
CN106528509A (zh) | 网页信息提取方法及装置 | |
US8983980B2 (en) | Domain constraint based data record extraction | |
CN108694192B (zh) | 网页类型的判断方法及装置 | |
CN110390037B (zh) | 基于dom树的信息分类方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150311 Termination date: 20151018 |
|
EXPY | Termination of patent right or utility model |