从网页中抽取数据的方法和装置的制作方法

文档序号:6334830阅读:95来源:国知局
专利名称:从网页中抽取数据的方法和装置的制作方法
技术领域
本发明涉及数据业务技术,特别涉及从网页中抽取数据的方法和装置。
背景技术
在数据业务技术中,目前的网页信息抽取方式都是通过编写正则表达式实现的, 具体为针对每个网站,甚至网站内的每个版块,都需要编写对应的正则表达式。这种方式主要针对信息量相对较小的某个网站或网站内部的某个版块,比较适合少数网站短期的研究行为。但是,网站采用的技术或者布局日新月异,这样随着技术或布局的变化,就需要重新编写相应的正则表达式,这会导致无法对全网海量的数据进行实时处理,并且,正则表达式都是由人工执行的,这种随着技术或布局的变化就需要重新编写相应的正则表达式的方式,需要太多人力资源。

发明内容
本发明提供了从网页中抽取数据的方法,以避免通过编写正则表达式的方式抽取数据,节省人力资源。本发明提供的技术方案包括一种从网页中抽取数据的方法,该方法包括步骤A,定义网页中节点的划分规则,根据节点划分规则和对训练样本网页的解析,获取用于抽取网页中数据的约束规则集合;步骤B,利用所述约束规则集合从待抽取的网页中抽取数据。一种从网页中抽取数据的装置,包括处理单元,用于定义网页中节点的划分规则,根据节点划分规则和对训练样本网页的解析,获取用于抽取网页中数据的约束规则集合;抽取单元,用于利用所述约束规则集合从待抽取的网页中抽取数据。由以上技术方案可以看出,本发明中,通过定义网页中节点的划分规则,根据节点划分规则和对训练样本网页的解析,获取用于抽取网页中数据的约束规则集合;以及利用所述约束规则集合从待抽取的网页中抽取数据,实现了根据节点自身属性及确定的规则约束来完成数据抽取,避免了根据网站网页结构量身定做模板或者编写正则表达式的方式, 同时也消除了网站改版或技术更换带来的模板重新定义或正则表达式重新编写等因素的影响;进一步地,本发明中,一旦规则约束确立,就可以对展现“同类节点但不同网站或不同结构的网页”准确实时进行数据抽取,极大的提高了方法的适用范围及时效性,很大程度上减少了人工干预,同时极大的改善了搜索引擎信息检索的质量及信息更新的及时性问题,使搜索引擎不必再受制于前端页面展现技术或版式多变的困扰。


