首页> 中国专利> 一种基于网页结构语义的互联网信息对象定位方法

一种基于网页结构语义的互联网信息对象定位方法

摘要

本发明属于互联网技术领域,具体为一种基于网页结构语义的互联网信息对象定位方法。本发明方法首先将检索到的相关网页的HTML代码转换为DOM树结构;然后根据互联网信息对象语义词典为每个文本节点进行语义匹配,分配不同的语义角色,对每一个DOM树的内部节点(非叶节点)计算其结构语义熵值,以衡量其语义丰富程度;最后综合熵值与网页的层次结构关系,反映某个节点内语义信息的聚集程度,在大量网页中判断指定信息对象所在的网页区域,进而抽取出所需数据。本发明的一种应用实例是互联网药品信息搜索和分析。

著录项

  • 公开/公告号CN102662969A

    专利类型发明专利

  • 公开/公告日2012-09-12

    原文格式PDF

  • 申请/专利权人 复旦大学;

    申请/专利号CN201210061434.3

  • 申请日2012-03-11

  • 分类号G06F17/30(20060101);G06F17/27(20060101);

  • 代理机构31200 上海正旦专利代理有限公司;

  • 代理人陆飞;盛志范

  • 地址 200433 上海市杨浦区邯郸路220号

  • 入库时间 2023-12-18 06:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-11-27

    授权

    授权

  • 2012-11-28

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20120311

    实质审查的生效

  • 2012-09-12

    公开

    公开

说明书

技术领域

本发明属于互联网技术领域,具体涉及一种互联网信息对象定位方法。

技术背景

面向特定应用领域的精准搜索技术,是舆情监测、产品比价、广告监测等应用系统的基础,而语义技术则是实现精准搜索的前提。目前,尽管语义技术在信息检索、搜索引擎、产品比价、数据挖掘等领域有很多的研究和成果,但多数情况下语义技术在其中的应用是局部的、不够系统化,所采用的面向业务领域的语义定义也不便于明确语义概念的范围,语义结构的完整性缺乏理论依据,这些都限制了语义技术的深入研究和广泛应用。

本发明采用的互联网信息对象定位方法,通过使用领域语义词典量化网页结构语义,可以在任何网页中判断指定信息对象所在的区域,进而抽取出所需数据。本发明涉及的结构语义定义和计算算法,未在其他专利中发现。

发明内容

本发明的目的在于提供一种可以进一步提高互联网信息对象精准搜索性能的互联网信息对象定位方法。

本发明提供的互联网信息对象定位方法,是基于网页结构语义的互联网信息对象定位方法,本发法通过量化语义关联目标节点集合的信息聚集程度,在任何网页中判断指定信息对象所在的网页区域,进而抽取出所需数据。

本发明方法的基本原理和思路如图1所示。为了搜索到互联网信息对象所在的页面,本发明方法首先将检索到的相关网页的HTML代码转换为DOM树结构;然后根据互联网信息对象语义词典为每个文本节点进行语义匹配,分配不同的语义角色,对每一个DOM树的内部节点(非叶节点)计算其结构语义熵值,以衡量其语义丰富程度。由于熵值与网页的层次结构密切相关,两者综合可以很好地反映某个节点内语义信息的聚集程度。

假设有以节点N为根节点的DOM子树,其结构语义熵定义如下:

 

其中p(xi)为第i种语义角色在节点N下的所有文本节点中出现的比例,n为节点N下包含的语义角色的数量,I(xi)=logb(1/p(xi))指信息量,p(xi)越小,那么有某个元素被标记为第i种语义角色这个事件信息量就越大,b在信息论里一般取2。未被语义匹配的节点的语义角色视为“未知”。某个节点的结构语义熵值越大,说明在此节点下的语义角色类型越丰富。对于文本节点,其结构语义熵值为0。

对于某个DOM树结构的每个内部节点,计算结构语义熵值后,将其中的结构语义熵最大值作为该网页的结构语义熵值,用来衡量该网页是否提供了需要提取的对象信息,为判断网页类型提供依据。

本发明方法的具体步骤进一步描述如下:

第一步:网页预处理 

不同网站的HTML代码风格迥异,其中部分网站采用了不规范的代码书写方式,为分析网页节点层次结构带来了难度。几乎所有的浏览器在解析HTML代码时,都包含对HTML代码的自动纠错,修正其错误的标签嵌套(被称为标签补偿),所以一些包含错误代码的HTML页也大多能在浏览器中正常进行渲染。另外,有部分网站采用了很多样式控制标签例如<font>、<big>、<i>等来设定网页内容的显示形式,而不是利用W3C的CSS(Cascading Style Sheets,层叠样式表)标准来将网页的内容与样式进行分离,这样会对页面内容原本的信息结构造成一定的破坏。

