首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 半监督学习 / 一种基于小样本半监督学习的网页数据抽取方法

一种基于小样本半监督学习的网页数据抽取方法

阅读:739发布:2020-10-07

专利汇可以提供一种基于小样本半监督学习的网页数据抽取方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于小样本半 监督学习 的网页数据 抽取 方法,包括如下步骤:针对来自同一网页模板的相似性网页,选取一组样本网页,由用户手工选择并标注出需要抽取的数据项,称为标注数据项;根据标注数据项在DOM树上所对应的 节点 ,称为标注节点,根据标注数据项在对应DOM树上的不同特征,构造一组关于该标注节点的初始候选特征集合;利用半监督式学习方法,确定初始候选特征集合中的最小关联性特征,推导出对该数据项泛化的抽取规则;对一个网页上拟抽取的每个数据项都进行规则推导,得到该网页上关于这组数据项的抽取规则;将抽取规则作用于相似性网页,抽取出一批数据。本发明能完成网页数据抽取规则的生成和网页数据的自动化抽取处理。,下面是一种基于小样本半监督学习的网页数据抽取方法专利的具体信息内容。

1.一种基于小样本半监督学习的网页数据抽取方法,包括如下步骤:
(1)针对来自同一网页模板的相似性网页,选取一组样本网页,在其中一至三个样本网页上,由用户手工选择并标注出同一个需要抽取的数据项,该数据项称为标注数据项;
(2)根据所述标注数据项在DOM树上所对应的节点,所述节点称为标注节点,根据标注数据项在对应的DOM树上的不同特征,构造一组关于该标注节点的初始候选特征集合;
(3)基于所述样本网页,利用半监督式学习方法,采用第一算法确定初始候选特征集合中的最小关联性特征,推导出一个对该数据项具有泛化能的抽取规则;所述具有泛化能力的抽取规则是指:当一个数据项在不同网页上出现一些结构变化的情况下,抽取规则仍然能稳定正确的抽取出该数据项;
(4)对一个网页上拟抽取的每一个数据项都进行步骤(3)所述的规则推导,得到该网页上关于这组数据项的一组抽取规则;
(5)将这组推导出的抽取规则作用于一批待抽取数据的相似性网页,最终抽取出一批数据项。
2.根据权利要求1所述一种基于小样本半监督学习的网页数据抽取方法,其特征在于:所述步骤(2)中,初始候选特征包括三种类型:结构特征、属性特征和内容特征;所述初始候选特征由一个三元组(特征类型t,距离d,特征值v)描述。
3.根据权利要求2所述一种基于小样本半监督学习的网页数据抽取方法,其特征在于:所述结构特征包括自标注节点到DOM树根节点间所有中间节点的结构特征,这种结构特征描述为(TAG,d,nv),TAG表示是一个DOM中间节点元素,d表示在DOM树上该中间节点到标注节点间的距离,nv表示该中间节点的元素名称;
所述属性特征包括自标注节点到DOM树根节点间所有中间节点的id和class属性特征,这种属性特征描述为(属性类型名,d,av),av表示该属性的值;所述属性类型名包括该中间节点的基本属性id和class,该中间节点的前驱节点的id和class属性以及该中间节点的后继节点的id和class属性;
所述内容特征包括标注节点前后首次出现的、具有帮助标识和定位标注节点作用的非空文本节点,所述非空文本定义为anchor文本,这种内容特征描述为(文本特征名,d,cv),cv表示该anchor文本的值;所述文本特征名包括左端anchor文本类型和右端anchor文本类型;
允许将同一个数据项在两个相似页面上相同的特征下具有的不同的特征值,用或运算把不同的特征值包含进来,所述相同指特征类型和距离相同。
4.根据权利要求1所述一种基于小样本半监督学习的网页数据抽取方法,其特征在于:所述步骤(3)中,对标注节点的候选特征集合进行迭代处理:对候选特征集合在样本网页上进行不断的测试与合并,直到找到一个能正确抽取出标注数据项的泛化的抽取规则为止。
5.根据权利要求4所述一种基于小样本半监督学习的网页数据抽取方法,其特征在于:所述步骤(3)包括:
用 表示由候选特征集合F推导而成的抽取规则,定义 为抽取规则 的距
离,其值为候选特征集合F中所有特征的最大距离:

式中,表示候选特征集合F中的特征;
支持度的定义如下:对于来自样本页面中的非标注页面(即那些未进行数据项标注的页面),定义抽取规则 的支持度 为抽取规则 正确抽取出非标注页面的比例:

