自动获取网页结构化信息的分析方法

文档序号:6371610阅读:355来源:国知局
专利名称:自动获取网页结构化信息的分析方法
技术领域
本发明涉及一种互联网网页分析方法,特别涉及一种自动获取网页结构化信息的分析方法。
背景技术
随着互联网技术的不断发展,Web2. 0概念正在兴起,信息的传递方向变得更加多元。在传统的从少数点(大型新闻媒体,信息提供者)向全网(普通用户,信息消费者)辐射的自顶向下的信息传递模式之后,由普通用户产生而在网络上不断传播的自底向上的信息流动模式正变得越来越普遍。海量的内容由普通用户通过社交网络、博客、微博、论坛等新兴Web2. 0媒介产生出来,并最终被其它用户消费。 这些用户产生的海量内容蕴含了大量有价值的信息和知识,潜在的应用包括舆情分析、垂直搜索、知识问答等。为了能够分析和利用它们,我们首要的任务就是要准确地获取它们。而拥有众多用户的传统媒介论坛就成了其中主要的一部分。图I绘示了一个典型的论坛列表页。虚线的方框分别标明了文章标题、作者、发帖时间和最后回复时间。文章标题、作者、发帖时间、最后回复时间这些是文章最重要的结构化信息。实线的方框指示了数据记录,每一条数据记录对应一篇论坛文章。所有实线框联合起来的范围,称为列表区域。因此,一个列表区域包含了多条数据记录。通常情况下,论坛中的数据存储于后台数据库中,当用户访问某一页面时,网站自动将所需内容填充到特定模板当中,展示给用户。网络数据自动采集器(也叫爬虫、蜘蛛或者Spider)不能直接访问后台数据库,只能通过网页访问论坛,然后对网页数据进行采集。但由于网站的多样性,不同的网站会根据需求采用不同的论坛系统,即便是同一个论坛系统,也存在不同的版本以及个性化更改,这就造成了模板的多样性,相互不一致。这就为数据的自动结构化采集带来了很大的困难。对于上述网页结构化信息自动分析问题,已有的技术方案可以分为以下三类I.采集整个网页,保存下来,而对网页中的结构化的字段不作一一分析。在一般的通用搜索引擎中,例如Baidu和Google中,基本上采用这种回避式的策略。这种采集方式获得的结果,无法展现出网页各个细节的结构化字段,大多只能展现整个网页。2、直接考察网页的DOM结构的方法。DOM (Document Object Model,文档对象模型),可以用来表示HTML、XML等文档,使得这些文档便于被处理。在DOM模型中,HTML或XML文档被表达为树状结构,每一个节点对应于文档中的一对标签,分别表示节点的开始和结束。为了在大规模应用中能够自动分析网页的结构化内容,人们提出了一些基于对网页DOM结构的直接考察的列表区域检测方法。考虑包括标签类型以及树相似度等因素。这些方法带有很强的经验性,而网页本身又具有很大的灵活性。同时这些方法往往着眼于甚至只考虑了 html语言的结构特点,而忽视了网页本身的可视化特性(差别极大的代码可能生成在表现视觉上完全一样的网页),所以会给检测带来较大的不稳定性。3、人工标注。当需要精确获取网页数据的很多应用中,前两个方法就不再能满足需求。在这种情况下,人工标注往往成了最可行、甚至是唯一的方法。但通过人工标注,不仅耗费大量人力,而且时效性差,在网站格式发生变动时,响应时间往往会比较长。综上所述,现有的网页结构化信息自动分析方法存在精确度低、稳定性低、时效性差的问题。

