包装器生成和模板检测的联合优化.pdf

上传人:32 文档编号:974305 上传时间:2018-03-22 格式:PDF 页数:32 大小:1.22MB
返回 下载 相关 举报
摘要
申请专利号:

CN200780030311.0

申请日:

2007.08.16

公开号:

CN101501684A

公开日:

2009.08.05

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/00公开日:20090805|||实质审查的生效|||公开

IPC分类号:

G06F17/00; G06F17/24

主分类号:

G06F17/00

申请人:

微软公司

发明人:

J-R·温; M·万; R·宋; W-Y·马; S·曾

地址:

美国华盛顿州

优先权:

2006.8.16 US 11/465,026

专利代理机构:

上海专利商标事务所有限公司

代理人:

陈 斌

PDF下载: PDF下载
内容摘要

提供了用于通过联合优化模板检测和包装器生成来为分层地组织的文档生成包装器的方法和系统。包装器生成系统通过标识文档树聚类和为该聚类生成包装器树,来为具有相似模板的文档生成包装器。包装器树定义与该聚类的模板相匹配的文档的包装器。该包装器生成系统通过基于初始文档树来生成该聚类的包装器树以聚合文档树。该包装器生成系统随后重复地确定任何其它文档树是否与该聚类的包装器树相匹配或几乎匹配,以及如果是,则将该文档树添加到该聚类并适当地调整包装器树以便包括新添加的文档树在内的所有文档树都与该包装器树相匹配。

权利要求书

1.  一种在计算设备中用于为分层地组织的文档生成包装器的方法,每一文档都具有一文档树,所述方法包括:
为文档树创建包装器树(535);
选择其到所述包装器树的距离处于一阈值之内的文档树(537);以及
基于所述文档树来调整所述包装器树(539)
其中所述包装器是基于所调整的包装器树的。

2.
  如权利要求1所述的方法,其特征在于,所述调整所述包装器树包括合并所选择的文档树的包装器树和所创建的包装器树。

3.
  如权利要求2所述的方法,其特征在于,所述为文档树创建包装器树包括组合所述文档树中的节点的连续的子森林。

4.
  如权利要求1所述的方法,其特征在于,包括为多个文档树执行所述选择和调整。

5.
  如权利要求1所述的方法,其特征在于,所述包装器树是针对文档树的聚类的,所述聚类包括为其创建所述包装器树的文档树和为其调整所述包装器树的文档树。

6.
  如权利要求5所述的方法,其特征在于,包括在生成所述包装器树后,为文档树的另一聚类生成另一包装器树。

7.
  如权利要求1所述的方法,其特征在于,文档树和包装器树之间的距离是基于不匹配文档节点的包装器节点的数量和不匹配包装器节点的文档节点的数量的。

8.
  如权利要求7所述的方法,其特征在于,所述距离是基于所述文档树和所述包装器树的权重来归一化的。

9.
  如权利要求1所述的方法,其特征在于,在已生成多个包装器树时,基于所述文档树和所述包装器树之间的距离来标识用于从文档树提取数据的包装器。

10.
  如权利要求1所述的方法,其特征在于,所述阈值是自适应的。

11.
  如权利要求10所述的方法,其特征在于,所述阈值增加,直到所述基于因为所述增加的阈值而被选择的文档调整所述包装器树降低所述包装器树的有效性为止。

12.
  一种确定分层地组织的文档和包装器树之间的相似性的计算系统,所述文档具有文档树,所述系统包括:
对齐所述文档树的节点和所述包装器树的节点的组件(1101);以及
从未对齐的节点的数量生成一度量的组件(1102-1106),所述度量指示所述文档树和所述包装器树之间的相似性。

13.
  如权利要求12所述的计算系统,其特征在于,所述度量是基于所述文档树中未与所述包装器树的节点对齐的节点的数量和所述包装器树中未与所述文档树的节点对齐的节点的数量的。

14.
  如权利要求13所述的计算系统,其特征在于,未对齐的节点的数量是基于所述各树的权重来归一化的。

15.
  如权利要求12所述的计算系统,其特征在于,所述度量由下式表示:


16.
  一种包含用于控制计算系统以一种方法来为文档树生成包装器树的指令的计算机可读介质,所述方法包括:
对于每一包装器树,
选择先前尚未被选择的文档树(603);
为所选择的文档树创建所述包装器树(604);以及
在存在未被选择的、其离所述包装器的距离小于一阈值的文档树时,选择所述文档树并基于所选择的文档树调整所述包装器树(606,607)。

17.
  如权利要求16所述的计算机可读介质,其特征在于,在所述距离是0时,选择所述文档树而不调整所述包装器树。

18.
  如权利要求17所述的计算机可读介质,其特征在于,为包装器树所选择的文档树形成文档树聚类。