同时,定义生成的规则抽取数据项的召回率和精度:假设A表示一个数据项在多个标注页面上的标注节点集合,B表示抽取规则 在多个标注页面上正确抽取出的标注节点集合,C表示抽取规则 在标注页面上实际抽取出来的所有节点集合,定义抽取规则 的精度 和召回率 如下:

在抽取规则的推导过程中,最终生成的抽取规则满足以下四个条件:
1)召回率为1:抽取规则能够返回标注页面上的所有标注节点;
2)在所有满足条件1)的抽取规则中,选择对所有标注节点抽取精度值最大的抽取规则;
3)在所有满足条件1)和2)的抽取规则中,选择距离最小的抽取规则;
4)在满足前面三个条件的所有抽取规则中,选择支持度最大的抽取规则作为最终的抽取规则。
6.根据权利要求4所述一种基于小样本半监督学习的网页数据抽取方法,其特征在于:所述步骤(3)包括:在迭代过程中使用渐进式逐步求精的抽取规则推导方法,不断测试和合并初始特征以缩小抽取规则对DOM树上标注节点的查询定位范围;如果一个初始的或者合并的特征不能精确定位到标注节点,则逐步加入其它的特征来缩小查询定位范围,通过这种特征合并和渐进式学习步骤,逐步推导出能够唯一定位到标注节点的特征集合。
7.根据权利要求1所述一种基于小样本半监督学习的网页数据抽取方法,其特征在于:所述第一算法为类Apriori算法。

说明书全文

一种基于小样本半监督学习的网页数据抽取方法

技术领域

[0001] 本发明涉及一种数据抽取方法,具体涉及一种基于小样本半监督学习的网页数据抽取方法。

背景技术

[0002] 当今,互联网已经成为全球最大的数据信息源,许多基于Web信息的应用都需要直接从互联网上获取数据。从不同的Web数据源中获取有价值的数据后,可以整合起来提供各种不同的增值服务,如Web舆情分析、比价系统、垂直搜索等应用和服务。
[0003] 为了能方便快速地从Web上精确获取应用系统所感兴趣的数据信息,需要提供有效的Web信息抽取技术和工具。所谓Web信息抽取(Web Information Extraction),是指从结构化或半结构化的网页上抽取出用户或应用所感兴趣的数据,将其以结构化的格式导入应用系统供进一步分析处理的过程。
[0004] 在过去的十多年里,Web信息抽取一直是一个热点研究问题,已经得到很多研究。Web信息抽取的一个重要问题是Web页面数据抽取规则的生成问题,目前已经产生了很多不同的抽取规则生成技术方法。
[0005] 手工的规则编写方法用户负担大、编写效率低下。为了提高抽取规则生成效率,减少用户手工编制抽取规则的负担,目前大多数研究者都致于自动化抽取规则生成技术研究,例如DEPTA、ViDE、MDR,STALKER,DEByE等研究工作。
[0006] 但是,全自动化方法通常仅适用于包含一组规整重复数据记录的网页,难以普遍适用于各种不同类型的网页,尤其难以适用于处理包含非规整数据记录的网页。因此,全自动化方法在抽取精度上往往不够理想,难以满足精确化Web信息抽取的实际应用需求。一些研究也将包含重复数据记录网页的抽取处理称为“记录级(Record-Level)数据抽取”,而将那种每个网页上仅包含一个非重复数据记录、因而需要通过多个网页上的数据记录才能推导出抽取规则的数据抽取方法称为“网页级(Page-Level)数据抽取”。
[0007] 对于这种网页级数据抽取,为了能在规则生成效率与适用性和抽取精度之间取得一个良好的综合效果,在保证较高的规则生成效率的同时,也能保证抽取规则生成方法的适用性和抽取精度,尤其是为了有效解决非规整数据记录网页的数据抽取规则生成问题,一个折中性的有效方法是基于人工交互和标注的半自动化的规则生成方法。所谓用户交互和标注,类似于在Office Word中编辑文本时为了完成复制或删除操作需要先进行的文本选取操作,即由用户在网页上简单地选取并标出感兴趣的数据项。这种基于人工交互和标注的半自动化方法可获得更为准确的数据项的定位和抽取信息,允许用户精确指定网页上所需抽取的数据项,最终可大幅提高数据项抽取精度,避免全自动化方法抽取出所有数据记录和数据项后再要求用户进行二次过滤的后处理。同时,基于半自动化的交互和标注信息,可基于半监督学习方法快速推导并自动产生数据项抽取规则,避免人工规则编写时过多的负担。
[0008] 现实的Web应用中,包含数据记录的网页往往都是从一个相同的模板网页动态生成的,这些页面需要的数据通常来自结构化的底层数据库。这就使得生成的Web页面具有非常相似的模板。由模板生成的Web页面通常具有相似的DOM树结构,因此我们可以采用基于DOM树的 XPath来实现相似数据的定位和抽取。然而,由于来自于相同模板的相似页面通常会有一些细小的差距,简单的XPath抽取规则通常不具备完全的泛化能力,因而在面临一定的结构变异时可能会失效。因此,我们希望通过有效地方法推导和生成具有泛化能力和稳定效果的抽取规则,以便有效应对相似页面的结构变化。
[0009] 但是如何从相似性网页自动地学习和推导稳定的抽取规则是一个到目前为止尚未完全解决的技术难题。Myllymaki和Jackson首次人工构造了稳定的抽取规则,首次正式定义了抽取规则的稳定性;N. Niesh使用基于概率的树编辑模型来定义Web页面随着时间变化的过程,并且将这个概率模型加入抽取规则的推导过程中去。虽然这种方法能够帮助我们从候选的抽取规则集合中选出一个稳定的抽取规则,但是概率模型需要大量的历史页面信息,处理效率比较低且不具有普遍适用性。
[0010] 因此,如何从小样本标记页面中快速学习推导出稳定的抽取规则仍然是一个难点的开放性问题。