发明内容
本发明的目的是提供一种自动获取网页结构化信息的分析方法,以解决现有的网页结构化信息自动分析方法存在精确度低、稳定性低、时效性差的问题。本发明提出一种自动获取网页结构化信息的分析方法,包括以下步骤(I)将原始列表页面中每一个可显示元素均渲染为矩形,并为每个矩形均赋予坐标参数; (2)根据矩形参数检测T-Point,并将有效T-Point覆盖的范围作为列表区域,所述T-Point为相邻矩形上方公共的顶点;(3)从所述列表区域中检测出所有数据记录,所述数据记录是指网页列表页面中记录数据的单位;(4)将不同数据记录中具有相同类型或相同语义的数据项对应起来,形成数据项列;(5)对数据项列的语义进行确认。进一步的,步骤(I)中,采用开源引擎WebKi t对原始列表页面进行渲染。进一步的,步骤(I)之后还包括步骤(11)将原始列表页面的HTML文本中显示效果的功能性节点去除,形成只含有真正内容的DOM树;(12)将DOM树中结构用途的非显示节点的几何参数设置成包围所有子节点的最小矩形;( 13)将所有的文本都封装入〈text〉元素节点。进一步的,步骤(2)中,所述T-Point包括相邻矩形上方完全重合的顶点,以及相邻矩形上方没有完全重合,且横向距离不超过5的两个顶点。进一步的,步骤(2)中,将有效T-Point覆盖的范围作为列表区域之前包括从检测到的T-Point中,找出并过滤掉无效的T-Point。进一步的,找出并过滤掉无效的T-Point包括以下步骤(21)为每一个检测到的T-Point赋予一个权重值,所述T-Point的权重值等于与其相邻的T-Point的数量,所述相邻的T-Point指横坐标或纵坐标相同;(22)计算所有T-Point的平均权重值;(23)将权重偏离平均权重值的T-Point作为无效T-Point过滤掉。进一步的,步骤(3)中,从所述列表区域中检测出所有数据记录包括(31)形成所述列表区域的DOM子树;(32)排除所述列表区域DOM子树中,有效T-Point横向形成的行的数目多于2的节点;(33)排除所述列表区域DOM子树中,有效T-Point只出现在矩形两个竖边界上的节点;(34)排除所述列表区域DOM子树中,有效T-Point只有一个的节点;(35)将所述列表区域DOM子树中剩余的每个节点作为数据记录。进一步的,步骤(4)中,利用聚类方式将不同数据记录中具有相同类型或相同语义的数据项对应起来,并形成数据项列。进一步的,所述聚类方式所采用的距离函数为dist(m, n-i) = \JaT(domjdif /(no, i)) 4 bT{visualjiif /(n ,Ri))其中,dom_diff (n0, Ii1)表示节点nQ和Ii1的DOM树结构差异的特征向量,visual_diff (n0, Ii1)表示nQ和Ii1之间显示差异的特征向量,a, b为混合权重向量。 进一步的,步骤(5)中,对数据项列的语义进行确认包括(51)利用监督学习方法获得语义分析器;(52)利用语义分析器对数据项列的语义进行确认。相对于现有技术,本发明的有益效果是I、本发明突破性地提出并应用了网页可视化特征点(T-Point),并利用网页可视化特征点(T-Point)准确地提取检测列表区域,从而大大提高了网页结构化信息自动分析的精确度、稳定性和时效性。2、本发明将聚类方法应用于数据项的对齐,可以使得准确率大大提高,同时运行时间大大缩短。3、本发明提出计算节点距离的算法框架,这使得我们的方法在实际应用时拥有很高的灵活性,可以适用于不同场合。4、本发明使用分类器方法识别数据记录的列表项语义,使数据项的语义分类更加准确。


