基于频繁子树来导出记录模板的方法

文档序号:6431401阅读:167来源:国知局
专利名称:基于频繁子树来导出记录模板的方法
技术领域
本发明涉及记录模板的导出,更具体地说,涉及一种用于基于频繁子树来导出记录模板的方法。
背景技术
计算机网络技术正成为日常生活中的重要组成部分。万维网(World Wide Web)正变成人们日常生活的组成部分,其被用于工作、娱乐、研究等。可以说,万维网是目前最大的信息源。通常,网上大量的信息具有由模板(template)生成的结构化的数据实体形式,诸如出现在购物网页上产品列表中的产品描述。一般,可以将结构化的数据实体定义为数据记录(data record)。为了将一数据记录列表中的所有数据记录呈现为具有相似的外观和布局,通常使用预先开发好的记录模板来生成数据记录。具体而言,通过将底层数据库的 数值填到预先开发好的同一记录模板的各个片断内来动态地生成数据记录列表内的各个数据记录。然而,在此以标签树(tag tree)或标签森林(tag forest)形式呈现的记录模板在服务器代码中是被明确定义的,但在客户端处的HTML源代码中是被隐藏的。由于记录模板能够便于从网页容易地提取结构化的数据并合并来自不同网站的数据,因此,对于客户端而言,从网页中导出这些记录模板是非常有用的。并且,导出这些记录模板对于诸如产品搜索、元搜索和数据融合等应用而言也是有利的。由此,需要一种能够从网页中导出记录模板的方法。

发明内容
根据一实施例,本发明描述了一种用于从网页中导出数据记录模板。首先,从网页中挖掘出了最大频繁子树和闭合频繁子树。为了从网页中挖掘出了最大频繁子树和闭合频繁子树,首先计算网页的文档对象模型DOM树的频繁I-子树,频繁I-子树是网页的文档对象模型DOM树中仅具有一个节点的频繁子树。接着,基于计算出的频繁I-子树,通过最右扩展来枚举所有按频繁排序的导出的子树。最右扩展包括通过迭代地将新的子树附加到频繁子树的最右分支上的节点来增长频繁子树。对于所有按频繁排序的导出的子树,将这些子树区分为最大频繁子树和闭合频繁子树。由此,从网页中挖掘出了最大频繁子树和闭合频繁子树。基于从网页挖掘出的最大频繁子树和闭合频繁子树,对这些频繁子树进行分组。在这些分组内标识模板子树(TEN),该模板子树是仅包括所有必要节点的模板。通过该模板子树,可标识可选节点并消除噪音。并且,基于该模板子树,从各个节点中抽取结构化信息,由此导出数据记录模板。根据另一实施例,本发明还描述了一种用于挖掘子树结构的方法。首先,计算网页的文档对象模型DOM树的频繁I-子树,频繁I-子树是该DOM树中仅具有一个节点的频繁子树。接着,基于计算出的频繁I-子树,通过最右扩展来枚举所有按频繁排序的导出的子树。最右扩展包括通过迭代地将新的子树附加到频繁子树的最右分支上的节点来增长频繁子树。对于所有按频繁排序的导出的子树,将这些子树区分为最大频繁子树和闭合频繁子树。根据另一实施例,本发明还描述了一种用于从子树结构得出数据记录模板的方法。首先,对从网页挖掘出的最大频繁子树和闭合频繁子树进行分组。接着,在这些分组内标识模板子树(TEN),该模板子树是仅包括所有必要节点的模板。通过该模板子树,可标识可选节点并消除噪音。并且,基于该模板子树,从各个节点中抽取结构化信息,由此得出数据记录模板。