发明内容

[0011] 发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种基于小样本半监督学习的网页数据抽取方法,能完成网页数据抽取规则的生成和网页数据的自动化抽取处理。
[0012] 技术方案:为实现上述发明目的,本发明采用的技术方案为一种基于小样本半监督学习的网页数据抽取方法,包括如下步骤:(1)针对来自同一网页模板的相似性网页,选取一组样本网页,在其中一至三个样本网页上,由用户手工选择并标注出同一个需要抽取的数据项,该数据项称为标注数据项;
(2)根据所述标注数据项在DOM树上所对应的节点,所述节点称为标注节点,根据标注数据项在对应的DOM树上的不同特征,构造一组关于该标注节点的初始候选特征集合;
(3)基于所述样本网页,利用半监督式学习方法,采用第一算法确定初始候选特征集合中的最小关联性特征,推导出一个对该数据项具有泛化能力的抽取规则;所述具有泛化能力的抽取规则是指:当一个数据项在不同网页上出现一些结构变化的情况下,抽取规则仍然能稳定正确的抽取出该数据项;
(4)对一个网页上拟抽取的每一个数据项都进行步骤(3)所述的规则推导,得到该网页上关于这组数据项的一组抽取规则;
(5)将这组推导出的抽取规则作用于一批待抽取数据的相似性网页,最终抽取出一批数据项。
[0013] 进一步的,所述步骤(2)中,初始候选特征包括三种类型:结构特征、属性特征和内容特征;所述初始候选特征由一个三元组(特征类型t,距离d,特征值v)描述。
[0014] 进一步的,所述结构特征包括自标注节点到DOM树根节点间所有中间节点的结构特征,这种结构特征描述为(TAG,d,nv),TAG表示是一个DOM中间节点元素,d表示在DOM树上该中间节点到标注节点间的距离,nv表示该中间节点的元素名称;所述属性特征包括自标注节点到DOM树根节点间所有中间节点的id和class属性特征,这种属性特征描述为(属性类型名,d,av),av表示该属性的值;所述属性类型名包括该中间节点的基本属性id和class,该中间节点的前驱节点的id和class属性以及该中间节点的后继节点的id和class属性;
所述内容特征包括标注节点前后首次出现的、具有帮助标识和定位标注节点作用的非空文本节点,所述非空文本定义为anchor文本,这种内容特征描述为(文本特征名,d,cv),cv表示该anchor文本的值;所述文本特征名包括左端anchor文本类型和右端anchor文本类型;
允许将同一个数据项在两个相似页面上相同的特征下具有的不同的特征值,用或运算把不同的特征值包含进来,所述相同指特征类型和距离相同。
[0015] 进一步的,所述步骤(3)中,对标注节点的候选特征集合进行迭代处理:对候选特征集合在样本网页上进行不断的测试与合并,直到找到一个能正确抽取出标注数据项的泛化的抽取规则为止。
[0016] 进一步的,所述步骤(3)包括:用X表示由候选特征集合F推导而成的抽取规则,定义
为抽取规则X的距离,其值为候选特征集合F中所有特征的最大距离:

式中,表示候选特征集合F中的特征;
支持度的定义如下:对于来自样本页面中的非标注页面,定义抽取规则X的支持度为抽取规则X正确抽取出非标注页面的比例:

同时,定义生成的规则抽取数据项的召回率和精度:假设A表示一个数据项在多个标注页面上的标注节点集合,B表示抽取规则X在多个标注页面上正确抽取出的标注节点集合,C表示抽取规则X在标注页面上实际抽取出来的所有节点集合,定义抽取规则X的精度和召回率 如下:

在抽取规则的推导过程中,最终生成的抽取规则满足以下四个条件:
1)召回率为1:抽取规则能够返回标注页面上的所有标注节点;
2)在所有满足条件1)的抽取规则中,选择对所有标注节点抽取精度值最大的抽取规则;
3)在所有满足条件1)和2)的抽取规则中,选择距离最小的抽取规则;
4)在满足前面三个条件的所有抽取规则中,选择支持度最大的抽取规则作为最终的抽取规则。
[0017] 进一步的,所述步骤(3)包括:在迭代过程中使用渐进式逐步求精的抽取规则推导方法,不断测试和合并初始特征以缩小抽取规则对DOM树上标注节点的查询定位范围;如果一个初始的或者合并的特征不能精确定位到标注节点,则逐步加入其它的特征来缩小查询定位范围,通过这种特征合并和渐进式学习步骤,逐步推导出能够唯一定位到标注节点的特征集合。
[0018] 进一步的,所述第一算法为类Apriori算法。
[0019] 有益效果:本发明可与现有的很多基于结构化抽取规则的Web信息抽取系统相融合,为这些系统自动产生数据抽取规则。由于本发明是基于简单交互和标注的半自动化的规则生成和抽取处理,不需要人工编写规则,因而,可大大提高Web信息抽取的自动化程度,减轻用户人工操作的负担。附图说明
[0020] 图1为本发明的抽取规则推导和网页数据抽取处理流程图;图2为样本页面及标注数据项示例图;
图3为标注数据项DOM树结构与标注节点示例图;
图4为两个示例网页上细节页面DOM树片段
图5为示例电影网站上三个细节页面DOM树片段;
图6 为三种方法得到的抽取规则的平均精度、召回率和F1_Value结果图。

具体实施方式