19.
  如权利要求16所述的计算机可读介质,其特征在于,所述距离是基于所述文档树和所述包装器树之间的未对齐节点的数量的。

20.
  如权利要求16所述的计算机可读介质,其特征在于,包括通过标识其离所述文档的文档树的距离最小的包装器树并使用所标识的包装器树作为用于从所述文档中提取数据的模板,来从所述文档中提取数据。

说明书

包装器生成和模板检测的联合优化
背景
万维网(“web”)提供可经由网页访问的大量信息。网页可以包含静态内容或动态内容。静态内容一般指的是可以跨多次网页访问而保持相同的信息。动态内容一般指的是存储在web数据库中并响应于搜索请求而被添加到网页的信息。动态内容表示被称为深web(deep web)或隐藏web的内容。
许多搜索引擎服务允许用户搜索web的静态内容。在用户提交包含搜索项的搜索请求或查询之后,搜索引擎服务标识可能与这些搜索项相关的网页。这些网页是搜索结果。为快速标识相关的网页,搜索引擎服务可维护关键词到网页的映射。该映射可以通过“爬行(crawl)”web来标识每一网页的关键词来生成。为爬行web,搜索引擎服务可使用根网页列表来标识能通过这些根网页访问的所有网页。任何特定网页的关键词可使用各种公知信息检索技术来标识,如标识标题行的文字、在网页的元数据中提供的文字、突出显示的文字等等。
然而,这些搜索引擎服务一般不提供对动态内容的搜索,动态内容也被认为是不可爬行内容。许多网页包含从结构化的源(例如,关系数据库)生成的动态内容。在生成包含这种动态内容的网页时,底层结构化源的结构化数据被以非结构化或半结构化的方式编码在网页中。搜索这种动态内容的一个问题是很难标识来自该网页的对应的结构化源的模式。模式定义存储在底层结构化源中的信息或属性。由于这一困难,对具有这种动态内容的网页的查询通常不能提供令人满意的结果。
已经作出尝试来标识网页的动态内容的模式,以便内容可被转换为更加结构化的格式以便于搜索。从网页中提取信息并且以结构化的格式组织该信息是由被称为“包装器(wrapper)”的程序来执行的。手动地生成网站网页的包装器是很耗时的。因此,手动地为提供动态内容的数千网站的数百万网页生成包装器是不切实际的。
已经开发了一些自动包装器“归纳(induction)”或生成系统。包装器归纳是学习网页的动态内容的模式并生成包装器以从该网页提取数据,以及以由该模式所标识的结构化格式存储所提取的数据的过程。这些自动包装器归纳系统在包装器的有效性(effectiveness)和可表达性(expressiveness)之间进行折衷。有效性指的是,在从包装器归纳过程中未使用的但共享同一“模板”的网页中提取内容时,包装器有多么准确。包装器归纳系统使用网页的训练集来生成模板的包装器。随后,该包装器被用来从共享同一模板的网页中提取数据。可表达性指的是可由包装器的模板所标识的包装器进行处理的网页的范围。为使包装器更具可表达性,包装器归纳系统一般将通配符(例如,“*”)引入包装器中,以使更多网页处于包装器的范围内。一般而言,随着包装器的可表达性的增长,其有效性却下降,反之亦然。
为在有效性和可表达性之间提供可接受的折衷,传统的包装器归纳系统根据表示网页上动态内容的组织的模板来将训练网页分为各个聚类。这样,具有相似组织(即,具有同一模板)的网页被聚合到一起。这些包装器归纳系统可以自动地为聚类中的网页生成包装器。由于聚类中的网页是相似的,所以这些包装器可以使用有限的通配符来增加可表达性而仍获得可接受的有效性。
然而,这种传统的包装器归纳系统所生成的包装器的准确性在很大程度上却依赖于正确地对具有同一的模板的网页进行聚合的准确性。某些包装器归纳系统仅仅基于网页的URL之间的相似性来聚合网页。在网站将使用同一模板的网页存储在该网站的同一子目录中时,这一简单的聚合方式是适当的。在这种情况下,它们的URL具有指示该子目录的位置的相同的前缀。然而,许多网站在定义网页的URL时使用更复杂的方式。结果,具有相似的URL的网页可能具有大不相同的模板,而具有大不相同的URL的网页可能具有十分相似的模板。因此,基于其组织的相似性来准确地聚合网页是很困难的,从而产生具有有效性和可表达性之间的不可接受的折衷的包装器。