为了能够正确地获得网页内容的结构信息,本方法对网页HTML代码进行预处理,去除不必要的样式控制标签并修正错误的嵌套结构后,获取网页文档对应的DOM树结构,来进行下一步的分析处理。首先根据语义词典中DOM元素的定义,过滤掉HTML代码中的样式控制的标签,并且将<script>、<style>等与网页实际内容无关的标签及其内容去除;然后利用开源的NekoHTML工具包对HTML代码进行处理,扫描HTML代码并进行标签补偿;最后将HTML源代码转换成DOM树形式,使抽取程序可以通过标准的DOM接口访问其信息。

第二步:语义匹配

得到一个目标HTML网页文档对应的经过处理的DOM树后,需要先在DOM中找出包含语义信息的节点,为节点内的文本分配语义角色,来为定位属性聚集区域提供语义信息支持。根据领域语义中互联网信息对象的属性特征,将DOM树文本节点中的内容与属性的各个语义表达式进行匹配,最后得到的每个成功匹配结果将记录如下信息:

1)匹配的DOM树节点;

2)匹配的文本在所属文本节点内的文本位置偏移量;

3)匹配的文本被赋予的语义角色。

对如图2所示的DOM树片段而言,会有两个成功匹配,分别为:

(N, 0~1, “规格”属性名)和(N, 3~5, “规格”属性值)。

第三步:属性聚集区域定位并去噪

互联网信息对象属性名值对信息在网页中往往聚集在若干个区域内,通过计算结构语义熵,可以有效地识别出候选的信息聚集的区域。  

在为DOM树的每个内部节点计算结构语义熵值后,将结果按熵值大小降序排序,然后按如下的规则进行筛选:

1)属性聚集区域的结构语义熵值大于指定阈值。

2)属性聚集区域列表中的节点之间不存在祖先/后代节点关系。当两个存在祖先/后代关系的节点结构语义熵值不同时,仅保留熵值较大的节点,将熵值较小的节点排除;当其节点结构语义熵值相同时,仅保留后代节点以在DOM树中找到代表属性聚集区域的最小子树。

3)如果多个节点包含的属性集合相同,且其在文档中的标签路径完全相同,则这些节点将被视作列表节点而作为干扰信息排除。这里的标签路径是指从DOM树根节点到达指定节点所经过的节点标签组成的路径,如“HTML/BODY/DIV/UL/LI”。

最后经过一系列排除手段得到了最后的属性聚集区域列表,根据页面结构语义熵值以及属性聚集区域数量,可以按语义规则判断当前网页的类型,记录其是互联网信息对象详细信息页、列表页或者只是普通网页。

第四步:属性名值对抽取

在上一步确定的属性聚集区域范围内,利用语义匹配的结果,已经得到一部分属性名值对的确切位置。

对于仅匹配到属性名称的节点,可以采用启发式方法进行属性值提取。进行属性值提取主要原则基于如下的启发式假设:

(1)属性值紧跟着属性名称之后出现;

(2)某个属性的属性名称与属性值之间不会包含其他属性。

由于用户阅读网页区域的顺序(从上到下、从左到右)正对应于DOM树的深度优先遍历访问文本节点的顺序,由假设(1),按照此顺序即可为已知的属性名称提取相应的属性值;由假设(2),可知如果两个属性名称之间没有非空的文本节点,那么前一个属性的属性值是缺失的。

在抽取包含多个属性名值对的长文本节点内容时,可以按文本内的分隔符“【”、“】”以及“:”等结合已经匹配的语义角色对属性名称、属性值进行分割,来获得正确的取值结果。

另外,在领域语义定义中,“标题”是互联网信息对象的必要属性,但在实际抽取时,因为互联网信息对象的名称无法用精确的表达式来进行描述,也很有可能不包含在互联网信息对象实例库中,所以如果之前环节未能利用启发式方法抽取到名称信息时,将利用属性的位置信息结合互联网信息对象实例库中的信息,在DOM树中自动识别出适用于当前网站的各个页面的“标题”属性抽取规则,来补充必要的属性值。当已经识别出某个网页的属性聚集区域后,组成“标题”属性的“商品名称”和“通用名称”都无法获取时,就中断当前页面的提取过程,开始自动归纳XPath抽取规则。