[0021] 下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0022] 图1给出了抽取规则推导和网页数据抽取处理流程图。该流程包含三个阶段:用户标注阶段、XPath抽取规则推导阶段和网页数据抽取阶段。
[0023] 在同一个Web网站上,尽管由相同模板生成的页面有相似的页面结构,但是由于HTML页面节点的缺失、移位等因素,这些页面之间可能包含细小的结构差异。为了最终能推导出具有良好泛化能力、可有效应对含有细小结构差异的相似页面的抽取规则,需要提供少量的样本页面供用户标注待抽取的数据项。在我们所实现的原型系统中提供了一个用户交互界面,允许用户直接在页面上简单选择并标注感兴趣的数据项,通过这种方式,只需要很简单的交互操作和用户干预就可以标注出数据项。与大量Web数据的抽取相比,这种简单标注的代价和负担很低。
[0024] 通过页面数据项的标注,可快速识别出标注数据项的绝对XPath,然而,由于页面结构的变化,绝对XPath通常不能适用于所有相似页面。因此,我们需要基于以上标注出的页面样本,综合考虑各种与数据项相关的特征,采用半监督学习方式,构造一个具有较强泛化能力的相对XPath抽取规则。
[0025] 基于半监督学习的XPath抽取规则推导过程主要包含两个步骤。首先获取标注数据项的初始特征集合,然后应用类Apriori算法组合这些特征,采用渐进式逐步求精的方法,直到找到最优的XPath抽取规则。最后形成的抽取规则将具有较强的泛化能力,能够抽取相同模板生成的相似页面数据项。
[0026] 为每个数据项生成了具有泛化能力的XPath抽取规则后,即可将该抽取规则用于新的页面,快速抽取出目标数据项。
[0027] 为了完成以上的XPath规则推导,首先需要描述用于页面抽取规则推导算法的特征及其对应的XPath查询表达式。所谓特征,是指在DOM树上与标注节点有关的、用于学习标注节点抽取规则的DOM节点及其属性。我们主要采用三种类型的特征:结构特征、属性特征和内容特征。
[0028] 我们将每一个特征表示为一个三元组(Type, Distance, Value),其中Type表示特征类型,Distance表示特征与标注节点的距离,其值为DOM树上特征节点与标注节点之间的距离,Value表示特征的值。而每个特征对应于一个XPath表达式,我们可以通过这个XPath表达式查找标注节点的所在范围。
[0029] 图2是来自于某商业网站的一个示例页面片段,其中价格“$15.99”是我们需要抽取的目标项之一,我们需要基于该价格数据项在DOM树上的结构特点学习出该价格数据项的抽取规则。图3是标注的价格数据项所对应的DOM树结构与特征,其中,价格数据项标注节点为文本节点pcadata($15.99)。
[0030] 对于DOM树上一个标记节点到根节点路径上的每个中间节点,我们都将其作为标记节点的一个结构特征(“TAG”, d, nv)加入初始候选特征集合中。其中,字符串常量TAG用于说明该特征是一个tag节点,其节点名为t(如上例中的table,tr,td,span,b,pcadata等),d表示该中间节点距离标记节点的距离。例如,对于图3所示的标注节点的DOM树结构,我们需要将(“TAG”,0,pcadata)、(“TAG”,1,b)、(“TAG”,2,span)等一直到根节点这条路径上的所有结构特征都加入初始候选特征集合中去。
[0031] 每一个结构特征都对应于一个XPath查询表达式,我们可以通过XPath表达式缩小标记节点的查询范围。一般地,特征(“TAG”, d, t)对应的XPath为“//t/*/.../*/node()”,其表示位于t节点下深度为d的节点可能包含标记节点。对于图2和3实例中的标记节点,上面三个结构特征对应的XPath表达式分别为“//pcadata”、“//b/node()”、“//span/*/node()”。
[0032] 通常Web页面上的DOM节点都包含许多属性,合理利用这些属性能帮助准确快速地定位到目标节点。根据观察,DOM节点中的id和class属性通常是最重要的两个属性,在大部分的Web页面中,通过使用DOM节点的id和class属性,我们能够迅速缩小在DOM树上的定位查询范围,从而精确定位到目标节点。
[0033] 1)基本id和class属性对于DOM树上标记节点到根节点路径上的每个中间节点,如果含有id属性,则添加id属性特征(“ID”, d, idVal)到初始特征集合中。其中,字符串常量ID用于说明该特征是一个ID属性特征,其值为idVal,d表示该属性节点距离标记节点的距离。类似地,也需要将class属性特征(“CLASS”, d, classVal)加入到初始特征集合中。例如,对于图3所示的标注项的DOM树结构,与标记节点有关的属性特征为 (“CLASS”,1,“priceLarge”)、(“ID”,2,“i3”)、(“ID”,3,“i2”)、(“ID”,4,“actualPriceRow”)等等,我们需要将这些特征加入初始候选特征集合中去。
[0034] 每一个基本属性特征也对应于一个XPath查询表达式,一般地,属性特征(“ID”, d, idVal)对应的XPath为“//*[@id=‘idVal’]/*/.../*/node()”,其表示如果一个节点的id属性值为idVal,则距离其深度为d的节点可能包含标记节点。对于图2和图3实例中的标记节点,距离标记节点值为3范围以内的属性特征对应的XPath表达式分别为“//*[@class=‘priceLarge’]/node()”、“//*[@id=‘i3’]/*/node()”、“//*[@id=‘i2’]/*/*/node()”。
[0035] 2)前驱与后继id和class属性当一个中间节点没有足够显著的属性帮助定位标注节点时,有时利用该中间节点的前驱或后继节点的属性也可以帮助有效定位到标注节点。为此,我们将把每个中间节点的前驱和后继节点属性特征也加入到初始特征集合中。
[0036] 对于DOM树上标记节点到根节点路径上的每个中间节点,如果这些中间节点的第i个前驱兄弟节点含有id属性,则添加前驱id属性特征(“preceding-sibling-id-i”, d, psibIDVal)到初始特征集合中。其对应的XPath查询表达式为“//*[preceding-sibling::*[position()=i][@id=‘psibIDVal’]]/*/…/*/node()”,该表达式表示如果一个中间节点的第i个位置上的前驱兄弟节点具有id属性值‘psibIDVal’,则距离该中间节点深度为d的子孙节点可能包含标记节点。如果前驱兄弟节点含有class属性,我们也将在初始特征集合中添加相应的前驱class属性特征(“preceding-sibling-class-i”, d, psibClassVal)。类似地,中间节点的后继兄弟节点的id属性和class属性特征也将如上所述加入特征集合中,对应的特征类型分别为“following-sibling-id-i”或“following-sibling-class-i”。
[0037] 如图3,DOM树上标记节点到根节点路径上的每个中间节点的前驱与后继属性分别为(“following-sibling-id-1”, 2, “i4”)、(preceding-sibling-id-1,3,“i1”)、(preceding-sibling-class-1, 3,“c1”) 等。 对 于 (“following-sibling-id-1”,2, “i4”),其对应的XPath表达式为“//*[following-sibling::*[position()=1][@id=‘i4’]]/*/node()”,该表达式说明,如果一个中间节点的第1个后继兄弟节点具有id属性值为“i4”,则其孙子节点可能包含标记的目标节点。
[0038] 进一步,可能缺少足够显著的结构特征和属性特征,而某个内容特征可能具有显著的定位作用,因此,本发明将使用一个数据项前后出现的某个具有显著标志性的文本内容作为内容特征。
[0039] Web页面上的数据是展示给用户浏览查看的,为了帮助用户理解页面上数据项的含义,很多数据项前后都有相应的描述文本用于解释该数据项。我们把这个标注节点前后首次出现的非空文本定义为anchor文本。如图2和图3所示的价格标注项“$15.99”,其前驱首次出现的非空文本节点为“Price:”,则将该文本对应的内容特征(“Left-text”,0, “Price”)作为标记节点的内容特征加入到初始特征集合中,其中,字符串常量“Left-text”表示该anchor文本首次出现在标注项的左端。该内容特征对应的XPath查询表达式为“//node()[preceding::text()[normalize-space(.)!=‘’][position()=1][.=‘Price:’]”,该XPath表达式说明,对于任何一个节点,如果其首次出现的前驱非空文本值为“Price:”,则该节点有可能就是我们需要抽取的目标节点。对于图3来说,该XPath表达式能够将目标节点的查询范围缩小到“pcadata($15.99)”、 “b”、“span(id=i3)”、“td(id=i2)”四个节点。类似地,我们也需要将后继的内容特征(“Right-text”, 0, #text)加入到初始特征集合中,其对应的XPath为“//node()[following::text()[normalize-space(.)!=‘’][position()=1][.=#text]”。
[0040] 为了使抽取规则具有更强的泛化能力,我们还考虑了特征的“或”运算。当在多个样本页面上进行数据项标注时,同一个数据项在两个相似页面上有可能会在相同的特征(特征类型和距离相同)下具有不同的值,为此,我们需要考虑加入特征的“或”运算以包含这种多值的情况。例如,图4所示为示例网站上两个相似页面DOM树片段,标注节点为页面上的用户数,左图中标记节点的后继内容特征为(“Right-text”, 0, “users”),而右图中标记节点的后继内容特征为(“Right-text”, 0, “user”)。它们是相同的特征类型,并且与标注节点的距离相同,但前者的值为users(复数),后者的值为user(单数),我们考虑了特征的或运算,将它们视为同一个特征(“Right-text”, 0, “users” or “user”),该特征对应的XPath规则为“//node()[following::text()[normalize-space(.)!=‘’][position()=1][.= ‘users’ or .=‘user’]]”,该XPath表达式说明,对于任何一个节点,如果其首次出现的后继非空文本内容为“users”或者“user”,则该节点有可能就是我们需要抽取的目标节点。
[0041] 图5为某电影网站的三个相似页面的DOM树片段,电影年份紧接着出现在电影名之后。当用户在3个相似的样本页面上标注电影名时,三个页面上标注节点对应的后继内容特征分别为(“Right-text”, 0, “(1994)”) 、(“Right-text”, 0, “(2009)”)和 (“Right-text”, 0, “(2010)”)。这些后继内容特征文本值各不相同,如果我们将这些特征进行“或”运算组合成一个特征(“Right-text”, 0, “(1994)” or “(2009)” or “(2010)”),则对应的XPath规则只能抽取这三个文本值对应的页面。而真实页面抽取时页面中会出现更多不同的电影年份,因此,将难以用或逻辑列出页面中这些有很多变化的值。因此,当在多个页面上进行标注时,如果具有相同特征类型和距离、而特征值不同的特征数大于等于3,我们可以认为,这些多变的特征值是不稳定的,因而不适宜于作为内容特征使用,此时,我们就需要寻找其他的特征来重新学习抽取规则。因此,在最坏情况下,我们仅需要3个标注页面就可以学习得到XPath抽取规则。
[0042] 我们希望通过少量样本页面,归纳推导出稳定的XPath抽取规则,该抽取规则能够唯一精确定位到标注节点。在本发明中,抽取规则是从初始候选特征集合中基于渐进式学习逐步求精得到的。我们的目标是选择具有最佳泛化能力的XPath抽取规则,它具有一定的稳定性,能够应对页面结构的细小变化。我们将抽取规则的稳定性定义为在以后的相似页面中有效定位数据项的概率,然而,它需要大量的历史数据来计算这个概率,并且没有考虑抽取规则本身的性质特征。
[0043] 本发明采用两个标准来评估抽取规则的稳定性:距离和支持度。距离是指构成抽取规则的特征集与标记节点的最大距离。如(“TAG”,0,pcadata)、(“TAG”,1,b)两个特征可以合并推导出一条规则“//b/pcadata”,该规则的距离定义为特征集中距离的最大值1。抽取规则的距离反应了构成抽取规则的特征集合与标注节点的紧密程度,距离越大,紧密程度越低。支持度是指抽取规则在样本页面中的非标注页面中正确抽取的概率。
[0044] 假设我们用X(F)表示由特征集F合并推导而成的XPath抽取规则X,定义为抽取规则X的距离,其值为F中所有特征的最大距离。
[0045]支持度的定义如下,对于来自样本页面中的非标注页面,我们定义抽取规则X的支持度sup为X正确抽取出非标注页面的比例,即:

同时,我们定义生成的规则抽取数据项的召回率和精度。假设A表示一个数据项在多个标注页面上的标注节点集合,B表示抽取规则X在多个标注页面上正确抽取出的标注节点集合,C表示X在标注页面上实际抽取出来的所有节点集合。定义X的精度和召回率如下:


在抽取规则推导过程中,我们希望最终生成的XPath抽取规则需要满足以下四个条件:
1) 召回率为1,即抽取规则能够返回标注页面上的所有标注节点;
2)在所有满足条件1)的抽取规则中,选择对所有标注节点抽取精度值最大的规则,即抽取规则在标记页面上尽量不会抽取未标注的节点;
3) 在所有满足条件1)和2)的抽取规则中,选择距离最小的抽取规则;
4) 在满足前面三个条件的所有抽取规则中,选择支持度最大的作为最终的抽取规则。
[0046] 一个特征下所对应的标注节点的XPath查询表达式有可能定位到页面上的非标注节点。如果一个特征不能精确定位到标注节点,我们就需要逐步合并其它的特征来缩小查询范围,通过渐进式的学习,逐步推导出能够唯一定位到标注节点的特征集合。这就是我们所采用的基于特征合并的渐进式学习和推导的思想。
[0047] 例如,在图2和图3所示的样例中,为了学习得到标注节点“pcadata($15.99)”的抽取规则,若只采用标注节点的结构特征(“TAG”,0,pcadata),则对应的XPath表达式“//pcadata”抽取的是所有的文本节点;若进一步加入标注节点的内容特征(“Left-text”, 0, “Price”),和其所对应的XPath表达式“//node()[preceding::text()[normalize-space(.)!=‘’][position()=1][.=‘Price:’]”,则能够唯一精确定位到标记节点“pcadata($15.99)”。因此,对于上面两个特征,我们将其合并起来,推导出一个更加精确的XPath抽取规则“//pcadata[preceding::text()[normalize-space(.)!=‘’][position()=1][.=‘Price:’]”,该规则表示,我们需要抽取的是一个文本节点,同时,该节点首次出现的前驱非空文本值为“Price:”,在图2和图3中,该XPath表达式就能够唯一定位到标注的价格数据项节点。
[0048] 为了得到最优的XPath抽取规则,首先需要用户标注样本页面上的目标数据项,然后系统自动获取所标注的目标数据项的初始特征,这个过程比较直观,我们只需要遍历标注页面的DOM树,从标注节点到根节点,将第4节所述的特征加入到候选特征集合S中,然后采用渐进式学习方法进行抽取规则的推导。
[0049] 用户提供的样本页面包含两部分,一至三个标注样本页面和数个非标注样本页面。我们从标注样本页面中学习推导出XPath抽取规则,然后用非标注样本页面选择支持度最高的规则。当得到标注节点的初始特征集合后,我们采用类似于Apriori算法的频繁项集关联规则方法,挖掘出最小关联特征,再将它们合并成XPath抽取规则。
[0050] 设S是第4节所述的初始候选特征集合 是由S中单个特征形成的特征集 为了便于理解以下的具体算法,在前面的具体例子中,初
始候选特征集S与 如下所示:
初始候选特征集