本发明上述的以及其他的特征、性质和优势将通过下面结合附图和实施例的详细描述而变得更加明显,在附图中,相同的附图标记始终表示相同的特征,其中图I是根据本发明的用于挖掘子树结构的流程图;·
图2是根据本发明的用于从子树结构得出数据记录模板的流程图;图3是根据本发明的用于从网页中导出数据记录模板的流程图。
具体实施例方式本发明利用了一种未受监督(unsupervised)的算法,RWDE (鲁棒的网络数据抽取算法)(Robust Web Data Extraction),该算法被设计来标识复杂网页内的数据记录并导出相应的记录模板。RWDE算法将网页作为文档对象模型(Document Object Model,DOM)而非标签串来处理。文档对象模型DOM是一种用于HTML和XML文档的编程接口,它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。在本发明中,RWDE算法基于对网页的DOM树的频繁子树的分析。这些频繁子树是通过最右扩展从单个节点生成的,其中最右扩展包括将新节点仅附加到频繁子树最右的分支来增长频繁子树。由于可选节点和从中可抽取结构化数据的节点的存在,记录之间通常并不完全匹配。实际上,可从网页的主记录列表中生成一个或多个最大频繁子树和多个闭合频繁子树。本发明证明了,在这些最大频繁子树和闭合频繁子树中,必然存在一个模板子树(TEN),该模板子树仅包括记录模板的所有必要节点。为了找到这样的模板子树,本发明提出了称为加权Fl的度量来评估每个频繁子树有多大可能是该模板子树。当存在一些从中可抽取结构化数据的节点时,通常从数据记录列表来生成多个最大频繁子树。通过对齐这些最大频繁子树,可以标识出结构化数据信息。一般地,记录模板是由必要节点、可选节点和从中可抽取结构化数据的节点构成的。通过标识必要节点、可选节点和从中可抽取结构化数据的节点,可导出网页的记录模板。本发明利用的RWDE算法基于对闭合频繁子树和最大频繁子树挖掘。在给定网页的DOM树的频繁子树后,RffDE算法通过以下步骤导出记录模板(I)将频繁子树进行分组;
(2)标识可选节点并消除噪音(3)标识从中可抽取结构化数据的节点。现在参考图1,图I描述了根据本发明的用于挖掘子树结构的方法100。RWDE算法使用CMTreeMiner来挖掘网页的DOM树的最大频繁子树和闭合频繁子树。CMTreeMiner —般仅用于发现闭合频繁子树和最大频繁子树,而非所有频繁子树。在步骤102,CMTreeMiner首先计算频繁I-子树,该频繁I-子树是仅具有一个节点的子树。接着,在步骤104,基于计算出的频繁I-子树,通过最右扩展来枚举按频繁排序的导出的子树,其中最右扩展包括通过迭代地将新的子树附加到频繁子树的最右分支上的节点来增长该频繁子树。通过该枚举,树数据库中的所有按频繁排序的导出的子树能被列出。CMTreeMiner原本设计地是从由多个树组成的数据库中挖掘最大频繁子树和闭合频繁子树。然而,为了提高CMTreeMiner的效率并将其应用到本发明的需要从单个树挖掘最大频繁子树和闭合频繁子树的RWDE算法中,本发明对CMTreeMiner做了以下修改I)使用标签路径来创建频繁I-子树。树中一节点的标签路径是从该树的根部到该节点的一系列节点。当创建频繁I-子树时,本发明使用节点的标签路径而非节点的原始标记作为该节点的标记。做出该修改的原因是,在DOM树中,一列数据记录中的数据记录通常在相同的父节点下。因此,每个数据记录的对应根部都具有相同的标签路径。本发明对CMTreeMiner做出的该项修改提高了 CMTreeMiner的效率。2)使用基于出现的支持(support)而非基于事务的支持来确定一频繁子树是闭 合频繁子树还是最大频繁子树。做出该修改的原因是,对于是RWDE算法的输入的单个DOM树而言,子树的基于事务的支持要么是O要么是I。在步骤106中,将所有按频繁排序的导出的子树区分为最大频繁子树和闭合频繁子树。当只存在当前子树的一个频繁适当(proper)导出超子树(supertree)、并且该超子树满足以下条件时,将该当前子树定义为最大(I)该超子树仅能通过将节点添加为当前子树的根部的父来生成;(2)该超子树的支持少于当前子树的支持。。现在参考图2,图2描述了根据本发明的用于从子树结构得出数据记录模板的方法200。通常,在网页中存在多个数据记录列表,然而在大多数网页中,在这多个数据记录列表中存在主数据记录列表。该主数据记录列表包括网页的大部分内容,并且其通常出现在网页的中心位置并占据网页的大部分区域。本发明的RWDE算法旨在导出这些主数据记录列表中的数据记录模板。首先,本发明提出了以下逻辑。对于使用记录模板生成的一列数据记录,总是存在于每个数据记录中出现的闭合频繁子树或最大频繁子树。该闭合频繁子树或最大频繁子树被定义为模板子树TEN(即,仅包括所有必要节点的模板)。记录模板是由必要节点、可选节点和从中可抽取结构化数据的节点构成的。在真实世界的网页中,可选节点和从中可抽取结构化数据的节点总是在记录模板的底部,并且这些节点的所有子节点也是可选节点或从中可抽取结构化数据的节点。所以,记录模板的根部不能是可选的,也就是说,必然存在至少一个在每个数据记录中出现的必要节点。由于通过最右扩展,所有频繁子树均能被枚举,因此,当然能生成TEN。当当前树是树扩展过程中的TEN时,将新的可选节点/从中可抽取结构化数据的节点添加到该当前树将导致其支持的减少,这是因为可选节点/从中可抽取结构化数据的节点不在每个数据记录中出现。由此可见,TEN是闭合或最大频繁子树。在步骤202中,对从网页挖掘出的最大频繁子树和闭合频繁子树进行分组。具体而言,基于最大频繁子树和闭合频繁子树的所属关系来将它们进行分组。对于最大频繁子树和闭合频繁子树的所属关系,本发明提出了以下逻辑。树T的闭合频繁子树P。属于同一树的最大频繁子树Pm,当且仅当对于任何节点Nc e P。,存在节点Nm e Pm,该节点Nm的出现是N。的出现的子集。通过比较每对闭合频繁子树和最大频繁子树来标识所属关系。这些关系中的一部分可以在树扩展的过程中被检测到,因为在生成一最大频繁子树的过程期间生成的所有闭合频繁子树一定属于该最大频繁子树。在步骤202后,频繁子树被匹配到数个分组,各个分组包括一最大频繁子树和多个属于该最大频繁子树的闭合频繁子树。在步骤204中,基于在步骤202生成的频繁子树分组,标识记录模板内的可选节点并消除数据记录列表周围的噪音。在描述该步骤之前,本发明首先阐述针对最大频繁子树和网页内主数据记录列表的观察。在一般的网页内,在所有从该网页的DOM树挖掘出的最大频繁子树中,存在至少一个其所有的出现均是主数据记录的最大频繁子树。对于主数据记录列表而言,由于列表内的数据记录通常遵循同一记录模板,由此 可生成多个频繁子树。对于常见网页,主数据记录的标签树与其他子树不同。因此,当标签树增长到不能再添加更多节点的水平时,添加来自其他子树的节点也是不可能的。由此,生成了最大频繁子树。由于该最大频繁子树与记录模板非常类似,并且在大多数情况下,主数据记录的模板与其他子树不相类似,因此,这些最大频繁子树的所有出现均是主数据记录。对于各个最大频繁子树而言,通过步骤202生成了频繁子树分组。所以,存在至少一个这样的频繁子树分组,其最大频繁子树匹配某些主数据记录,并且主数据记录的TEN也在这样的分组中。由此,通过标识这些分组中的TEN,可标识主数据记录模板的可选节点并消除主数据记录列表周围的噪音。本发明的RWDE算法并不过滤出那些其最大频繁子树匹配主数据记录的频繁子树分组,而是对每个分组中的每个频繁子树计算加权Fl。对于每个数据记录列表,如果其满足以下条件,则可在RWDE算法中导出它的模板一个或多个最大频繁子树匹配该数据记录列表中的某些数据记录并且这些最大频繁子树所有的出现是该数据记录列表内的数据记录。RWDE算法输出其导出的所有模板。可采取一些预先准备的或后续的步骤来寻找主数据记录列表的模板。以下描述的方法是在导出满足以上条件的所有数据记录列表的模板的情况下发生的。 以下以代码形式显示出可选节点标识过程。
权利要求
1.一种用于从网页中导出数据记录模板(data record template)的方法,所述方法包括 从网页中挖掘最大频繁子树(maximal frequent subtree)和闭合频繁子树(closedfrequent subtree),包括 计算频繁I-子树(frequent-lsubtree),所述频繁1_子树是网页的文档对象模型DOM(document object model)树中仅具有一个节点的频繁子树; 基于所述频繁I-子树,通过最右扩展来枚举按频繁排序的导出的子树,所述最右扩展包括通过迭代地将新的子树附加到频繁子树的最右分支上的节点来增长频繁子树; 将所有导出的子树区分为最大频繁子树和闭合频繁子树,其中导出的子树按频繁排序; 对从网页挖掘出的最大频繁子树和闭合频繁子树进行分组; 在分组内标识模板子树(TEN),所述模板子树是仅包括所有必要节点的模板,基于模板子树来标识可选节点并消除噪音;以及 基于模板子树从各个节点中抽取结构化数据,以导出数据记录模板。
2.如权利要求I所述的方法,其特征在于,所导出的数据记录模板是针对所述网页的主数据记录列表的数据记录模板。
3.如权利要求I所述的方法,其特征在于,消除噪音进一步包括消除数据记录列表周围的噪音。
4.如权利要求I所述的方法,其特征在于,对从网页挖掘出的最大频繁子树和闭合频繁子树进行分组进一步包括基于最大频繁子树和闭合频繁子树之间的所属关系进行分组,使得各个分组包括一最大频繁子树和多个闭合频繁子树。
5.如权利要求4所述的方法,其特征在于,在分组内标识模板子树进一步包括对分组内的各个最大频繁子树和闭合频繁子树计算一加权度量,其中具有最高加权度量的最大频繁子树或闭合频繁子树被标识为所述模板子树。
6.如权利要求I所述的方法,其特征在于,所述可选节点包括最大频繁子树中的下述节点所述模板子树内不具有与该节点相匹配的节点。
7.如权利要求5所述的方法,其特征在于,基于模板子树从各个节点中抽取结构化数据进一步包括将其分组内的具有最大加权度量的频繁子树是相同的最大频繁子树对齐来标识从中可抽取结构化数据的节点。
8.如权利要求7所述的方法,其特征在于,所述从中可抽取结构化数据的节点包括在频繁子树内具有相同的兄弟节点和父节点但从不在一起出现来作为DOM树中的节点的子节点的可选节点。
9.一种用于挖掘子树结构的方法,所述方法包括 计算频繁I-子树,所述频繁I-子树是网页的文档对象模型DOM树中仅具有一个节点的频繁子树; 基于所述频繁I-子树,通过最右扩展来枚举按频繁排序的导出的子树,所述最右扩展包括通过迭代地将新的子树附加到频繁子树的最右分支上的节点来增长频繁子树; 将所有导出的子树区分为最大频繁子树和闭合频繁子树,其中导出的子树按频繁排序。
10.如权利要求9所述的方法,其特征在于,计算频繁I-子树进一步包括使用标签路径来计算频繁I-子树,其中树中一节点的标签路径是从该树的根部到该节点的一系列节点。
11.如权利要求9所述方法,其特征在于,将所有导出的子树区分为最大频繁子树和闭合频繁子树进一步包括使用基于出现的支持来区分一频繁子树是闭合频繁子树还是最大频繁子树。
12.一种用于从子树结构得出数据记录模板的方法,所述方法包括 对从网页挖掘出的最大频繁子树和闭合频繁子树进行分组; 在分组内标识模板子树(TEN),所述模板子树是仅包括所有必要节点的模板,基于模板子树来标识可选节点并消除噪音;以及 基于模板子树从各个节点抽取结构化数据,以得出数据记录模板。
13.如权利要求12所述的方法,其特征在于,最大频繁子树和闭合频繁子树是从所述网页的文档对象模型DOM树中挖掘的。
14.如权利要求12所述的方法,其特征在于,消除噪音进一步包括消除数据记录列表周围的噪音。
15.如权利要求12所述的方法,其特征在于,对从网页挖掘出的最大频繁子树和闭合频繁子树进行分组进一步包括基于最大频繁子树和闭合频繁子树之间的所属关系进行分组,使得各个分组包括一最大频繁子树和多个闭合频繁子树。
16.如权利要求15所述的方法,其特征在于,在分组内标识模板子树进一步包括对分组内的各个最大频繁子树和闭合频繁子树计算一加权度量,其中具有最高加权度量的最大频繁子树或闭合频繁子树被标识为所述模板子树。
17.如权利要求12所述的方法,其特征在于,所述可选节点包括最大频繁子树中的下述节点所述模板子树内不具有与该节点相匹配的节点。
18.如权利要求16所述的方法,其特征在于,基于模板子树从各个节点中抽取结构化数据进一步包括将其分组内的具有最大加权度量的频繁子树是相同的最大频繁子树对齐来标识从中可抽取结构化数据的节点。
19.如权利要求18所述的方法,其特征在于,所述从中可抽取结构化数据的节点包括在频繁子树内具有相同的兄弟节点和父节点但从不在一起出现来作为DOM树中的节点的子节点的可选节点。
全文摘要
本发明公开了一种基于频繁子树来导出记录模板的方法。该方法包括从网页中挖掘最大频繁子树和闭合频繁子树,对从网页挖掘出的最大频繁子树和闭合频繁子树进行分组。在分组内标识模板子树,该模板子树是仅包括所有必要节点的模板。基于标识出的模板子树来标识可选节点并消除噪音。并基于模板子树从各个节点中抽取结构化信息。
文档编号G06F17/30GK102955796SQ20111024508
公开日2013年3月6日 申请日期2011年8月16日 优先权日2011年8月16日
发明者徐鹏, 陈正 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1