同一网站内的互联网信息对象详细信息页中,根据“标题”属性可能的位置如BeforeRegion、FirstChildOfRegion等以及属性聚集区域的识别结果,计算这些抽象位置在具体页面中的节点位置作为候选节点,对每个候选节点中的文本在“名称”相对应的取值词库中进行匹配。同时,将每个节点的XPath与匹配结果记录下来。如此循环,在对一定数量的详细信息网页进行取样分析后,找出匹配率最高的XPath,作为用来在互联网信息对象详细信息页面抽取“标题”的抽取规则。通过本方法抽取出的XPath对于同一个网站来说是通用的,因为一般来说,同一个网站的同类页面均是由同一生成规则输出的。

获得XPath抽取规则后,将利用XPath抽取出的属性名值对连同已经成功抽取的属性名值对集合一起,作为最终的信息抽取结果输出,通过语义词典和数据库字段中的映射规则,存储到数据库中。

本发明方法,可以进一步提高互联网信息对象精准搜索性能。

附图说明

图1是本发明的基本原理图。

图2是本发明的DOM树示例图。

图3是本发明的语义计算实例图。

图4是本发明的实施例图。

具体实施方式

基于本发明方法的一个实用例子是互联网药品监测系统(如图4所示)。

一、计算实例

互联网药品监测系统涉及的结构语义熵的计算实例,其DOM子树如图3所示。可以看出图3中的叶子节点(文本节点)已经进行了语义匹配,被分配了不同的语义角色,节点4是一个典型的详细信息聚集区域,而节点3则是一个干扰信息列表。根据图中给出的语义角色,可以计算节点4的结构语义熵值: 

而列表节点3的结构语义熵为:

二、核心算法描述

1、算法1:语义匹配

输入:DOM树D,属性集合L

输出:匹配完毕的匹配信息列表M

步骤:

1)历遍DOM树D中的每个节点N,与属性集合L中定义的每个属性P进行匹配;

2)如果匹配,则把匹配信息Ip(属性名)添加到匹配信息列表M中,然后在节点N中查找属性值,如果找到,则把匹配信息Iv(属性值)也添加到M中,否则在节点N的下一个文本节点中查找属性值。

2、算法2:计算节点结构语义熵

输入:节点N

输出:节点N的结构语义熵H

步骤:

1)计算节点N中包含的每种语义角色出现的概率:

p(xi)=语义角色xi在N中出现的次数/N下的所有文本节点个数;

2)利用以下公式计算节点N的结构语义熵H:

其中p(xi)由第一步计算得到,n为节点N下包含的语义角色的数量,I(xi)=logb(1/p(xi))指信息量,p(xi)越小,那么有某个元素被标记为第i种语义角色这个事件信息量就越大,b在信息论里一般取2。

3、算法3:选择属性聚集区域节点并过滤干扰项

输入:经过按节点结构语义熵计算结果排序的节点列表L、结构语义熵值阈值HT

输出:经过过滤的节点列表L

步骤:

1)给定结构语义熵值阈值HT,若节点N的结构语义熵值大于该阈值,则该节点可能成为属性聚集区域,否则,判定为非属性聚集区域,HT可根据情况进行调整;

2)把L中的所有节点标记为属性聚集区域节点;

3)历遍节点列表L中的节点Ni,如果节点Ni的结构语义熵值小于HT,则把节点Ni修改为非属性聚集区域节点;

4)历遍节点Ni后面的节点Nj,如果这两个节点中的其中一个节点是另一个节点的后代节点,则看两个节点的结构语义熵是否相等,如果相等,则把祖先节点修改为非属性聚集区域节点,否则把结构语义熵较小的节点修改为非属性聚集区域节点;

5)如果节点Ni和节点Nj包含的属性集一样,则把两个节点都修改为非属性聚集区域节点。

4、算法4:属性名值对抽取

输入:已确定的目标区域内的节点匹配信息列表L

输出:属性名值对列表R

步骤:

1)历遍所有在算法3中被标记为属性聚集区域的节点,对于在算法1中匹配到属性名和属性值的节点,在得到的匹配信息列表M中查找相应的属性名和属性值,添加到属性名值对列表R中;

2)对于在算法1中仅匹配到属性名称的节点,可以采用启发式方法进行属性值提取,主要的原则基于如下的启发式假设:

(1)属性值紧跟着属性名称之后出现;

(2)某个属性的属性名称与属性值之间不会包含其他属性。

由于用户阅读网页区域的顺序(从上到下、从左到右)正对应于DOM树的深度优先遍历访问文本节点的顺序,所以按照此顺序即可为已知的属性名称提取相应的属性值,而由假设(2)可知如果两个属性名称之间没有非空的文本节点,那么前一个属性的属性值是缺失的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号