在算法中,第5行至第22行是从 到 的一轮迭代过程。在第k轮迭代中,我们首先检验 中的每个特征集F,如果其对应的XPath X(F)召回率不为1,我们就将其从候选特征集合中删除,所有剩下的特征就满足条件1)。第9行至12行我们始终记录到当前为止满足条件1)—4)最优的XPath X(F),其在满足条件1)的情况下,精度最高,距离最小,并且支持度最高。如果X(F)的精度为1,我们就将其保存在best_XPath中,否则保存在max_prec_XPath中。
[0051] 为了由 ,我们需要注意两点:其一,使用变量 存储精度小于1的特征集(第9行-10行),这些特征集有可能在下面的迭代过程中产生更优的XPath抽取规则。我们只向 添加精度小于1的特征集,其原因在于,如果X(F)精度达到最大值1,则再往F中添加特征不会让X的距离减小或者支持度提高。其二,第13行第19行表明只要找到精度值为1的best_XPath,我们就可以将 中距离和支持度次于best_XPath的特征集进行剪枝,快速缩小查询范围。最后, 中的候选特征集来源于 的特征组合(第20行)。
[0052] 根据以上算法,在图2、图3示例中,对标注节点推导最终的XPath抽取规则的过程如下:首先获取标注节点的初始候选特征集合S(S如上所述)。
[0053] 第一轮学习开始时,。对于所有的特征集 对应的XPath表达式
X(F)召回率都为1,将精度小于1的F加入 中( 中所有特征对应的XPath精度都小于1,以便用于下一轮组合出更优的XPath),当 中的所有特征集都测试完以后(7-12行),得到精度为1的best_XPath为 再对
进行剪枝,删除距离与支持度次于best_XPath的所有特征,这是因为best_XPath的精度已经为1,删除的这些特征不可能组合成比best_XPath更优的抽取规则。此时, 然后将 中的元素两两组合形成