图1为本发明实施例提供的基本流程图;图2为本发明实施例提供的步骤102的流程图;图3为本发明实施例提供的步骤204的具体流程图;图4为本发明实施例提供的确定步骤205中节点的约束集合的流程图;图5为本发明实施例提供的步骤209的流程图;图6为本发明实施例提供的确定维度在节点属性值上的极值约束条件集合的流程图;图7为本发明实施例提供的步骤103的具体流程图;图8为本发明实施例提供的步骤701的流程图;图9为本发明实施例提供的步骤702的具体流程图;图10为本发明实施例提供的步骤703的流程图;图11为本发明实施例提供的等价关系划分约束流程图;图12为本发明实施例提供的划分关系的排序约束的流程图;图13为本发明实施例提供的维度之间关联约束的流程图;图14为本发明实施例提供的步骤705的流程图;图15为本发明实施例提供的装置结构图。
具体实施例方式本发明提供的方法可对网页中的数据进行抽取,其主要是利用网页中节点自身或节点之间的属性定义相应的节点划分规则,再根据提供的普通训练样本网页集和指定抽取维度集合确定该指定抽取维度集合中各个维度在该普通训练样本网页集中出现的路径 (Xpath),采用基于粗糙集等价划分和维度间约束分析方法,计算得出各个维度对应的基于粗糙集的等价约束条件集合及维度在节点属性值上的约束条件集合等,该计算得出的约束条件集合可以通过反向验证方式来验证其有效性及通用性,最后将这些约束条件集合应用到网页的数据抽取中。其中,在后期的数据抽取中也可以不断的完善上述约束集合,也就是说,本发明提供的方法实质上是一个开放式的自动不断完善的过程。为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。参见图1,图1为本发明实施例提供的基本流程图。如图1所示,该流程可包括以下步骤步骤101,定义网页中节点的划分规则。本步骤101中,网页中节点实质上为将网页解析成DOM树,然后将DOM树转化成各个节点,组成节点集合。至于步骤101中的划分规则,其可以根据网页中各个节点自身包含的信息以及位置等因素来定义,也可以根据实际情况来定义,本发明实施例并不具体限定。优选地,作为本发明的一个实施例,该节点分类规则可包括以下几种的至少一个1)节点位置特征,即节点在DOM树中的位置;
2)节点的文本类型,即节点的类型是文本、注释,或样式等;3)节点的 HTML 标记 Tag ;4)节点内容;5)节点内容的字符长度;6)节点中包含的子节点中含有内容的子节点个数;7)节点所在HTML标记中的区域;8)节点兄弟节点的个数;9)节点文字的正则表达式;10)其他,可以根据不同的需求定义的节点划分规则。步骤102,根据节点划分规则和对训练样本网页的解析,获取用于抽取网页中数据的约束规则集合。本步骤102中训练样本网页的个数为一个以上,可统一存在一个集合比如训练样本集(以下以训练样本集为例进行描述)中,其主要是根据实际情况确定的,不需要特殊处理,可为普通网页。至于步骤102中的获取操作如何实现,具体在下文图2进行描述。步骤103,利用所述约束规则集合从待抽取的网页中抽取数据。至此,通过以上步骤实现了本发明实施例提供的数据抽取方法。参见图2,图2为本发明实施例提供的步骤102的流程图。本实施例中,步骤102 主要是根据节点划分规则对训练样本网页进行分析,识别出指定维度所在节点满足哪些约束规则,然后再将这些约束规则应用在其他样本网页,如果能够正确且唯一识别出所有样本网页在该设定维度的信息,则将该约束规则保留,形成约束规则集合,如果不能识别出, 则额外增加节点分类规则,重复上述过程,最终得到有效的约束规则集合。下面对该步骤 102进行详细描述。如图2所示,该流程可包括以下步骤步骤201,指定从训练样本网页中抽取的维度I (Dl,D2,D3. . . Dm)(记为维度集合 I),以及指定该维度集合I对应的节点存放集合UI。步骤201中,指定维度集合I中的维度是从样本训练网页中需要抽取的结果对象, 比如标题title、内容content、发表时间time等。其可与集合UI中的节点具有一一对应关系,也可具有一对多关系,其中,维度对应的集合UI中的节点,实质上是该维度在训练样本网页中的位置,即路径Xpath,比如标题在某个训练样本网页中的Xpath,这里,获取这些信息的Xpath方式有很多,利用firefox浏览器插件是其中一种很简单的方式。步骤202,遍历训练样本集中的训练样本网页,将该遍历到的训练样本网页作为当前样本。步骤203,将当前样本解析成DOM树,然后将DOM树转化成节点集合U。本步骤203中,集合U可与集合UI相同,也可不同,比如,集合U为集合UI中的子集,或者集合U与集合UI具有部分相同的节点等。步骤204,根据不同的节点划分规则将集合U划分成不同的划分集合。也就是说,步骤101定义多少个节点划分规则,本步骤204就可得到多少个划分集合,具体可参见图3所示的流程。
参见图3,图3为本发明实施例提供的步骤204的具体流程图。如图3所示,该流程可包括以下步骤步骤301,遍历步骤101定义的节点划分规则,将遍历到的节点划分规则作为当前划分规则;步骤302,遍历集合U,将遍历到的节点作为当前节点;步骤303,判断当前节点是否满足当前划分规则,如果是,执行步骤304 ;如果否, 执行步骤305 ;步骤304,将当前节点添加到该当前划分规则对应的划分集合中,之后执行步骤 305。步骤305,判断集合U中是否还存在未被遍历的节点,如果是,将该未被遍历的其中一个节点作为当前节点,返回执行步骤303 ;如果否,执行步骤306 ;步骤306,判断定义的节点划分规则中是否还存在未被遍历的节点划分规则,如果是,将未被遍历的其中一个节点划分规则作为当前划分规则,返回执行步骤302,否则,结束当前流程。至此,通过上述步骤306实现了步骤204中的流程。步骤205,根据划分集合,确定集合UI中每个节点的约束集合,将集合UI中所有节点的所有约束集合作为该训练样本网页对应的第一约束条件集合。本步骤205实质上是分别确定集合UI中每个节点出现在步骤204得到的哪些划分集合中,得到该节点的约束集合,将集合UI中所有节点的约束集合组合在一起,得到第一约束条件集合。参见图4,图4为本发明实施例提供的确定步骤205中节点的约束集合的流程图。 如图4所示,该流程可包括以下步骤步骤401,遍历集合UI,将遍历到的节点作为当前节点;步骤402,判断步骤204得到的划分集合中是否存在包含该当前节点的划分集合, 如果是,执行步骤403,否则,执行步骤404 ;步骤403,将当前节点上对应该存在的划分集合的节点属性值和该当前节点存放在当前节点的约束集合中。之后执行步骤404。由于划分集合与节点划分规则对应,因此,该当前节点的节点属性值与该存在的划分集合所对应的节点划分规则对应。步骤404,判断集合UI中是否还存在未被遍历的节点,如果是,将未被遍历的其中一个节点作为当前节点,返回步骤402,否则,结束当前流程。至此,通过上述步骤可以确定集合UI中各个节点的约束集合。步骤206,针对集合UI中任意两个节点,计算该两个节点对应的两个维度在至少一个属性上的二元关系,将计算结果记录在该训练样本网页对应的第二约束条件集合(也称为维度间约束集合)。其中,根据节点属性值类型,及节点之间的关联,本发明实施例中的二元关系主要包括以下至少一种(1)等价关系指每个节点属性值都具有的二元关系,用于判断两个节点在同一属性上是否相等,比如两个节点是否都是文本节点,是否有孩子节点等;
(2)比较关系其是可选的二元关系,用于比较两个节点在同一属性上的取值,其得到的比较结果集分为大于、小于、等于三种;(3)距离关系数值型属性都具有,结果为两个节点在此数值型属性上的数值差的绝对值;(4)其他,根据属性的值,可以增加更多的自定义的关系。以集合UI中任意两个节点对应的两个维度为题目Tp和日期Dp,选取的属性为位置属性为例,由于在位置属性上有比较关系,以及距离关系,因此,可计算题目和日期在位置属性上这两种关系的至少一个,以计算这两种关系为例,假设这两个计算结果为比较关系τρ > Dp,距离关系|Tp-Dp| < 5,如此,将则将该计算结果记录到当前样本对应的维度间约束集合中。步骤207,判断训练样本集是否还存在未被遍历的训练样本网页,如果是,执行步骤208 ;否则,执行步骤209。步骤208,将该未被遍历的其中一个训练样本网页作为当前样本,返回执行步骤 203。步骤209,根据步骤205计算的第一约束条件集合确定基于粗糙集的等价约束条件集合。参见图5,图5为本发明实施例提供的步骤209的流程图。如图5所示,该流程可包括以下步骤步骤501,遍历第一约束条件集合中各个节点的约束集合,将遍历到的节点约束集合作为当前约束集合。步骤502,判断当前约束集合对应的节点划分规则是离散型还是连续型,并根据确定结果计算当前约束集合中各个节点分布的概率。由于在步骤205中,节点的约束集合对应划分集合,而划分集合是依赖于节点划分规则划分的,即划分集合对应节点划分规则,因此,本步骤502根据当前约束集合很容易确定出该当前约束集合对应的节点划分规则。本实施例中,如果对应的节点划分规则是离散型,则步骤502中的计算可按照公式一执行
权利要求
1.一种从网页中抽取数据的方法,其特征在于,该方法包括步骤A,定义网页中节点的划分规则,根据节点划分规则和对训练样本网页的解析,获取用于抽取网页中数据的约束规则集合;步骤B,利用所述约束规则集合从待抽取的网页中抽取数据。
2.根据权利要求1所述的方法,其特征在于,所述步骤A中的获取包括步骤Al,根据节点划分规则,生成每一训练样本网页对应的第一约束条件集合和第二约束条件集合;步骤A2,依据第一约束条件集合和第二约束条件集合分别生成对应的约束规则集合。
3.根据权利要求2所述的方法,其特征在于,所述步骤Al包括步骤All,针对每一训练样本网页,将该训练样本网页解析成DOM树,并将该DOM树转换成节点集合U;步骤A12,按照定义的不同节点划分规则,将节点集合U划分成不同的划分集合; 步骤A13,根据所述划分集合,确定指定抽取维度集合对应的节点存放集合Ul中每个节点的约束集合,将节点存放集合UI中所有节点的所有约束集合作为该训练样本网页对应的第一约束条件集合;步骤A14,针对节点存放集合UI中任意两个节点,计算该两个节点对应的两个维度在至少一个属性上的二元关系,将计算结果记录在该训练样本网页对应的第二约束条件集
4.根据权利要求3所述的方法,其特征在于,所述步骤A12包括步骤A121,遍历定义的节点划分规则,将遍历到的节点划分规则作为当前划分规则; 步骤A122,遍历节点集合U,将遍历到的节点作为当前节点;步骤A123,判断该当前节点是否满足当前划分规则,如果是,则将当前节点添加到该当前划分规则对应的划分集合中,执行步骤A124,如果否,执行步骤AlM ;步骤A124,判断所述节点集合U中是否还存在未被遍历的节点,如果是,将该未被遍历的其中一个节点作为当前节点,返回执行步骤A123 ;如果否,执行步骤A125 ;步骤A125,判断定义的节点划分规则中是否还存在未被遍历的节点划分规则,如果是, 将未被遍历的其中一个节点划分规则作为当前划分规则,返回执行步骤A122,否则,结束当前流程。
5.根据权利要求3所述的方法,其特征在于,所述步骤A13包括 步骤A131,遍历节点存放集合UI,将遍历到的节点作为当前节点;步骤A132,判断步骤A12得到的划分集合中是否存在包含该当前节点的划分集合,如果是,将当前节点上对应该存在的划分集合的节点属性值和该当前节点存放在当前节点的约束集合中,之后执行步骤A133 ;如果否,执行步骤A133 ;步骤A133,判断节点存放集合Ul中是否还存在未被遍历的节点,如果是,将未被遍历的其中一个节点作为当前节点,返回步骤A132,否则,结束当前流程。
6.根据权利要求2所述的方法,其特征在于,所述步骤A2中的约束规则集合包括基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合。
7.根据权利要求6所述的方法,其特征在于,所述基于粗糙集的等价约束条件集合依据第一约束条件集合生成,具体包括步骤A21,遍历第一约束条件集合中各个节点的约束集合,将遍历到的节点约束集合作为当前约束集合;步骤A22,判断当前约束集合对应的节点划分规则是离散型还是连续型,并根据确定结果计算当前约束集合中各个节点分布的概率;步骤A23,从当前约束集合中去除具有概率不同于指定目标节点的概率的节点;步骤A24,判断第一约束条件集合中的节点约束集合是否已被全部遍历,如果是,执行步骤A25,否则,将未被遍历的其中一个节点约束集合确定为当前约束集合,返回执行步骤 A22 ;步骤A25,将通过步骤A23得到的所有集合确定为基于粗糙集的等价约束条件集合。
8.根据权利要求6所述的方法,其特征在于,所述维度在节点属性值上的约束条件集合依据第二约束条件集合生成,具体包括合并不同训练样本网页对应的第二约束条件集合;确定合并后得到的集合为维度在节点属性值上的约束条件集合。
9.根据权利要求8所述的方法,其特征在于,所述第二约束条件集合中的二元关系至少包括比较关系和距离关系;将不同训练样本网页对应的第二约束条件集合合并至少包括合并比较关系和合并距离关系;其中,合并比较关系包括在一个训练样本网页对应的第二约束条件集合中存在两个节点之间的比较关系,判断该比较关系是否存在其他训练样本网页对应的第二约束条件集合中,如果是,该比较关系保留;如果不是,删除掉该比较关系;合并距离关系包括在一个训练样本网页对应的第二约束条件集合中两个维度之间的距离关系为第一值,如果在其他训练样本网页对应的第二约束条件集合中该两个维度之间的距离关系为第二值,则该两个维度之间的距离关系在合并后为第一值至第二值之间的数值。
10.根据权利要求6所述的方法,其特征在于,所述步骤A2进一步包括验证所述基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合是否识别出所述指定维度集合中的各个维度,如果是,则执行步骤B ;否则,执行步骤A3 ;步骤A3,确定维度在节点属性值上的极值约束条件集合。
11.根据权利要求10所述的方法,其特征在于,所述验证基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合是否识别出指定维度集合中的各个维度包括针对每一训练样本网页中任意两个维度Dl和D2,执行以下处理如果维度Dl对应的节点集合为Um (Nxl,· · · NJ,维度Dl对应的节点集合为Udid2 {(NxlNyl) · · · Nyn),维度Dl和D2 上的二元关系集合为UR(R1,. . . to),则将维度Dl和维度D2对应的节点集组合,得到以下节点对UD1D2{(Nxi,Nyi) I i e {1,m},j e {1,η}};遍历所述节点对,确定满足所述二元关系集合中所有二元关系的节点对,得到集合Udl {(Nx, Ny)...};在对所述训练样本网页中每两个维度都完成所述处理后,判断最终得到满足二元关系集合中所有二元关系的节点对组成的集合是否仅有1个,如果是,确定所述基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合识别出所述指定维度集合中的各个维度;否则,确定所述基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合识别不出所述指定维度集合中的各个维度。
12.根据权利要求10所述的方法,其特征在于,所述步骤A3包括步骤A31,遍历所述指定维度集合中的维度,将遍历到的维度作为当前维度,如果当前维度对应的节点集Un中包含的节点数量大于1,所述节点集Un中的节点属于同一训练样本网页,则遍历指定目标节点与当前维度对应的所有节点具有的各个属性,将遍历到的属性作为当前属性;步骤A32,将指定目标节点分别与当前维度对应的所有节点在当前属性上进行比较,得到比较结果;步骤A33,根据所述比较结果确定所述指定目标节点在该当前属性上的取值; 步骤A33,根据确定的取值确定当前属性对应的输出结果;步骤A34,判断是否还存在未被遍历的属性,如果是,将未被遍历的其中一个属性确定为当前属性,返回执行步骤A32 ;如果否,执行步骤A35 ;步骤A35,将所述各个属性对应的各个输出结果组成各个集合,对各个集合进行处理, 得到当前维度对应的极值序列集合;判断当前是否到达预设的合并条件,如果是,执行步骤 A36,否则,如果当前还存在未被遍历的维度,则将其中一个未被遍历的维度作为当前维度, 返回执行步骤A31 ;步骤A36,合并各个维度对应的极值序列集合,将合并后得到的极值序列集合作为维度在节点属性值上的极值约束条件集合。
13.根据权利要求12所述的方法,其特征在于,所述比较结果包括大于、等于和小于; 所述步骤A33包括如果比较结果只有小于,等于和小于为0,则取值为Top ; 如果比较结果只有小于和等于,大于为0,则取值为Tops ; 如果比较结果只有大于,小于和大于为0,则取值为Bottom ; 如果比较结果只有大于和等于,小于为0,则取值为Bottoms ; 如果比较结果既有大于又有小于,等于为任意,则取值为Middle ; 如果比较结果只有等于,大于和小于都为0,则取值为Identical。
14.根据权利要求13所述的方法,其特征在于,所述步骤A34包括 如果取值为Top,Bottom,则输出结果为1,作为极值序列的尾部;如果取值为Tops,Bottoms,则输出结果为{2,m_l},作为极值序列的开头或者中间部分,所述m为指定维度集合中维度的数量;如果取值为Identical,则输出结果为m,作为极值序列的开头或者中间部分; 如果取值为Middle,则输出结果为0,作为序列的尾部后续处理。
15.根据权利要求14所述的方法,其特征在于,所述步骤A35包括将根据所述输出结果为m得到的第一集合中的元素排列,得到排列集合I; 把第一集合中所有元素都分为Top,Bottom,确定排列集合根据所述输出结果为1 得到的第二集合为该维度对应的符合条件的第一极值序列;从所述节点集Un中确定出满足排列集合&+根据所述输出结果为{2,m-l}得到的第三集合的子集Uns,把第三集合中的bottoms转为bottom,tops转为top,加入至排列集合仏+根据所述输出结果为{2,m-l}得到的第三集合中,形成第二极值序列;合并所述第一极值序列和第二极值序列,将合并后得到的极值序列确定为当前维度对应的极值序列集合;所述预设条件为第三集合中的元素数量为0。
16.根据权利要求15所述的方法,其特征在于,所述合并第一极值序列和第二极值序列,或者步骤A36中合并各个维度对应的极值序列集合具体包括针对两个极值序列Sl和S2,如果Sl e S2 JiJSl η S2 = S2,如果S2 e Si,则Sl η S2 =Si,如果Sl = S2,则Sl η S2 = Si,其他则返回Φ。
17.根据权利要求10所述的方法,其特征在于,当基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合识别不出所述指定维度集合中的各个维度时,所述步骤B包括步骤Bi,生成待抽取网页对应的信息集合;步骤Β2,对所述信息集合按照定义的节点划分规则进行划分,得到信息集合的各个子集;步骤Β3,合并得到的各个子集,得到特征值集合;步骤Β4,根据所述基于粗糙集的等价约束条件集合、维度在节点属性值上的约束条件集合和维度在节点属性值上的极值约束条件集合对所述特征值集合进行规则约束,得到用于抽取数据的关联约束映射表;步骤Β5,利用所述关联约束映射表进行数据抽取。
18.根据权利要求17所述的方法,其特征在于,所述步骤Bl包括 步骤B11,将待抽取网页解析成DOM树;步骤Β12,遍历DOM树上的所有节点,将遍历到的节点作为当前节点,执行步骤Β13; 步骤Β13,判断该节点是否为注释节点,如果是,执行步骤Β14,否则,执行Β15 ; 步骤Β14,判断DOM树是否还有节点没有遍历,如果是,将该未被遍历的其中一个节点作为当前节点,返回执行步骤Β13,如果否,返回执行步骤Bll ;步骤Β15,将该当前节点添加到信息集合中,返回执行步骤Β14。
19.根据权利要求17所述的方法,其特征在于,所述步骤Β2包括步骤Β21,判断所述信息集合是否为空,如果为空,执行步骤Β24,否则执行步骤Β22 ; 步骤Β22,遍历信息集合,将遍历到的信息集合中的节点作为当前节点,执行步骤Β23; 步骤Β23,针对定义的每一节点划分规则,判断当前节点是否满足该划分规则,如果满足,则将当前节点添加到该节点划分规则对应的子集中,返回步骤Β21,如果不满足,则返回步骤Β21 ;步骤Β2,将最后得到的各个子集作为对所述信息集合按照定义的节点划分规则进行划分所得到的子集。
20.根据权利要求17所述的方法,其特征在于,所述步骤Β3包括 步骤Β31,初始化一个新的特征值集合;步骤Β32,遍历步骤Β2得到的子集,将遍历到的子集作为当前子集,执行步骤Β33; 步骤Β33,遍历当前子集中的节点,将遍历到的节点作为当前节点,执行步骤Β34; 步骤Β34,判断特征值集合中是否包含该当前节点,如果包含,执行步骤Β36 ;否则,执行步骤B35 ;步骤B35,将当前节点及其对应的特征值添加到特征值集合中,之后执行步骤B37 ; 步骤B36,将当前节点对应的特征值添加到特征值集合中,之后执行步骤B37 ; 步骤B37,将该当前节点设置为已访问标志Signed,并执行步骤B38 ; 步骤B38,判断当前子集是否有节点没有遍历,如果是,将其中一个未被遍历的节点作为当前节点,返回执行步骤B34,如果否,执行步骤B39 ;步骤B39,将当前子集设置为已处理完毕的标志;之后执行步骤B30 ; 步骤B30,判断步骤B2得到的子集中是否还存在未被遍历的子集,如果是,将其中一个未被遍历的子集作为当前子集,返回执行步骤B33,如果否,结束当前流程。
21.根据权利要求17所述的方法,其特征在于,所述步骤B4包括步骤B41,根据所述基于粗糙集的等价约束条件集合生成等价关系划分映射表; 步骤B42,根据所述等价关系划分映射表和所述维度在节点属性值上的极值约束条件集合生成排序划分约束映射表;步骤B43,根据所述维度在节点属性值上的约束条件集合和所述排序划分约束映射表生成用于抽取数据的关联约束映射表。
22.根据权利要求21所述的方法,其特征在于,不同维度对应不同的基于粗糙集的等价约束条件集合;所述步骤B41包括步骤B411,遍历各个维度对应的基于粗糙集的等价约束条件集合,将遍历到的对应维度的等价约束条件集合作为当前约束条件集合;步骤B412,利用当前约束条件集合中的第一个约束条件对所述特征值集合进行等价划分;步骤B413,判断当前约束条件集合是否仅包含第一个约束条件,如果是,执行步骤 B416,否则,将第一个约束条件之后的约束条件作为当前约束条件,执行步骤B414;步骤B414,使用当前约束条件对通过使用上一个约束条件进行等价划分得到的满足上一个约束条件的集合进行等价划分;步骤B415,判断当前约束条件是否为当前约束条件集合的最后一个约束条件,如果是, 执行步骤B416,如果否,将当前约束条件的下一个约束条件作为当前约束条件,返回执行步骤B414 ;步骤B416,将满足最后一个约束条件的集合转化为“以维度为键值,满足约束的节点集为值对”的等价关系划分映射表;步骤B417,判断各个维度对应的等价约束条件集合中是否还存在未被遍历的等价约束条件集合,如果是,将其中一个未被遍历的维度等价约束条件集合作为当前约束结合,执行步骤B412,否则,结束当前流程。
23.根据权利要求21所述的方法,其特征在于,所述步骤B42包括步骤B421,遍历所有维度对应的排序约束条件,将遍历到的维度对应的排序约束条件作为当前约束条件;所述排序约束条件为维度对应的极值序列;步骤B422,从等价关系划分映射表中读取该维度对应的候选节点集合; 步骤B423,根据当前约束条件对候选节点集合进行分类,对分类后得到的多个块集合分别进行块内排序;步骤B4M,分别从每块选取指定的TopN个节点,并按照块顺序依次放到同一个节点集合中;步骤B425,将该节点集合存放到“以其所在的维度为键值,节点集为值对”的排序划分约束映射表中;步骤B似6,判断是否存在未被遍历的排序约束条件,如果是,将其中一个未被遍历的对应维度的排序约束条件作为当前约束条件,返回执行步骤B422,否则,结束当前流程。
24.根据权利要求21所述的方法,其特征在于,所述步骤B43包括步骤B431,遍历所有维度对应的关联约束条件,将遍历到的维度关联约束条件作为当前关联条件;所述关联约束条件为维度在节点属性值上的约束条件集合;步骤B432,从排序划分约束映射表中获取与当前关联条件相关的维度所对应的所有候选节点;步骤B433,对获取的所有候选节点进行积映射,得到一组以节点对为元素的新集合; 步骤B434,对步骤B433得到新集合中的节点对进行约束计算,将满足约束规则的元素保留,并删除不满足约束的节点对,得到该维度的关联约束映射表;步骤B435,判断是否存在未被遍历的关联约束条件,如果是,将其中一个未被遍历的关联约束条件作为当前约束条件,返回执行步骤B432,否则,结束当前流程。
25.根据权利要求17所述的方法,其特征在于,所述步骤B5包括步骤B51,遍历关联约束映射表中维度的候选节点集合,将该维度的候选节点集合作为当前集合;步骤B52,判断当前集合中的节点个数是否为1,如果是,执行步骤B53,否则,执行步骤B56 ;步骤B53,根据需求抽取该节点的相关内容信息,即去除网页的标记以及相关格式信息;步骤B54,将该信息保存到“以维度为键值,节点信息内容为值对”的信息体集合中; 步骤B55判断关联约束映射表中是否还存在未被遍历的维度候选节点集合,如果是, 将其中一个未被遍历的维度候选节点集合作为当前集合,返回执行步骤B52;否则,结束当前流程;步骤B56,将此待抽取网页的页面链接、维度标识及其候选节点集合写入错误处理日志中。
26.一种从网页中抽取数据的装置,其特征在于,该装置包括处理单元,用于定义网页中节点的划分规则,根据节点划分规则和对训练样本网页的解析,获取用于抽取网页中数据的约束规则集合;抽取单元,用于利用所述约束规则集合从待抽取的网页中抽取数据。
27.根据权利要求沈所述的装置,其特征在于,所述处理单元包括约束条件集合生成子单元,用于根据节点划分规则,生成每一训练样本网页对应的第一约束条件集合和第二约束条件集合;约束规则集合生成子单元,用于依据第一约束条件集合和第二约束条件集合分别生成对应的约束规则集合。
28.根据权利要求27所述的装置,其特征在于,所述约束条件集合生成子单元通过以下操作生成每一训练样本网页对应的第一约束条件集合和第二约束条件集合针对每一训练样本网页,将该训练样本网页解析成DOM树,并将该DOM树转换成节点集合U;按照定义的不同节点划分规则,将节点集合U划分成不同的划分集合; 根据所述划分集合,确定指定维度集合对应的节点存放集合UI中每个节点的约束集合,将节点存放集合UI中所有节点的所有约束集合作为该训练样本网页对应的第一约束条件集合;针对节点存放集合UI中任意两个节点,计算该两个节点对应的两个维度在至少一个属性上的二元关系,将计算结果记录在该训练样本网页对应的第二约束条件集合。
29.根据权利要求27所述的装置,其特征在于,所述约束规则集合包括基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合;或者,所述约束规则集合包括 基于粗糙集的等价约束条件集合、维度在节点属性值上的约束条件集合和维度在节点属性值上的极值约束条件集合,其中,所述维度在节点属性值上的极值约束条件集合在所述基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合识别不出所述指定维度集合中的各个维度时存在。
30.根据权利要求四所述的装置,其特征在于,所述抽取单元在基于粗糙集的等价约束条件集合和维度在节点属性值上的约束条件集合识别不出所述指定维度集合中的各个维度时,包括信息集合生成子单元,用于生成待抽取网页对应的信息集合; 划分子单元,用于对所述信息集合按照定义的节点划分规则进行划分,得到信息集合的各个子集;合并子单元,用于合并得到的各个子集,得到特征值集合;规则约束子单元,用于根据所述基于粗糙集的等价约束条件集合、维度在节点属性值上的约束条件集合和维度在节点属性值上的极值约束条件集合对所述特征值集合进行规则约束,得到用于抽取数据的关联约束映射表;抽取子单元,用于利用所述关联约束映射表进行数据抽取。
全文摘要
本发明提供了从网页中抽取数据方法和装置,其中,该方法包括步骤A,定义网页中节点的划分规则,根据节点划分规则和对训练样本网页的解析,获取用于抽取网页中数据的约束规则集合;步骤B,利用所述约束规则集合从待抽取的网页中抽取数据。采用本发明,能够避免通过编写正则表达式的方式抽取数据,节省人力资源。
文档编号G06F17/30GK102456050SQ20101052763
公开日2012年5月16日 申请日期2010年10月27日 优先权日2010年10月27日
发明者杨俊拯, 王全礼, 肖巍, 郑长松 申请人:中国移动通信集团四川有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1