图I为典型的一个论坛列表页示意图;图2为本发明自动获取网页结构化信息的分析方法的一种实施例流程图;图3为本发明预处理的一种详细流程图;图4为图I的页面经渲染后的示意图;图5为处于同一高度的两个相邻矩形形成一个T形结构的示意图;图6为处于同一高度的两个相邻矩形形成另一个T形结构的示意图;图7为本发明列表区域检测的一种详细流程图;图8为以图4的页面为基础找出T-Point的页面示意图;图9为本发明数据记录检测的一种详细流程图;图10为节点两个节点之间的几何距离示意图。
具体实施例方式请参见图2,其为本发明自动获取网页结构化信息的分析方法的一种实施例流程图,其包括预处理S210、列表区域检测S220、数据记录检测S230、数据项对齐S240及数据列语义确认S250五个步骤。预处理S210主要目的是将原始列表页面中每一个可显示元素均渲染为矩形,并为每个矩形均赋予坐标参数;列表区域检测S220主要目的是根据矩形参数检测T-Point,并将有效T-Point覆盖的范围作为列表区域,所述T-Point为相邻矩形上方公共的顶点;数据记录检测S230主要目的是从所述列表区域中检测出所有数据记录,所述数据记录是指网页列表页面中记录数据的单位;数据项对齐S240主要目的是将不同数据记录中具有相同类型或相同语义的数据项对应起来,形成数据项列;数据列语义确认S250主要目的是对数据项列的语义进行确认。以下对本发明进行分步详细说明。S210,预处理。互联网上广泛地使用超文本标记语言(Hypertext Markup Language, HTML)来描述网页的显示内容。浏览器根据HTML文档中的定义,将文字、图片、视频、超链接等内容可视化地以网页形式呈现在用户面前。需要注意的是,HTML关注于最终的显示效果,而不是实现方法,于是,即使HTML文件有很大的差异,显示效果也有可能是一样的。所以,在得到 网页原始的HTML代码之后,我们首先获取其可视化后的相关信息。在预处理过程中,在完成页面渲染(步骤S211)的前提下,优选的还可以清理多余节点(步骤S212),梳理可视化信息(步骤S213),将文本节点封装入〈text〉标签中(步骤S214),以便于后续的计算。具体来说,请参见图3,预处理又可以包括以下步骤S211,将原始列表页面中每一个可显示元素均渲染为矩形,并为每个矩形均赋予坐标参数。本发明优选采用开源引擎WebKit对原始页面进行渲染,取得页面真实的显示效果。大部分网页中的元素将会显示在最终的网页中,但也有少部分元素承担着HTML语言本身相关的功能,在最终网页中并没有可显示对象与其对应。同时,在网页最终的渲染结果中,HTML的每一个可显示元素将被显示成一个矩形,以描述其大小及位置,以图I的页面为例,经过渲染后便形成如图4所示的可显示页面。对于可显示元素,开源引擎WebKit将返回其显示矩形的参数(包括位置及大小),而对于其它具有某些特定功能的非显示元素,开源引擎WebKit返回O。S212,将原始列表页面的HTML文本中显示效果的功能性节点去除,形成只含有真正内容的DOM树。在HTML中除了包含有真正的网页内容外,还包含大量描述显示效果的参数等功能性节点。在渲染结束后,可以将这些节点去除,从而得到只含有真正内容的DOM树,使后续的计算更加简洁。具体来说,可以去除所有〈style〉,〈script〉,〈comments〉,〈link〉,<meta>等元素的节点,去除了所有嵌入对象,如flash等,和各种处理指令。S213,从所述列表区域中检测出所有数据记录,所述数据记录是指网页列表页面中记录数据的单位。在清理多余节点之后,仍然存在一些结构用途的非显示节点,它们的显示信息为空。为了让之后的处理保持一致性,将它们的几何参数设置成包围所有子节点的最小矩形。S214,将所有的文本都封装入〈text〉元素节点。最后,为了简化后面的处理过程,将所有的文本都封装入〈text〉元素节点。这样就得到了以XML表现的原网页包含有可视化信息的DOM树结构。S220,列表区域检测。
以前的列表区域检测方法通常基于对网页DOM结构的直接考察,考虑包括标签类型以及树相似度等因素。这些方法带有很强的经验性,而网页本身又具有很大的灵活性,同时这些方法往往只考虑了 html语言的结构特点,忽视了 html是用于描述可视化界面这一本质特征(差别极大的代码可能都在表现视觉上完全一样的网页),所以会给检测带来较大的不稳定性。本发明提出了使用网页最终的渲染结果作为主要信息来源。基于经过渲染的页面可以发现,T形特征点对列表有良好的区分能力,并对来自不同模板的页面有优秀的自适应性能。具体来说,请参见图5,当两个相邻的矩形的一条竖直的边重合,而上方的边处于同一高度时,会形成一个T形结构。当考虑一个经渲染的页面时,由于页面中存在的大量相邻的单元格,所以会相应产生大量这样的微观结构。
其中,三条边的交点是T形结构最具代表性的特征,在本发明中定义为当两个元素的包围矩形相邻,且有公共上方顶点时,共用顶点被称为T-Point。所以本发明以T-Point作为列表区域检测的一个微观特征。为了提高稳定性,请参见图6,可以将上方顶点没有完全重合,但横向距离不超过6的两个顶点也同时认为是一个T-Point。在系统实现中,优选取S的值为I。列表区域检测共分为两步第一步就是根据页面的可视化信息和T-Point的定义,检测出所有的T-Point ;第二步则是要估计出属于列表区域的T-Point集合,进而找到列表区域及相应的DOM节点,请参见图7,具体过程如下S221,根据矩形参数检测T-Point。由于在预处理过程中,已经将页面中显示矩形的参数(包括位置及大小)输出,所以利用这些矩形参数,很容易就能找出页面中所有的T-Point。请参见图8,其是以图4的页面为基础找出T-Point的页面示意图。其中实心和空心的方块都是页面的T-Point。S222,将有效T-Point覆盖的范围作为列表区域。本发明所述的列表区域是指页面上数据记录所组成的区域,在图I中实线框构成的区域即列表区域。但是从图4中T-Point的分布位置来看,根据步骤S221找出的T-Point,有一些是在列表区域之外的,因而这里应当从检测到的T-Point中,找出并过滤掉无效的T-Point,以提高检测的准确性。具体确定列表区域的过程如下I)首先为每一个检测到的T-Point赋予一个权重值,所述T-Point的权重值等于与其相邻的T-Point的数量,所述相邻的T-Point指横坐标或纵坐标相同。2)计算所有T-Point的平均权重值,并将权重偏离平均权重值的T-Point作为无效T-Point过滤掉。以对图8所示页面检测为例,以所有T-Point为顶点(实心和空心的方块),并按照T-Point间的相邻关系将T-Point进行连接,可以构造出一个无向图。然后找出无向图中的最大连通分量(即虚线标出的部分),然后将权重偏离平均值较大的点作为噪声过滤掉(即将实心方块过滤掉),剩下的点(即空心方块)作为有效T-point集合。对比图I发现,此时实心方块T-Point覆盖范围正是原网页中的列表区域。3)最后在网页DOM树上寻找到能够包含所有构成有效T-Point的元素的最小子树,并认为其包含列表区域,从而可以确定页面中所有的列表区域。
S230,数据记录检测。本发明的数据记录是指网页列表页面中记录数据的单位,即在图I中,数据记录显示为单个实线框。在获得列表区域以及有效T-Point集合的基础上,通过检测每一个节点来确认所有可能的数据记录项。对列表区域DOM子树上的每一个节点,请参见图9,本发明可以采用如下步骤来检测数据记录S231,排除所述列表区域DOM子树中,有效T-Point横向形成的行的数目多于2的节点。
经渲染后的页面上,一条数据记录所最外围形成的边界,必然也是由T-Point构成的一个矩形,即由4个T-Point构成两行,而各数据项是包含在数据记录中的一个个小矩形,因此若一个节点的有效T-Point构成的行不止2个,说明该节点中包含多个并排关系的矩形,可能是由多个数据记录组成的,也可能是一个列表区域,所以排除此类节点。S232,排除所述列表区域DOM子树中,有效T-Point只出现在矩形两个竖边界上的节点。对于一个数据记录,其中必然包括多个数据项,例如图I所示单个实线框所示的数据记录,其中涵盖有“文章标题”、“作者”、“回复时间”等多个数据项所显示的矩形,即一个数据记录中应该包括多个矩形,所以如果一个节点中的有效T-Point只出现在矩形两个竖边界上,则说明这个节点显示的只是单一一个矩形,很有可能只是一个数据项,或者甚至没有形成矩形,所以要过滤掉此类节点。S233,排除所述列表区域DOM子树中,有效T-Point只有一个的节点。一条数据记录必然会显示为一个矩形,所以只有单一 T-Point的节点无法构成矩形,必然不是数据记录,需要排除。S234,将所述列表区域DOM子树中剩余的每个节点作为数据记录。S240,数据项对齐。本发明的目的是充分分析网页的结构化信息,其中网页中的每一组数据记录都共同包含很多拥有某些意义的数据项,比如“文章标题”、“作者”、“回复时间”等,而这些数据项的排列规则具有一定规律,具体的,他们在显示时会形成列。但同时,在不同的数据记录中,可能存在着自身特有的数据,以及诸如分隔符等辅助元素,使得不同数据记录的格式并不整齐。这种不整齐当只在考虑它们的DOM树结构时,表现的尤为明显。此步骤的任务就是将不同数据记录中具有相同类型或相同语义的数据项提取出来并对齐,形成数据项列。对于属于同一意义下的数据项,都具有一定的相似性,如结构上所对应的HTML节点标签相同、相应的DOM子树结构相似,显示上位置都处于同一列、有相近的大小等。本发明同时基于DOM树的结构特征以及相应可视化特征,优选地提出了以聚类方式解决这一问题。该任务被分为两个子任务I)计算任意两个节点的距离首先给出节点间的距离定义。本发明在距离度量的定义中融合了节点的树结构特征以及可视化特征,使得其性能更加可靠。具体来说,对于不属于同一个数据项的两个节点n0,ni我们的距离函数定义包含了分别描述DOM树结构之间差异与显示效果差异的两部分,如下
权利要求
1.一种自动获取网页结构化信息的分析方法,其特征在于,包括以下步骤 (1)将原始列表页面中每一个可显示元素均渲染为矩形,并为每个矩形均赋予坐标参数; (2)根据矩形参数检测T-Point,并将有效T-Point覆盖的范围作为列表区域,所述T-Point为相邻矩形上方公共的顶点; (3)从所述列表区域中检测出所有数据记录,所述数据记录是指网页列表页面中记录数据的单位; (4)将不同数据记录中具有相同类型或相同语义的数据项对应起来,形成数据项列; (5)对数据项列的语义进行确认。
2.如权利要求I所述的自动获取网页结构化信息的分析方法,其特征在于,步骤(I)中,采用开源引擎WebKit对原始列表页面进行渲染。
3.如权利要求I所述的自动获取网页结构化信息的分析方法,其特征在于,步骤(I)之后还包括步骤 (11)将原始列表页面的HTML文本中显示效果的功能性节点去除,形成只含有真正内容的DOM树; (12)将DOM树中结构用途的非显示节点的几何参数设置成包围所有子节点的最小矩形; (13)将所有的文本都封装入〈text〉元素节点。
4.如权利要求I所述的自动获取网页结构化信息的分析方法,其特征在于,步骤(2)中,所述T-Point包括相邻矩形上方完全重合的顶点,以及相邻矩形上方没有完全重合,且横向距离不超过S的两个顶点。
5.如权利要求I所述的自动获取网页结构化信息的分析方法,其特征在于,步骤(2)中,将有效T-Point覆盖的范围作为列表区域之前包括从检测到的T-Point中,找出并过滤掉无效的T-Point。
6.如权利要求5所述的自动获取网页结构化信息的分析方法,其特征在于,找出并过滤掉无效的T-Point包括以下步骤 (21)为每一个检测到的T-Point赋予一个权重值,所述T-Point的权重值等于与其相邻的T-Point的数量,所述相邻的T-Point指横坐标或纵坐标相同; (22)计算所有T-Point的平均权重值; (23)将权重偏离平均权重值的T-Point作为无效T-Point过滤掉。
7.如权利要求I所述的自动获取网页结构化信息的分析方法,其特征在于,步骤(3)中,从所述列表区域中检测出所有数据记录包括 (31)形成所述列表区域的DOM子树; (32)排除所述列表区域DOM子树中,有效T-Point横向形成的行的数目多于2的节点; (33)排除所述列表区域DOM子树中,有效T-Point只出现在矩形两个竖边界上的节占. (34)排除所述列表区域DOM子树中,有效T-Point只有一个的节点; (35)将所述列表区域DOM子树中剩余的每个节点作为数据记录。
8.如权利要求I所述的自动获取网页结构化信息的分析方法,其特征在于,步骤(4)中,利用聚类方式将不同数据记录中具有相同类型或相同语义的数据项对应起来,并形成数据项列。
9.如权利要求8所述的自动获取网页结构化信息的分析方法,其特征在于,所述聚类方式所采用的距离函数为-- dist(no,ni) = y aT(domjiiff(no, i)) + bT{visualjdif f{nQ,n\)) 其中,dom_diff (n0, Ii1)表示节点nQ和Ii1的DOM树结构差异的特征向量,visual_diff (n0, Ii1)表示nQ和Ii1之间显示差异的特征向量,a, b为混合权重向量。
10.如权利要求I所述的自动获取网页结构化信息的分析方法,其特征在于,步骤(5) 中,对数据项列的语义进行确认包括 (51)利用监督学习方法获得语义分析器; (52)利用语义分析器对数据项列的语义进行确认。
全文摘要
本发明提出一种自动获取网页结构化信息的分析方法,包括以下步骤(1)将原始列表页面中每一个可显示元素均渲染为矩形,并为每个矩形均赋予坐标参数;(2)根据矩形参数检测T-Point,并将有效T-Point覆盖的范围作为列表区域,所述T-Point为相邻矩形上方公共的顶点;(3)从所述列表区域中检测出所有数据记录,所述数据记录是指网页列表页面中记录数据的单位;(4)将不同数据记录中具有相同类型或相同语义的数据项对应起来,形成数据项列;(5)对数据项列的语义进行确认。本发明可以大大提高网页结构化信息自动分析的精确度、稳定性和时效性。
文档编号G06F17/30GK102750372SQ201210202309
公开日2012年10月24日 申请日期2012年6月15日 优先权日2012年6月15日
发明者张志强, 张长水, 翁时锋 申请人:翁时锋
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1