概述
提供了用于通过联合优化模板检测和包装器生成来为分层地组织的文档生成包装器的方法和系统。包装器生成系统在其检测文档的模板的同时动态地生成该文档的包装器。该包装器生成系统将文档表示为具有加标记的叶节点的文档树。该包装器生成系统通过标识文档树聚类和为该聚类生成包装器树,来为具有相似模板的文档生成包装器。包装器树定义与该聚类的模板相匹配的文档的包装器。该包装器生成系统通过基于初始文档树来生成聚类的包装器树以聚合文档树。该包装器生成系统随后重复地确定任何其它文档树是否与该聚类的包装器树相匹配或几乎匹配,以及如果是,则将该文档树添加到该聚类并适当地调整包装器树以便包括新添加的文档树在内的所有文档树都与包装器树相匹配。在没有文档树与包装器树相匹配或几乎匹配时,则完成了对该聚类的包装器树的生成。该包装器生成系统随后重复该过程以形成文档树的新聚类,并生成其包装器树。该包装器生成系统随后使用该包装器树来定义包装器。为提取新文档的数据,创建新文档的文档树,标识最接近的匹配的包装器树,并使用所标识的包装器树的包装器来提取数据。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

附图简述
图1是提供一个实施例中的包装器生成系统的操作的高级概览的框图。
图2示出从文档树到包装器树的转换。
图3是示出一个实施例中的包装器树的合并的图。
图4是示出包装器树和文档树的对齐的图。
图5是示出一个实施例中的包装器生成系统的各组件的框图。
图6是示出一个实施例中的包装器生成系统的生成包装器组件的处理的流程图。
图7是示出一个实施例中的包装器生成系统的将文档转换为包装器组件的处理的流程图。
图8是示出一个实施例中的包装器生成系统的将匹配的文档移动到聚类组件的处理的流程图。
图9是示出一个实施例中的包装器生成系统的将几乎匹配的文档移动到聚类组件的处理的流程图。
图10是示出一个实施例中的包装器生成系统的检查几乎匹配的文档组件的处理的流程图。
图11是示出一个实施例中的包装器生成系统的计算距离组件的处理的流程图。
图12是示出一个实施例中的包装器生成系统的调整包装器组件的处理的流程图。
图13是示出一个实施例中的包装器生成系统的对齐包装器组件的处理的流程图。
详细描述
提供了用于通过联合优化模板检测和包装器生成来为分层地组织的文档生成包装器的方法和系统。在一实施例中,包装器生成系统在其检测文档的模板时动态地为该文档生成包装器。向该包装器生成系统提供诸如网页等分层地组织的文档的集合,每一文档都由被称为文档树的其分层结构的树结构来表示。例如,如果网页符合文档对象模型(“DOM”),则文档树包含对应于DOM文档标签的节点。还向该包装器生成系统提供文档树的叶节点的标记。这些标记对应于底层结构化数据的标识符、域、或属性。例如,包含关于汽车的信息的网页可以将其叶节点标记为“厂商”、“型号”、“年份”、“颜色”、“售价”等。该包装器生成系统通过选择该集合的文档树和生成对应于该文档树的包装器树来为具有相似模板的文档生成包装器。包装器树定义与检测到的模板相匹配的文档的包装器。该包装器生成系统确定该集合的任何其它文档树是否与该包装器树几乎匹配。如果是,则该包装器生成系统认为该文档树与被用来生成包装器的文档树共享相同的模板。该包装器生成系统为几乎匹配的文档树调整该包装器树以便两个文档树都与该包装器树相匹配。如果文档树碰巧与该包装器树完全匹配,则该包装器生成系统不需要调整包装器树。该包装器生成系统随后重复确定该集合的任何其它文档树是否与经调整的包装器树几乎匹配并调整该包装器树,直到该集合中没有文档树与经调整的包装器树几乎匹配为止。被用来生成和调整包装器树的各文档树被称为具有相似模板且与该包装器树相匹配的文档树的“聚类”。该包装器生成系统随后重复以下过程:选择文档树以形成新的聚类,为该文档树生成包装器树,以及为被添加到聚类的几乎匹配的树动态地调整该包装器树。以此方式,该包装器生成系统基于动态地生成的包装器树来检测模板并基于动态地标识的模板来生成包装器树。该包装器生成系统随后使用包装器树来定义包装器。
在一实施例中,该包装器生成系统使用距离度量来确定文档树是否与包装器树相匹配或几乎匹配。包装器树是定义具有相似模板的文档树的包装器节点的分层结构,且表示被用来从具有该模板的文档树提取数据的包装器。包装器树的包装器节点可以包含定义文档树中与包装器树的该节点相匹配的对应的文档节点的标签、标记、或通配符。为确定文档树和包装器树之间的距离,该包装器生成系统将文档节点和包装器节点进行对齐。该包装器生成系统随后计算未与包装器节点相对齐的树节点的数目和未与树节点相对齐的包装器节点的数目该包装器生成系统基于未对齐的节点的数量来计算距离度量。该包装器生成系统还可以归一化该距离度量,以便可以不管其大小而使用同一距离阈值来定义文档树和包装器树之间的几乎匹配。例如,具有5个未对齐的节点的文档树可以与具有100个节点的包装器树几乎匹配,但却不与只具有10个节点的包装器树几乎匹配。
在一实施例中,该包装器生成系统使用固定阈值或自适应阈值来确定文档树是否与包装器树几乎匹配。在使用固定阈值时,该包装器生成系统在包装器生成过程中始终使用同一阈值来确定文档树是否与包装器树几乎匹配。在使用自适应阈值时,该包装器生成系统在聚合文档树时最初可以使用小的阈值。在不再有文档树与该聚合的包装器树几乎匹配时,该包装器生成系统增加阈值并随后使用增加的阈值来向与包装器树几乎匹配的聚类添加文档树并相应地调整该包装器树。该包装器生成系统随后测试基于增加的阈值来调整的包装器树的性能是否比具有前一阈值的包装器树更好。该包装器生成系统可以基于新调整的包装器树,通过使用包装器来从该聚类的文档树中提取数据以测试性能。如果性能未显著地更好,则该包装器生成系统通过将最终聚类设置为排除因为增加的阈值而被添加的文档树和将最终包装器树设置为在因为增加的阈值而被调整之前的包装器树,来回退增加的阈值的影响。然而,如果经调整的包装器树的性能更好,则该包装器生成系统再次增加阈值并向聚类添加几乎匹配的文档树。该包装器生成系统继续该过程,直到基于增加的阈值来调整的包装器树的性能不比或不显著地比具有前一阈值的包装器树更好。
图1是提供一个实施例中的包装器生成系统的操作的高级概览的框图。诸如网页等文档的训练集101被提供给包装器生成系统。包装器生成系统随后解析这些网页来生成文档树并输入其叶节点的标记102。包装器生成系统联合检测模板并通过基于动态地调整的包装器树来聚合文档树以生成包装器103。包装器生成系统随后输出基于包装器树来定义的包装器104。包装器生成系统随后可以使用这些包装器来从网页提取数据。在包装器生成系统接收到新网页105时,其解析该新网页以生成文档树106。包装器生成系统随后基于距离度量来选择与所生成的文档树最接近的包装器树107并使用对应于所选择的包装器树的包装器来从该树中提取数据108。在一实施例中,文档可以用XML格式来表示。
包装器生成系统将包装器树表示为具有分配给每一包装器节点的符号的经修改的DOM树,该经修改的DOM树可以包括“括号”节点。在计算文档树和包装器树之间的距离时,包装器生成系统使用包装器节点的符号来确定文档节点和包装器节点是否对齐。包装器生成系统将包装器节点σ的符号S(σ)定义为1、整数N(N≥2)、或以下通配符的一个:?、+、*。符号1意味着该包装器节点只能匹配一个树节点。符号N意味着该包装器节点只能匹配N个连续的树节点。符号?意味着该包装器节点只能匹配0个或1个树节点。符号+意味着该包装器节点可以匹配连续的N个树节点,其中N≥1。符号*意味着该包装器节点可以匹配0个或连续的N个树节点,其中N≥1。具有符号?或*的包装器节点被认为是“软(soft)”节点,因为其不能匹配树节点。所有其它包装器节点被认为是“硬(hard)”节点。包装器树可以包括被称为“块(block)”节点的特殊节点。括号节点没有标签并作为一对括号,故而不能是叶节点。包装器树的所有其它节点都被称为“标签”节点。
在一实施例中,包装器生成系统基于文档树和包装器树的权重来归一化文档树和包装器树之间的距离度量。包装器生成系统将树节点σ的树节点权重W(σ)定义为等于根在σ处的子树的节点的数量。根节点是τ的树Td的文档树权重W(Td)是W(τ)。在包装器节点σ是软节点时,包装器生成系统将该包装器节点的包装器节点权重W(σ)定义为0;在该包装器节点是硬节点时,将其定义为其子节点的权重的总和;在该包装器节点是硬叶标签节点时,将其定义为1;以及在该包装器节点是硬非叶标签节点时,将其定义为其子节点的权重的总和加1。包装器树Tw的包装器树权重W(Tw)在Tw由文档树Td生成时是W(Td),而在包装器树Tw由包装器树的组合生成时是 max ( W ( T w 1 ) , W ( T w 2 ) ) . ]]>
包装器生成系统将“包装器级”定义为被用来生成包装器树的文档树的数量。1级包装器树是通过将文档树转换为包装器树来生成的包装器树。文档树到包装器树的转换由以下方程表示:
Td→Tw
其中,Td表示文档d的文档树而Tw表示包装器w的包装器树。根据定义,1级包装器的权重是从其中生成该包装器的文档树的权重。在将文档树转换为包装器时,包装器生成系统执行重复-模式-组合算法以使Tw比Td更简洁。在一实施例中,包装器生成系统使用与Liu,B.、Grossman,R.、和Zhai,Y.于2003年发表在第九届知识发现和数据挖掘ACM SIGKDD国际会议录第601-606页的“Mining Data Records in Web Pages(挖掘网页中的数据记录)”中所描述的相类似的算法,其整体通过引用结合于此。如果该算法检测到文档节点的相同的连续子树,则该算法将其合并到包装器树的一个包装器节点并将其符号设置为相同子树的数量。如果该算法检测到文档节点的相同的连续子森林,则该算法将其合并为包装器树中一个块节点下的一个子森林并将其符号设置为相同子森林的数量。在将文档树转换为包装器树时,该算法考虑叶节点的标记。图2示出从文档树到包装器树的转换。文档树210被转换为包装器树220。由于文档树的根节点A包含B和C节点的重复子森林,所以包装器生成系统将括号节点X添加到包装器树并将其符号设置为2。由于每一B节点都包含连续的节点D1,其中下标表示该节点的标记,所以包装器生成系统将这些节点组合到包装器树中并将其符号设置为2。
包装器生成系统基于两个低级包装器树的对齐来生成高级包装器树。包装器生成系统以自顶向下的顺序逐层地对齐两个包装器树。距根节点相同深度的节点处于同一层,且块节点被认为不处于层中。包装器生成系统只对齐处于同一层中的节点。在包装器节点满足以下条件时,包装器生成系统认为其是相匹配的:
两者都是非叶节点或都是叶节点,
T ( σ w 1 ) = T ( σ w 2 ) , ]]>
如果两者都是叶节点,则 L ( σ w 1 ) = L ( σ w 2 ) ]]>
其中,T(σ)表示节点σ的标签,而L(σ)表示节点σ的标记。在每一层中,包装器生成系统在子树的阵列之间执行顺序对齐,如通过调用对齐函数所示。包装器生成系统使用动态编程来获得最小成本对齐。中的所有不匹配的根节点都将其权重贡献为的成本。对于一对作为非叶节点的区配节点包装器生成系统递归地调用,其中是由根在的子节点处的子树构成的子森林。包装器生成系统将通过调用函数所计算的成本添加到的成本。因为包装器生成系统以自顶向下的递归方式对齐包装器节点,所以当且仅当两个包装器中的节点都是根节点或它们的父节点相互对齐时,该包装器生成系统才尝试对齐这两个节点。
图3是示出一个实施例中的包装器树的合并的图。包装器树310和320被合并来形成包装器树330。阴影节点D和G在另一包装器树中没有匹配的节点。结果,经合并的包装器树的对应的包装器节点是软节点。包装器生成系统最初传递包装器树的根节点,以将对齐函数作为A(A,A)来调用。该函数传递第二层的包装器节点,作为A(B(C3DE*),BC3E)来递归地调用其自身。因为通配符?是软的,所以该函数作为A(BC3DE*,BC3E)和A(B,BC3E)来递归地调用其自身。由于前者产生较低的成本(即,更好的匹配),所以该函数选择其作为对齐。在函数A(B(C3DE*),BC3E)的动态编程过程期间,A(BC3DE*,BC3E)和A(B,BC3E)两者都递归地调用函数A(F2,FG+)来计算这两个解决方案的成本。在对齐获得两个包装器树之间最优解决方案后,包装器生成系统使用以下符号生产函数F来构造新包装器树:
F(1,NULL)=? |F(?,N)=*
F(?,NULL)=?|F(?,+)=*
F(n,NULL)=*  |F(1,*)=*
F(+,NULL)=*  |F(N,*)=*
F(*,NULL)=*  |F(?,*)=*
F(1,1)   =1  |F(+,*)=*
F(N,N)   =N  |F(1,N)=+
F(+,+)   =+  |F(N,+)=+
F(?,?) =? |F(1,+)=+
F(**)   =*  |F(N1,N2)=+
F(1,?)  =? |(1)
其中NULL表示包装器节点的不匹配。例如,F(1,NULL)指示其符号为1的包装器节点的不匹配。
包装器生成系统以与如何对齐包装器树相类似的方式来对齐文档树和包装器树,以下除外。虽然包装器树以1对1的方式来对齐,但其符号为+或*的包装器节点(只是标签节点)可以与超过一个文档节点来对齐。同样,在确定是否可以对齐两个包装器节点时,包装器生成系统不考虑节点的标记。为在包装器树Tw和文档树Td之间对齐,包装器生成系统使用Cd(Tw,Td)来指示不匹配的文档节点所贡献的总成本。Cd表示文档树Td的与包装器节点不匹配的节点的数量,而Cw表示包装器树Tw的与文档节点不匹配的节点。如果Tw1+Tw2→Tw3,则对于任何文档树Td,Tw3和Td之间的对齐产生至少与Tw1和Td之间以及Tw2和Td之间的匹配对一样多的匹配对,因为Tw3至少拥有与Tw1和Tw2一样多的通配符。同样,出现在Tw3中但不在Tw1和Tw2中的包装器节点是软节点,并且因而对成本没有贡献。因此,对于任何文档树Td,满足以下条件:
C w ( T w 3 , T d ) C w ( T w 1 , T d ) ]]>
C d ( T w 3 , T d ) C d ( T w 1 , T d ) ( i = 1,2 ) - - - ( 2 ) ]]>
包装器生成系统通过以下等式来定义包装器树Tw和文档树Td之间的距离:
ψ ( T w , T d ) = ( C w ( T w , T d ) W ( T w ) + C d ( T w , T d ) W ( T w ) ) / 2 - - - ( 3 ) ]]>
对于任何包装器树Tw和文档树Td,该等式具有以下特性,0≤ψ(Tw,Td)≤1。同样,对于任何文档树Td,满足以下条件:
ψ ( T w 3 , T d ) ψ ( T w 1 , T d ) ( i = 1,2 ) - - - ( 4 ) ]]>
图4是示出包装器树和文档树的对齐的图。包装器节点和文档节点被对齐,如虚线所示。
在一实施例中,在确定文档树是否与包装器树几乎匹配时,包装器生成系统使用自适应阈值。包装器生成系统最初用小的阈值开始。在没有文档树处于当前阈值内时,包装器生成系统将阈值增加一个小量。包装器生成系统重复聚合,直到增加的阈值不显著地增加包装器树所表示的包装器的性能为止。包装器生成系统通过测试对应的聚合的文档树,来评估在增加的阈值下生成的包装器树的性能。包装器生成系统随后计算前一包装器树和当前包装器树的精度p、查全率r和F1 f。包装器生成系统可以通过下式来表示显著改进:
f T w > f T w ]]>
           (5)