[0054] 在第二轮学习开始时,我们对 中的所有特征集合进行测试。在本例中, 中的元素只有一个,取出 中的元素组合成新的XPath规则“//pcadata[preceding::text()[normalize-space(.)!=‘’][position()=1][.=‘Price:’]”,该XPath规则表示我们需要抽取一个文本节点,其前驱首次出现的非空文本值为“Price:”。该XPath规则的精度也为1,按照条件3)和4)从中选择距离最小,支持度最高的XPath规则(12行),最后得到的best_XPath表达式为“//pcadata[preceding::text()[normalize-space(.)!=‘’][position()=1][.=‘Price:’]”。此时 为空, 也为空,学习过程结束。
[0055] 4.实验结果在本节中,我们通过实验来评估本发明算法生成的XPath抽取规则的精度、召回率和F1值。
[0056] 我们收集了30个真实网站的网页作为我们的实验数据,这些网站包含了不同的领域,如产品网站、商务网站、金融网站、娱乐网站等等。这些网站都采用脚本生成,具有相同的网页模板。
[0057] 对每个网站,我们选择属于相同模板的10个页面作为样本页面,并从样本页面集中选择3个页面供用户标注待抽取的数据项,剩下的7个样本页面用于检测生成的XPath抽取规则的支持度。然后,我们对所有标注数据项都生成XPath抽取规则。
[0058] 在本发明中,我们采用信息检索领域的度量标准来衡量抽取规则的效果,我们将生成的XPath抽取规则用于大量相同模板生成的测试页面,计算其在测试页面上的抽取精度和召回率。另外,我们还评估了精度与召回率的综合标准——F1-Value。 [0059]我们对所有标记页面上的数据项都生成了抽取规则,表1中列举了部分网站典型页面数据项生成的XPath规则样例。从表中可以看出,在一般页面中,我们采用的特征数不超过
3个就能快速定位到标注节点,并且这些特征非常接近标注节点。这与网页设计的初衷是相符合的,网页设计者通常会在重要的数据项附近添加一些特殊的特征(结构特征、属性特征、内容特征、甚至视觉特征),以便引起用户的注意。
[0060] 我们还将本发明中学习得到的XPath抽取规则与绝对XPath抽取规则和Vertex方法得到的抽取规则进行了比较。我们对于每个数据集都采用以上三种方法推导出XPath规则,然后将规则应用到相同模板生成的30个测试页面中,计算各自精度、召回率和精度与召回率综合标准(F1_Value)。三种方法得到的抽取规则的平均精度、召回率和F1_Value如图6所示。绝对XPath抽取规则由于缺乏泛化能力,当遇到页面结构存在差异时,就会失效,因此精度和召回率较低,而我们的方法与Vertex方法相比,在特征的选取上考虑了特征的或逻辑,因而能够达到更高的精度和召回率。实验结果显示,本发明的方法推导学习生成的XPath抽取规则,在相似页面上进行数据项抽取时,能够达到97.5%的精度与接近100%的召回率。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