r T e - r T w > λ ]]>
其中λ是被用来确保阈值增加产生对所生成的包装器的查全率的显著改进的很小的值(例如,0.005)。包装器生成系统还可以在阈值到达定义在初始阈值和1之间的停止值时终止阈值的增加。
图5是示出一个实施例中的包装器生成系统的各组件的框图。包装器生成系统530经由通信链路520连接到网站510。包装器生成系统包括收集网页组件531和文档树存储532。收集网页组件爬行各个网站来收集作为用于生成包装器的训练数据的网页。收集网页组件生成每一网页的文档对象模型(“DOM”)表示,并将该表示作为文档树来存储在文档树存储中。包装器生成系统还可以提供供用户手动地标记文档树的叶节点的用户界面。包装器生成系统将这些标记存储在文档树存储中。因此,用于包装器生成的训练数据包括文档树以及叶节点的标记。包装器生成系统还包括生成包装器组件533和包装器存储534。生成包装器组件对共享相似模板的网页进行聚合,为树存储的训练数据生成包装器树,以及将包装器树存储在包装器存储中。生成包装器组件动态地对共享相似模板的网页进行聚合,并在聚合期间动态地调整包装器树。因此,一个聚类的网页是基于其与该聚类的包装器树的匹配程度来选择的,且包装器树是基于该聚类的所选择的网页来调整的。生成包装器组件调用将文档转换为包装器组件535、将匹配的文档移动到聚类组件536、将几乎匹配的文档移动到聚类组件537、计算距离组件538、和调整包装器组件539。将文档转换为包装器组件将训练数据的文档树转换为包装器树。将匹配的文档移动到聚类组件标识与该聚类的当前包装器树相匹配的训练数据的文档树,并将那些所标识的文档树移动到该聚类。将几乎匹配的文档移动到聚类组件标识与该聚类的当前包装器树几乎匹配的训练数据的文档树,将那些所标识的文档树移动到该聚类,并基于那些所标识的文档树来调整该聚类的包装器树。计算距离组件计算文档树和包装器树之间的距离,以确定文档树匹配得有多紧密。调整包装器组件在新文档树被添加到一聚类时合并两个包装器树以实现对该聚类的包装器树的动态调整。在生成包装器组件对网页进行聚合之后,其将为每一聚类动态地生成的包装器树存储在包装器存储中。包装器生成系统还包括选择包装器组件540。选择包装器组件接收网页,生成该网页的文档树,标识包装器存储中与该树最接近的包装器树,并使用所标识的包装器树的包装器从该网页中提取数据。
其上可以实现包装器生成系统的设备可以包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备)和存储设备(例如,盘驱动器)。物理存储器和存储设备是可以包含实现包装器生成系统的指令和数据结构的计算机可读介质。另外,数据结构和指令可被存储或经由诸如通信链路上的信号之类的数据传送介质发送。可以使用各种通信链路来连接该系统的各组件,如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
包装器生成系统的各实施例可在各种操作环境中实现和使用,这些操作环境包括个人计算机、服务器计算机、多处理器系统、基于微处理器的系统、网络PC、小型机、大型计算机、包括任何上述系统或设备的分布式计算环境等等。用户计算设备可以包括蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子产品、数码照相机等。
包装器生成系统可以在由一个或多个计算机或其它设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。包装器生成系统所使用的文档可以包括任何分层地组织的文档,如网页、基于XML的文档、基于HTML的文档等等。
图6是示出一个实施例中的包装器生成系统的生成包装器组件的处理的流程图。该组件动态地对具有相似模板的网页进行聚合,并为每一网页聚类动态地生成包装器树。该组件最初从训练集合D中的训练数据的所有文档树开始。在框601-609,该组件循环标识网页聚类并动态地调整聚类的包装器树。在判定框601,如果训练集合为空,则该组件完成,否则该组件在框602处继续。在框602,该组件创建新的聚类TP。在框603,该组件从该集合中选择文档树Td作为该聚类的第一个文档树。在一实施例中,该组件随机选择文档树。在框604,该组件调用将文档转换为包装器组件以将所选择的文档树Td转换为新聚类TP的初始包装器树Tw。在框605,该组件将所选择的文档树Td从集合D移动到新聚类TP。在框606,该组件调用将匹配的文档移动到聚类组件来将与初始包装器树相匹配的文档树从集合D移动到新聚类TP。在框607,该组件调用将几乎匹配的文档移动到聚类组件来将与所调整的包装器树几乎匹配的文档树从集合D移动到新聚类TP,并基于所移动的文档来调整该包装器树。在框608,该组件将聚类TP添加到聚类集合R。在框609,该组件将包装器树Tw添加到包装器树集合W。该组件随后循环至框601以继续标识聚类。
图7是示出一个实施例中的包装器生成系统的将文档转换为包装器组件的处理的流程图。向该组件传递文档树的根节点,并且该组件递归地调用其自身来生成包装器树。虽然该组件被示为是递归的,但本领域技术人员将理解,该组件可以另选地以非递归的方式来实现。在判定框701,如果所传递的节点是叶节点,则该组件返回,否则该组件在框702处继续。在框702-704,该组件循环选择所传递的节点的每一子节点并递归地调用该组件。在框702,该组件选择所传递的节点的下一个子节点。在判定框703,如果所有的子节点都已被选择,则该组件在框705处继续,否则该组件在框704处继续。在框704中,该组件传递所选的子节点来递归地调用将文档转换为包装器组件,然后循环至框702来选择下一子节点。在框705,该组件组合所传递的节点的连续的子树。在框706,该组件组合所传递的节点的连续的子森林。该组件然后返回。
图8是示出一个实施例中的包装器生成系统的将匹配的文档移动到聚类组件的处理的流程图。该组件将集合D中匹配包装器树Tw的所有文档树Td移动到聚类TP。在框801,该组件选择集合D的下一文档树Td。在判定框802,如果已经选择了所有文档树,则该组件返回,否则该组件在框803处继续。在框803,该组件调用计算距离组件来计算所选择的文档树Td和包装器树Tw之间的距离。在判定框804,如果距离是0,则所选择的文档树与包装器树相匹配且该组件在框805处继续,否则该组件循环至框801以选择下一文档树。在框805,该组件将所选择的文档树Td移动到聚类TP,并随后循环至框801来选择下一文档树。
图9是示出一个实施例中的包装器生成系统的将几乎匹配的文档移动到聚类的组件的处理的流程图。该组件将集合D中与包装器树Tw几乎匹配的文档树移动到聚类TP,并动态地调整包装器树。该组件重复该处理,直到集合中没有文档树与所调整的包装器树几乎匹配为止。在框901-906,该组件循环将几乎匹配的文档树移动到聚类。在框901,该组件调用检查几乎匹配的文档组件来确定文档树Td是否与包装器树Tw几乎匹配。在判定框902,如果找到几乎匹配的文档树,则该组件在框903处继续,否则该组件在框907处继续。在框903,该组件调用将文档转换为包装器组件来将几乎匹配的文档树转换为包装器树。在框904,该组件调用调整包装器组件,以基于从要被添加到聚类的文档树所生成的包装器树来调整包装器树Tw。在框905,该组件将文档树Td从集合D移动到聚类TP。在框906,该组件调用将匹配的文档移动到聚类组件,来将集合中与所调整的包装器树相匹配的任何文档树移动到聚类。该组件随后循环至框901以检查与所调整的包装器树几乎匹配的更多文档树。
在框907-911,该组件实现用于将文档树移动到聚类的自适应阈值。如果该组件使用固定阈值,则该组件将返回,而非在框907处继续。在框907,该组件确定当前阈值是否导致与使用前一阈值所生成的包装器树相比改进了的包装器树。在判定框908,如果改进是显著的,则该组件在框909增加阈值,并循环至框901以基于增加的阈值将文档树移动到聚类。然而,如果改进不显著,则该组件在框910处继续。在判定框910,如果存在改进,则该组件返回,否则该组件在框911处继续。在框911,该组件回退关于不产生改进的当前阈值而移动文档树的影响,并随后返回。
图10是示出一个实施例中的包装器生成系统的检查几乎匹配的文档组件的处理的流程图。该组件循环检查集合D的各文档树和包装器树Tw之间的距离,直到发现几乎匹配的文档树或确定没有文档树匹配为止。在框1001,该组件选择集合D的下一文档树Td。在判定框1002,如果已选择了该集合的所有文档树,则没有文档树是几乎匹配的,且该组件返回指示没有几乎匹配,否则该组件在框1003处继续。在框1003,该组件传递包装器树Tw和文档树Td来调用计算距离组件来,以计算文档树和包装器树之间的距离。在判定框1004,如果该距离小于阈值,则该组件返回指示几乎匹配的文档树,否则该组件循环至框1001以选择该集合的下一文档树。另选地,该组件可以返回最接近的几乎匹配但非相同的文档树,最远的几乎匹配的文档树,或随机选择的几乎匹配的文档树。
图11是示出一个实施例中的包装器生成系统的计算距离组件的处理的流程图。向该组件传递包装器树Tw和文档树Td,并计算该包装器树和该文档树之间的距离。在框1101,该组件将文档树包装器树进行对齐。在框1102,该组件对包装器树的未对齐的节点Cw进行计数。在框1103,该组件计算包装器树的权重W(Tw)。在框1104,该组件对文档树的未对齐的节点Cd进行计数。在框1105,该组件计算文档树的权重W(Td)。在框1106,该组件使用等式5来计算距离。该组件然后返回。
图12是示出一个实施例中的包装器生成系统的调整包装器组件的处理的流程图。向该组件传递一对包装器树,并将其合并成单个包装器树。在框1201,该组件调用对齐包装器组件来对齐包装器树的各节点。对齐包装器组件是测试包装器树的子树的所有可能的对齐的递归组件。该组件可以使用动态编程技术来防止对先前已经测试过的解决方案的再测试。在框1202,该组件为包装器树的根节点选择下一解决方案。在判定框1203,如果已选择了所有的解决方案,则该组件在框1205处继续,否则该组件在框1204处继续。在框1204,该组件聚集解决方案的成本,并随后循环至框1202以选择下一解决方案。在框1205,该组件选择具有最小成本的解决方案,并随后返回。
图13是示出一个实施例中的包装器生成系统的对齐包装器组件的处理的流程图。该组件被递归地调用来确定所有可能的解决方案的成本。在判定框1301,如果两个包装器树还有更多层,则该组件在框1302处继续,否则该组件返回。在框1302-1305,该组件循环选择新的解决方案并递归地调用对齐包装器组件。在框1302,该组件选择当前层的下一解决方案。在判定框1303,如果已选择所有解决方案,则该组件返回,否则该组件在框1304处继续。在框1304,该组件递归地调用对齐包装器组件来对齐包装器树下一层的节点。在框1305,该组件设置所选择的该层的解决方案的成本,并随后循环至框1302以选择下一解决方案。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。因此,本发明只由所附权利要求来限制。

包装器生成和模板检测的联合优化.pdf_第1页
第1页 / 共32页
包装器生成和模板检测的联合优化.pdf_第2页
第2页 / 共32页
包装器生成和模板检测的联合优化.pdf_第3页
第3页 / 共32页
点击查看更多>>
资源描述

《包装器生成和模板检测的联合优化.pdf》由会员分享,可在线阅读,更多相关《包装器生成和模板检测的联合优化.pdf(32页珍藏版)》请在专利查询网上搜索。

提供了用于通过联合优化模板检测和包装器生成来为分层地组织的文档生成包装器的方法和系统。包装器生成系统通过标识文档树聚类和为该聚类生成包装器树,来为具有相似模板的文档生成包装器。包装器树定义与该聚类的模板相匹配的文档的包装器。该包装器生成系统通过基于初始文档树来生成该聚类的包装器树以聚合文档树。该包装器生成系统随后重复地确定任何其它文档树是否与该聚类的包装器树相匹配或几乎匹配,以及如果是,则将该文档。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1