一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于从Web文档的结构化数据提取的可转移神经架构的制作方法

2022-09-08 05:52:44 来源:中国专利 TAG:

用于从web文档的结构化数据提取的可转移神经架构


背景技术:

1.自从互联网出现以来,存在对于收集、组织和呈现来自多个网站的信息使得用户能够可以有效且高效地找到他们正在寻找的内容的系统和方法的需要。这能够在搜索引擎和算法的持续发展中看到,搜索引擎和算法允许用户识别和访问包含感兴趣信息的网站。此外,随着基于人工智能的推荐系统和自动化数字助理的引入,在没有个人访问源网站的情况下获得信息已经变得可能。随着互联网上可用的信息量持续增长,计算系统有效地解析和编目相关信息变得越来越困难。


技术实现要素:

2.本技术涉及用于从web文档有效地提取机器可动作的结构化数据的系统和方法。使用各种神经网络架构,该技术能够利用较小集合的种子网站的原始超文本标记语言(“html”)内容来创建关于感兴趣信息的可转移模型。然后这些模型能够被应用于其他网站的原始html,以在没有进一步的人类输入的情况下识别类似的感兴趣信息,并将其提取为结构化数据以供系统和/或其他系统进一步使用。因此,与依赖于视觉渲染的系统和方法相比,该技术的计算成本更低,并且能够提供针对感兴趣信息定制的改进结果。另外,与需要为每个领域构建特定提取程序的其他基于文本的方法不同,本技术通过生成能够跨多个领域使用的模型来提供增强的技术益处,以使得能够以能够由另外的系统使用的功能形式提取机器可动作的结构化数据。
3.在一个方面,本公开描述了一种提取机器可动作数据的计算机实现的方法。所述方法包括:由处理系统的一个或多个处理器为第一网站的第一页面生成文档对象模型树,其中,文档对象模型树包括多个节点,并且多个节点中的每个节点包括xml路径(“xpath”)和内容;由一个或多个处理器识别多个节点中的第一节点,其中,第一节点的内容包括字词的第一序列,并且第一序列中的每个字词包括一个或多个字符;由一个或多个处理器识别多个节点中的第二节点,其中,第二节点的内容包括字词的第二序列,第二序列中的每个字词包括一个或多个字符,并且第二序列在第一页面上在第一序列之前;由一个或多个处理器生成与第一序列和第二序列的每个字词相对应的字词级向量;由一个或多个处理器生成与第一序列和第二序列的每个词相对应的字符级字词向量;由一个或多个处理器基于与第一序列相对应的字词级向量和字符级字词向量来生成序列级向量;由一个或多个处理器基于与第二序列相对应的字词级向量和字符级字词向量来生成序列级向量;由一个或多个处理器生成与第一节点的内容中的一个或多个预定义特征相对应的离散特征向量;由一个或多个处理器将与第一序列对应的序列级向量、与第二序列对应的序列级向量和离散特征向量级联,以获得第一节点的综合向量;由一个或多个处理器基于第一节点的综合向量生成第一节点的节点标记;以及由一个或多个处理器从第一节点提取结构化数据,其中,所述结构化数据将第一节点的内容与第一节点的节点标记相关联。在一些方面中,生成与第一序列和第二序列中的每个词相对应的字符级字词向量包括:对于第一序列中的每个字词,使用卷积神经网络对与一个或多个字符中的每一个相对应的字符向量进行编码,并且对于第
二序列中的每个字词,使用卷积神经网络对与一个或多个字符中的每一个相对应的字符向量进行编码。在一些方面,基于与第一序列相对应的字词级向量和字符级字词向量来生成序列级向量包括使用双向长短期记忆神经网络对第一序列的每个字词的字符级字词向量和字词级向量进行编码。在一些方面,基于与第二序列相对应的字词级向量和字符级字词向量来生成序列级向量包括使用双向长短期记忆神经网络对第二序列的每个字词的字符级字词向量和字词级向量进行编码。在一些方面,基于第一节点的综合向量生成第一节点的节点标记包括使用多层感知神经网络对第一节点的综合向量进行编码以获得第一节点的分类。在一些方面,第一节点的节点标记对应于多个感兴趣字段中的一个。该方法还可以包括:由一个或多个处理器为第一网站的第二页面生成第二文档对象模型树,其中,第二文档对象模型树包括第二多个节点,并且第二多个节点中的每个节点包括xpath和内容;以及由一个或多个处理器从第二多个节点提取结构化数据的第二集合,其中,结构化数据的第二集合将第二多个节点中的每个节点的内容与第二多个节点中的每个节点的节点标记相关联。此外,该方法还可以包括:由一个或多个处理器为第二网站的页面生成第三文档对象模型树,其中,第三文档对象模型树包括第三多个节点,并且第三多个节点中的每个节点包括xpath和内容;以及由一个或多个处理器从第三多个节点提取结构化数据的第三集合,其中,结构化数据的第三集合将第三多个节点中的每个节点的内容与第三多个节点中的每个节点的节点标记相关联。
4.在另一方面,本公开描述了一种提取数据的计算机实现的方法,包括:由处理系统的一个或多个处理器为第一网站的第一页面生成文档对象模型树,其中,文档对象模型树包括第一多个节点,并且第一多个节点中的每个节点包括xml路径(“xpath”)和内容;由一个或多个处理器为第一多个节点中的每个节点生成关于所述节点是否与多个感兴趣字段中的一个相关的预测;由一个或多个处理器从第一多个节点生成多个节点对,其中,多个节点对中的每个节点对包括头节点和尾节点;由一个或多个处理器生成与每个头节点和每个尾节点相对应的综合向量;由一个或多个处理器生成与每个头节点和每个尾节点相对应的xpath向量;由一个或多个处理器至少部分地基于每个头节点和每个尾节点相对于第一多个节点中的至少一个其他节点的位置来生成与每个头节点和每个尾节点相对应的位置向量;对于每个节点对,由一个或多个处理器将与节点对的头节点和尾节点相对应的综合向量、位置向量和xpath向量级联,以获得对级向量;由一个或多个处理器基于节点对的对级向量为每个节点对生成对标记;由一个或多个处理器基于节点对的对标记或头节点的预测,为每个节点对的头节点生成节点标记;由一个或多个处理器基于节点对的对标记或尾节点的预测,为每个节点对的尾节点生成节点标记;以及由一个或多个处理器从第一多个节点中的一个或多个节点提取结构化数据,其中,所述结构化数据将所述一个或多个节点中的每一个的内容与所述一个或多个节点中的每一个的节点标记相关联。在一些方面,生成与每个头节点和每个尾节点相对应的xpath向量包括使用长短期记忆神经网络对每个头节点和每个尾节点的xpath进行编码。在一些方面,生成与每个头节点和每个尾节点相对应的综合向量包括:对于每个头节点,级联与头节点中的字词序列相对应的序列级向量、与头节点之前的节点中的字词序列相对应的序列级向量、以及与头节点的内容中的一个或多个预定义特征相对应的离散特征向量;以及对于每个尾节点,级联与尾节点中的字词序列相对应的序列级向量、与尾节点之前的节点中的字词序列相对应的序列级向量、以及与尾节
点的内容中的一个或多个预定义特征相对应的离散特征向量。在一些方面,基于对级向量为每个节点对生成对标记包括:使用多层感知神经网络对每个节点对的对级向量进行编码,以获得每个节点对的分类。在一些方面,节点标记与多个感兴趣字段中的一个或空标识符对应。所述方法还可以包括:由一个或多个处理器为第一网站的第二页面生成第二文档对象模型树,其中,第二文档对象模型树包括第二多个节点,并且第二多个节点中的每个节点包括xpath和内容;以及由一个或多个处理器从第二多个节点提取结构化数据的第二集合,其中,结构化数据的第二集合将第二多个节点中的每个节点的内容与第二多个节点中的每个节点的节点标记相关联。此外,所述方法还可以包括:由一个或多个处理器为第二网站的页面生成第三文档对象模型树,其中,第三文档对象模型树包括第三多个节点,并且第三多个节点中的每个节点包括xpath和内容;以及由一个或多个处理器从第三多个节点提取结构化数据的第三集合,其中,结构化数据的第三集合将第三多个节点中的每个节点的内容与第三多个节点中的每个节点的节点标记相关联。该方法还可以包括:由一个或多个处理器为第一网站的第二页面生成第二文档对象模型树,其中,第二文档对象模型树包括第二多个节点,并且第二多个节点中的每个节点包括xpath和内容;由一个或多个处理器为第二多个节点中的每个节点生成节点标记;由一个或多个处理器从第一多个节点和第二多个节点中识别节点的类,其中,所述类的节点中的每个节点的节点标记是相同的;由一个或多个处理器识别作为该类节点中的最常见xpath的第一xpath;以及由一个或多个处理器从第一多个节点和第二多个节点中的具有第一xpath的每个节点提取结构化数据的第二集合,结构化数据的第二集合将所述节点的内容与所述节点的节点标记相关联。
5.在另一方面,本公开描述了一种用于提取机器可动作数据的处理系统。所述处理系统包括存储器和一个或多个处理器,所述一个或多个处理器耦接到存储器并且被配置为:为第一网站的第一页面生成文档对象模型树,其中,所述文档对象模型树包括多个节点,并且多个节点中的每个节点包括xml路径(“xpath”)和内容;识别多个节点中的第一节点,其中,第一节点的内容包括字词的第一序列,并且第一序列中的每个字词包括一个或多个字符;识别多个节点中的第二节点,其中,第二节点的内容包括字词的第二序列,第二序列中的每个字词包括一个或多个字符,并且第二序列在第一页面上在第一序列之前;生成与第一序列和第二序列的每个字词相对应的字词级向量;生成与第一序列和第二序列的每个字词相对应的字符级字词向量;基于与第一序列相对应的字词级向量和字符级字词向量来生成序列级向量;基于与第二序列相对应的字词级向量和字符级字词向量来生成序列级向量;生成与第一节点的内容中的一个或多个预定义特征相对应的离散特征向量;将与第一序列对应的序列级向量、与第二序列对应的序列级向量和离散特征向量级联,以获得第一节点的综合向量;基于第一节点的综合向量生成第一节点的节点标记;以及从第一节点提取结构化数据,其中,所述结构化数据将第一节点的内容与第一节点的节点标记相关联。在一些方面,第一节点的节点标记对应于多个感兴趣字段中的一个。
6.在另一方面,本公开描述了一种用于提取机器可动作数据的处理系统,包括存储器和一个或多个处理器,一个或多个处理器耦接到存储器并且被配置为:为第一网站的第一页面生成文档对象模型树,其中,所述文档对象模型树包括第一多个节点,并且第一多个节点中的每个节点包括xml路径(“xpath”)和内容;为第一多个节点中的每个节点生成关于节点是否与多个感兴趣字段中的一个相关的预测;从第一多个节点生成多个节点对,其中,
多个节点对中的每个节点对包括头节点和尾节点;生成与每个头节点和每个尾节点相对应的综合向量;生成与每个头节点和每个尾节点相对应的xpath向量;至少部分地基于每个头节点和每个尾节点相对于第一多个节点中的至少一个其他节点的位置来生成与每个头节点和每个尾节点相对应的位置向量;对于每个节点对,级联与节点对的头节点和尾节点相对应的综合向量、位置向量和xpath向量,以获得对级向量;基于节点对的对级向量为每个节点对生成对标记;基于节点对的对标记或头节点的预测,为每个节点对的头节点生成节点标记;基于节点对的对标记或尾节点的预测,为每个节点对的尾节点生成节点标记;以及从第一多个节点中的一个或多个节点提取结构化数据,其中,所述结构化数据将所述一个或多个节点中的每一个的内容与所述一个或多个节点中的每一个的节点标记相关联。在一些方面,节点标记对应于多个感兴趣字段中的一个或空值。
附图说明
7.图1是根据本公开的各方面的示例系统的功能图。
8.图2是示出可以如何将html的一部分表示为dom树的示图。
9.图3是根据本公开的各方面的示例性方法的流程图。
10.图4是根据本公开的各方面的示例性方法的流程图。
11.图5是根据本公开的各方面的示例性方法的流程图。
12.图6是示出了根据本公开内容的各方面,可以如何处理示例性短语的示图。
13.图7是根据本公开的各方面的示例性方法的流程图。
14.图8是根据本公开内容的各方面的示例性方法的流程图。
15.图9是根据本公开内容的各方面的示例性方法的流程图。
16.图10是根据本公开内容的各方面的示例性方法的流程图。
17.图11是根据本公开内容的各方面的示例性方法的流程图。
18.图12是根据本公开内容的各方面的示例性方法的流程图。
19.图13是根据本公开内容的各方面的示例性方法的流程图。
具体实施方式
20.现在将关于以下示例性系统和方法来描述本技术。
21.示例系统
22.图1示意性地示出了具有用于执行本文描述的方法的示例性处理系统102的布置100。处理系统102包括一个或多个处理器104以及存储指令和数据的存储器106。另外,一个或多个处理器104可以包括本文描述的各种模块,并且指令和数据可以包括本文描述的各种神经网络。处理系统102被示出为通过一个或多个网络108与各种网站(包括网站110和118)通信。示例性网站110和118均分别包括一个或多个服务器112a-112n和120a-n。服务器112a-112n和120a-n中的每一个可以具有一个或多个处理器(例如,114和122)以及存储指令和数据(包括一个或多个网页的html)的相关联的存储器(例如,116和124)。然而,各种其他拓扑也是可能的。例如,处理系统102可以不与网站直接通信,并且可以替代地处理要处理的网站的html的存储版本。
23.处理系统102可以在不同类型的计算设备(诸如任何类型的通用计算设备、服务器
或其集合)上实现,并且还可以包括通常存在于通用计算设备或服务器中的其他组件。存储器106存储可由一个或多个处理器104访问的信息,包括可由处理器104执行或以其他方式使用的指令和数据。存储器可以是能够存储可由处理器104访问的信息的任何非暂时性类型。例如,存储器可以包括非暂时性介质,诸如硬盘驱动器、存储卡、光盘、固态存储器、磁带存储器等。适合于本文描述的角色的计算设备可以包括前述的不同组合,由此指令和数据的不同部分存储在不同类型的介质上。
24.在所有情况下,本文描述的计算设备还可以包括通常与诸如用户接口子系统的计算设备结合使用的任何其他组件。用户接口子系统可以包括一个或多个用户输入(例如,鼠标、键盘、触摸屏和/或麦克风)和一个或多个电子显示器(例如,具有屏幕的监视器或可操作以显示信息的任何其他电气设备)。除了电子显示器之外的输出设备(诸如扬声器、灯以及振动、脉冲或触觉元件)也可以包括在本文描述的计算设备中。
25.包括在每个计算设备中的一个或多个处理器可以是任何常规处理器,诸如市售的中央处理单元(“cpu”)、张量处理单元(“tpu”)等。或者,一个或多个处理器可以是专用设备,诸如asic或其他基于硬件的处理器。每个处理器可以具有能够并行操作的多个核心。单个计算设备的处理器、存储器和其他元件可以存储在单个物理外壳内,或者可以分布在两个或更多个外壳之间。类似地,计算设备的存储器可以包括位于与处理器的外壳不同的外壳中(诸如在外部数据库或联网存储设备中)的硬盘驱动器或其他存储介质。因此,对处理器或计算设备的引用将被理解为包括对可以并行操作或可以不并行操作的处理器或计算设备或存储器的集合以及负载平衡服务器群或基于云的系统的一个或多个服务器的引用。
26.本文描述的计算设备可以存储能够由处理器直接执行(诸如机器代码)或间接执行(诸如脚本)的指令。计算设备还可以存储数据,该数据可以由一个或多个处理器根据指令来检索、存储或修改。指令可以作为计算设备代码存储在计算设备可读介质上。在这方面,术语“指令”和“程序”在本文中可以互换使用。指令还可以以目标代码格式存储以供处理器直接处理,或者以任何其他计算设备语言存储,包括按需解释或预先编译的独立源代码模块的脚本或集合。作为示例,编程语言可以是c#、c 、java或另一种计算机编程语言。类似地,指令或程序的任何组件可以以计算机脚本语言实现,诸如javascript、php、asp或任何其他计算机脚本语言。此外,可以使用计算机编程语言和计算机脚本语言的组合来实现这些组件中的任何一个。
27.示例方法
28.除了上述和附图中所示的系统之外,现在将描述各种操作。在这方面,存在处理系统102可以被配置为从网站提取结构化数据的多种方式。例如,处理系统102可以被配置为针对要从其提取数据的每个网站使用站点特定提取程序或“包装器”。然而,站点特定方法通常要求人类分析站点并创建要由提取程序使用的包装器,或者要求网站的页面被足够好地注释,使得提取程序能够在没有人类输入的情况下准确地识别预选的感兴趣字段。在任一种情况下,为一个站点创建的包装器将不能转移到不同的站点。感兴趣字段可以是被选择用于提取的任何类别的信息。例如,对于与汽车有关的网站,感兴趣字段可以包括型号名称、车辆类型、汽油里程、发动机尺寸、发动机功率、发动机扭矩等。
29.在其他情况下,能够在一组渲染的网页上训练神经网络,以使用各种视觉提示来识别感兴趣信息。然而,虽然视觉渲染方法能够生成允许从其他网站识别和提取感兴趣字
段的模型,但是它们需要利用领域特定知识进行仔细的特征工程以便生成模型,并且由于渲染而在计算上是昂贵的。
30.鉴于这些缺点,本技术提供了神经网络架构,其能够使用种子网站集合的文本来创建可转移的提取模型,而具有最少人类输入或没有人类输入,并且不需要渲染。然后,这些提取模型能够被用于识别和提取附加网站的文本中的感兴趣信息,而不需要任何网页渲染。
31.在这方面,在根据本技术的各方面的示例性方法中,处理系统首先将节点级模块应用于所选择的种子网站的集合。可以基于各种属性来选择种子网站。例如,一些网站将已经包括标识各种感兴趣字段的注释。在这方面,在示例性汽车网站上,每个车辆的页面可以具有表格,该表格具有标注“型号”并随后列出型号名称的行、标注“引擎”并随后列出引擎大小的行、标注“汽油里程”并随后列出汽油里程等的行。具有与预选的感兴趣字段相关的一个或多个注释的站点作为种子网站可能是有帮助的,因为它们可以允许神经网络生成能够更准确地识别具有较少注释的其他网站中的感兴趣字段的模型。节点级模块将每个种子网站的每个页面的原始html解析为文档对象模型(“dom”)树。这将每个页面转换为树结构,其中,每个分支在节点结束,并且每个节点包括xml路径(“xpath”)及其相关联的html内容。例如,图2的图示200示出可以如何将html 202的一部分表示为dom树204。虽然dom树204的节点在图2中被示出为空圆圈,但是实际上它们将包括与每个节点相关联的html内容。
32.节点级模块接下来识别包含文本的所有节点,并且过滤所有这样的文本节点的列表以移除不太可能传达感兴趣信息的那些节点。这能够例如通过收集给定网站中的文本节点的所有可能的xpath(节点标识符),按照与每个xpath相关联的不同文本值的数量对xpath进行排名,并且将具有两个或更多个不同值的那些的一些子集识别为感兴趣节点来完成。图3包括示出该示例性过滤方法的流程图300。在这方面,在步骤302处,节点级模块将网页的原始html解析为dom树。在步骤304处,节点级模块识别dom树中包含文本的所有节点。在步骤306处,节点级模块识别与dom树的文本节点相关联的所有xpath。在步骤308处,节点级模块根据有多少不同的文本值与每个这样的xpath相关联来对所有xpath进行排名。在步骤310中,节点级模块将具有两个或更多个不同文本值的前n个xpath识别为“感兴趣节点”。因此,在一些示例中,节点级模块可以按照与xpath相关联的不同值的数量对xpath进行排名,并且选择具有至少两个不同值的前500个xpath(或更多或更少)。以这种方式过滤将移除跨多个页面具有共同值的大多数节点,并且因此更可能表示该网站中的页面的通用文本,诸如网站的名称、导航文本、页眉、页脚、版权信息等。
33.节点级模块接下来使用每个节点的文本、每个节点之前的文本以及一个或多个离散特征(例如,原始html中可能有助于识别感兴趣字段的内容)对过滤的文本节点集合(“感兴趣节点”)进行编码。如下面将关于图4-9进一步详细描述的,这些编码过程中的每一个利用不同的神经网络。
34.在这方面,如图4的方法400的步骤402所示,当基于每个节点的文本进行编码时,节点级模块将每个节点的文本分解成由{w1,w2,...,w
|n|
}组成的字词序列w。字词序列{w1,w2,...,w
|n|
}可以是节点的原始文本,或者可以是对原始文本进行词汇分析的结果,例如通过使用自然语言工具包(“nltk”)对原始文本进行标记化和词法化。因此,对于每个节点,每个字词wi能够根据下面的等式1被表示为w的元素。如本文所使用的,“字词”不需要由字母
组成,并且因此能够包括由数字和/或符号组成的文本,例如“$1,000”。
35.wi∈w
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
36.如步骤404所示,节点级模块还将每个字词wi分解成由{c1,c2,...,c
|w|
}i组成的字符序列c。因此,对于节点的给定字词wi,每个字符cj能够根据等式2被表示为c的元素。
37.cj∈c
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
38.如步骤406所示,字符嵌入查找表ec也被初始化。步骤406可以在步骤402和/或404之前进行。字符嵌入查找表ec根据等式3定义,其中,dimc是表示字符嵌入向量的维度的超参数,并且是表示所有实数的符号。因此,字符嵌入查找表ec是形状为|c|x dimc的矩阵,并且矩阵中的每个元素是实数。ec的字符嵌入向量被随机初始化,然后在模型训练期间通过后向传播进行更新。字符嵌入向量的维度可以是任何合适的数字,诸如100(或更多或更少)。
[0039][0040]
如步骤408所示,对于每个字词wi,使用字符嵌入查找表ec为每个字符cj生成字符嵌入向量。接下来,在步骤410中,卷积神经网络(“cnn”)用于对每个字词wi的字符嵌入向量的整个序列进行编码,然后将它们池化以创建与字词wi相对应的字符级字词向量ci。因此,字符级字词向量ci能够根据下面的等式4来表示。这些步骤也在图6中图示地表示,其中,示例性短语“city25hwy 32”被处理以创建每个词602a-602d的单独的字符嵌入向量。然后,每个字词的每个字符嵌入向量集合被馈送到cnn 606中并被池化以创建对应的字符级字词向量608a-608d。cnn可以用任何合适的参数来实现。例如,cnn可以采用3(或更大或更小)的核大小、50(或更大或更小)的滤波器大小,并且可以应用最大池化以从所得矩阵的每一行选择最大值且因此将每一行减小到单个值。
[0041]ci
=cnn({c1,c2,

,c
|w|
})
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0042]
另外,如步骤412所示,还为每个词wi初始化字词级向量查找表ew。这里,步骤412也可以在步骤402-410中的任何一个或全部之前发生。字词级向量查找表ew根据下面的等式5来定义,其中,dimw是表示字词级向量的维度的超参数。ew中的字词级向量可以从各种已知算法生成,诸如斯坦福手套(stanford’s glove)。因此,字词级向量查找表ew是形状为|w|x dimw的矩阵,并且矩阵中的每个元素是实数。字符嵌入向量的维度可以是任何合适的数字,诸如100(或更多或更少)。
[0043][0044]
如步骤414所示,使用字词级向量查找表ew生成每个字词wi的字词级向量wi。然后,如步骤416所示,对于每个字词wi,将字词级向量wi与由cnn创建的字符级字词向量ci级联,以为每个节点中的每个字词wi创建级联的字词向量ti。这在下面的等式6中示出,其中,[
·

·
]表示级联操作。这些步骤也在图6中图示地表示,其中,短语“city 25hwy 32”的每个字词604a-604d被处理以创建对应的字词级向量610a-610d。然后,那些字词级向量610a-610d与相关联的字符级字词向量608a-608d被级联以形成级联的字词向量612a-612d。
[0045]
ti=[wi⊙ci
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0046]
作为上述的结果,对于给定节点中的所有字词w的集合,将存在由{t1,t2,

,t
|n|
}组成的级联字词向量的集合。接下来,如图5和图6所示,长短期记忆(“lstm”)神经网络用于
对该级联字词向量的集合从前向和后向二者进行上下文编码。换句话说,lstm网络将对集合{t1,t2,

,t
|n|
}以及逆集合{t
|n|
,t
|n|-1,

,t1}进行编码。这些过程分别在图5中的流程500的步骤502和504中描述。前向和后向lstm编码步骤也分别由图6的虚线614和616图形地示出。因为lstm网络在两个方向上对集合进行编码,所以它也能够被称为双向长短期记忆神经网络。虽然lstm网络在两个方向上将具有相同的结构,但是对于前向和后向编码操作,参数将是不同的。lstm网络可以采用任何合适数量的单元,诸如100个(或更多或更少)。然后,前向和后向lstm编码操作的结果将经历均值池化,以到达该节点的文本的最终表示n
node_text
,如图5的步骤506所示。这能够如等式7所示来表示,其中,avg[
·

·
]表示平均或均值池化操作,并且,其中,lstmf和lstmb分别表示前向和后向方向上的lstm操作。这也在图6中图示地示出,其中,前向和后向lstm编码操作的输出由虚线618和620表示,其中,那些输出的均值池化在元素622中示出,并且,其中该文本的最终向量表示在元素624中示出。
[0047]nnode_text
=avg[lstmf({t1,t2,

,t
|n|
})

lstmb({t
|n|
,t
|n|-1
,

,t1})]
ꢀꢀꢀ
(7)
[0048]
如上所述对每个节点的文本的字词和字符两者进行编码使得节点级模块能够识别跨节点共享的模式,即使在给定节点的各个字词可能未知(例如,拼写错误、缩写等)的情况下,或者在节点的文本包括数字或特殊字符的情况下。例如,在关于汽车的网站的情境中,节点可以包含诸如图6所示的“city25hwy 32”的文本,但是来自该网站的另一页面的节点可以包含用于另一汽车的类似文本,诸如“city 25hwy 28”。仅跟踪字词,节点级模块可以仅确定这些节点共享字词“city”和“hwy”,后者甚至可能不被识别为字词,因为它仅仅是缩写。但是通过如上所述组合字符级cnn和字词级lstm操作的结果,节点级模块能够识别这些节点实际上共享“city##hwy##”的模式。重要的是,节点级模块能够在不需要人工输入的情况下这样做。
[0049]
如上所述,并且分别如图7和图8的流程700和800所示,节点级模块也对每个感兴趣节点之前的文本进行编码。可以对某个固定量的先前文本执行该编码。节点级模块以与上面关于图4-6描述的相同的方式处理前面的文本,从而产生第二向量n
prev_text
。图4和图5的步骤不需要在图7和图8的步骤之前发生。相反,节点级模块可以在其对节点文本的处理之前、之后或同时处理先前的文本。
[0050]
因此,如图7的步骤702所示,节点级模块将感兴趣节点之前的文本分解为x个字词的序列。x可以是任何数量,诸如10个字词(或更多或更少的字词)。另外,如上面关于图4的步骤402所描述的,x个字词的序列可以是在感兴趣节点之前的原始文本,或者可以是使该在前文本经历词汇分析的结果,诸如通过使用nltk工具包对其进行标记化和词形化。在步骤704处,节点级模块以与上面关于图4的步骤404描述的相同的方式将x个字词中的每一个分解成字符序列。在步骤706处,节点级模块以与上面关于图4的步骤406描述的相同的方式初始化字符嵌入查找表。与图4的步骤的情况一样,图7的步骤706可以在步骤702和/或704之前发生。此外,在这方面,节点级模块可以将相同的字符嵌入查找表用于图4和图7的过程,在这种情况下,步骤406和706将均描述初始化字符嵌入查找表的单个实例。在步骤708处,节点级模块使用字符嵌入查找表对x个字词中的每一个的字符进行编码,以与上面关于图4的步骤408描述的方式相同的方式创建对应的字符嵌入向量。在步骤710处,对于x个字词中的每一个,节点级模块使用cnn对字符嵌入向量的对应序列进行编码,然后以与上面关于图4的步骤410描述的方式相同的方式对它们进行池化以创建每个字词的字符级字词向
量。步骤710可以使用结合图4的步骤410使用的相同cnn,或可以使用单独的cnn。在步骤712处,节点级模块以上面关于图4的步骤412描述的相同方式初始化字词级向量查找表。这里,图7的步骤712也可以在图7的步骤702-710中的任何一个或全部之前发生。此外,在这方面,节点级模块可以将相同的字词级向量查找表用于图4和7的过程,在这种情况下,步骤412和712将均描述初始化字词级向量查找表的单个实例。在步骤714处,对于x个字词中的每一个,节点级模块使用字词级向量查找表对字词进行编码,以与上面关于图4的步骤414描述的方式相同的方式创建对应的字词级向量。在步骤716中,对于x个字词中的每一个,节点级模块以与上面关于图4的步骤416描述的相同的方式级联对应的字词级向量和字符级字词向量,以创建字词的级联字词表示。
[0051]
同样地,在图8的步骤802和804中,对于x个字词的序列,节点级模块分别以上面关于图5的步骤502和504描述的相同方式,使用lstm网络在前向和后向两个方向上对对应的级联字词表示(在图7的步骤716中创建的)进行编码。这里,步骤802和804也可以使用与步骤502和504结合使用的相同的lstm网络,或者可以使用单独的lstm网络。最后,在步骤806处,前向和后向lstm编码操作的结果经历均值池化,以与上面关于在图5的步骤506中生成n
node_text
描述的方式相同的方式到达感兴趣节点的先前文本的最终表示n
prev_text

[0052]
如上所述对每个节点的先前文本进行编码能够进一步帮助区分相似内容的节点。例如,在关于汽车的网站中,节点级模块可以被编程为识别每个页面上的汽油里程值。因此,给定页面可以包括具有文本“25”的第一节点和具有文本“32”的第二节点。这两个节点的文本可能不单独地包含足够的信息来确定任一个是否表示汽油里程值。然而,在许多情况下,这些节点之前的文本将包含描述性字词,诸如“汽油里程”、“燃料经济性”、“每加仑里程”、“高速公路里程”或加强或减弱该推断的一些其他文本。
[0053]
如上所述,节点级模块也针对预选离散特征的集合来检查每个节点的文本,如图9的流程900所示。这得到第三向量n
dis_feat
。这里,图4-8的步骤也不需要在图9的步骤之前发生。相反,节点级模块可以在其对节点文本和/或在前文本的处理之前、之后或同时检查离散特征。
[0054]
因此,如图9的步骤902所示,节点级模块初始化包含感兴趣的离散特征的预选集合的离散特征查找表ed。这些离散特征可以是原始html中被确定为有助于识别感兴趣字段的任何内容。例如,在许多情况下,节点的叶标签类型(例如,《h1》,《div》,《li》,《span》)将有助于对页面上的信息分类。在这方面,《h1》节点通常更可能包括关键信息,诸如正在页面上显示的车辆的型号名称。类似地,诸如nltk工具包中的字符串类型检查器之类的已知算法可以用于确定给定节点的文本是否包括可能有帮助的所选类型的信息,诸如日期、邮政编码或url链接。被认为感兴趣的这些和任何其他离散特征可以被包括在离散特征查找表ed中。因此,根据下面的等式8定义离散特征查找表ed,其中,d是所有识别的离散特征的集合,并且dimd是表示离散特征向量的维度的超参数。离散特征向量的维度可以是任何合适的数量,诸如30(或更多或更少)。
[0055][0056]
在图9的步骤904中,节点级模块然后生成向量d,其中,针对给定节点存在的预选离散特征中的每一个被表示为非负整数。例如,如果给定网站集合的预选离散特征是{汽油里程,日期,邮政编码},并且感兴趣节点具有两个汽油里程值、一个日期、并且没有邮政编
码,则该节点的向量d将具有值{2,1,0}。因此,向量d根据下面的等式9定义,其中,是表示所有非负整数的符号。
[0057][0058]
在图9的步骤906中,对于每个感兴趣节点,节点级模块使用根据下面的等式10的矩阵乘法将表示离散特征的向量d与离散特征查找表ed相乘。这得到单个向量n
dis_feat
,其是存在于感兴趣节点中的离散特征的最终表示。
[0059]ndis_feat
=dedꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0060]
一旦已经执行了三个编码过程,节点级模块就使用每个节点的所得n
node_text
、n
prev_text
和n
dis_feat
向量来生成节点是否与预定义感兴趣字段的集合中的一个对应的预测。例如,对于汽车网站,感兴趣字段可以包括型号名称、车辆类型、发动机和汽油里程,并且节点级模块将使用为每个节点生成的最终向量来预测该节点是否对应于那些感兴趣字段中的任何一个。如果是,则将根据其对应的感兴趣字段来标记节点。如果不是,则将用诸如“无”或“空”的某个空标识符来标记该节点。下面参考图10的流程1000进一步详细阐述该过程。
[0061]
在这方面,在图10的步骤1002处,节点级模块将感兴趣节点的文本的最终表示(n
node_text
)、感兴趣节点之前的文本的最终表示(n
prev_text
)和存在于感兴趣节点中的离散特征的最终表示(n
dis_feat
)级联,以创建单个向量n,其是每个节点的综合表示。因此,根据下面的等式11描述向量n。
[0062]
n=[n
node_text
⊙nprev_text
⊙ndis_feat
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0063]
在图10的步骤1004处,节点级模块经由softmax函数将向量n连接到用于多类分类的多层感知器(mlp)神经网络。如步骤1006所示,基于多类分类,节点级模块将预测每个感兴趣节点的标记l。由于标记l能够是数量为k个预定义字段中的任何一个,或者是空标识符(例如,“无(none)”、“空(null)”等),因此l有k 1个可能的值。因此,能够根据下面的等式12和13描述softmax归一化,其中,标记l将是集合{f1,

,fk,none}中的一个。该mlp网络可以用任何合适的参数来实现。例如,mlp网络可以是包含k 1个节点的单层密集神经网络,使得输出h是长度为k 1的向量。
[0064]
h=mlp(n),其中
[0065]
其中i∈{f1,

,fk,none}
ꢀꢀꢀꢀꢀꢀ
(13)
[0066]
如上所述,节点级模块能够仅基于节点的文本、其先前文本和节点的所选离散特征来预测每个感兴趣节点的标记l。然而,因为节点级模块的预测均是针对单个感兴趣节点分离进行的,所以它们不考虑已经针对其他节点进行了什么预测。在一些情况下,这会导致节点级模块将相同的标记分配给页面上的多个节点,而未能向页面上的任何节点分配其他标记。因此,为了进一步改进每个感兴趣节点的预测,该技术也能够采用通过关系神经网络处理节点对的第二阶段模块,如图11的流程1100所示。
[0067]
在这方面,第二阶段模块可以处理给定网页上的每个可能的节点对或其某个子集,在这种情况下,处理将从图11的步骤1110开始。然而,这可能不是在所有情况下都可行。例如,如果节点级模块识别并编码页面上的300个节点,则第二阶段模块将有89,700个节点对要处理(即,300
×
299,因为头节点和尾节点的顺序在该情境中很重要),这可能在计算上
太昂贵。因此,在本技术的一些方面中,第二阶段模块可以替代地将感兴趣子段划分为两个组,如图11的步骤1102和1104所示。因此,在步骤1102处,第二阶段模块识别节点级模块对其预测至少一个节点的所有字段,这在今后将被称为“确定字段”。同样,在步骤1104处,第二阶段模块识别节点级模块无法对其预测任何节点的所有字段,这在今后将被称为“不确定字段”。然后,在步骤1108处,第二阶段模块将从接下来的节点集合创建所有可能的节点对。对于每个确定字段,第二阶段模块将使用针对该字段预测的节点。对于每个不确定字段,如步骤1106所示,第二阶段模块将根据由节点级模块根据上面的等式12和13为该字段生成的hi分数来使用前m个节点(例如,m可以在5和20之间,或者更多或更少)。这将得到三种类型的节点对。每个确定字段的节点将与所有其他确定字段的节点配对。因此,如果存在t个确定字段,则将存在完全由两个确定字段的节点组成的t(t-1)个节点对。此外,每个确定字段的节点将与为每个不确定字段识别的前m个节点配对。因此,如果总共有k个字段,则这导致额外的2t(m(k-t))个这样的节点对,因为头节点和尾节点的顺序在该情境中很重要。最后,为每个不确定字段识别的前m个节点将与为所有其他不确定字段识别的前m个节点配对。这导致额外的m2(k-t)(k-t-1)个这样的节点对。因此,作为图11的步骤1108的结果而生成的节点对的总数能够根据下面的等式14来表示。
[0068]
node_pairs=(t(t-1) 2t(m(k-t)) m2(k-t)(k-t-1))
ꢀꢀꢀꢀꢀ
(14)
[0069]
然后,第二阶段模块通过关系神经网络处理每个节点对(n
head
,n
tail
),以便预测对标记(l
head
,l
tail
)。为此,第二阶段模块基于彼此更接近的两个节点更可能彼此相似的假设,以两种方式处理节点对。
[0070]
在一种情况下,如步骤1110所示,第二阶段模块根据头节点和尾节点的xpath来处理每个节点对。在这方面,每个xpath能够被视为html标签的序列,诸如“《html》”、“《body》”、“《div》”、“《ul》”和“《li》”。第二阶段模块为所有可能的html标签维护嵌入矩阵,其中,每个标签被表示为向量。然后,lstm网络(其可以是与由节点级模块使用的lstm网络不同的网络)使用该矩阵基于它们的xpath对每个节点对进行编码,如下面的等式15所示。这分别得到头节点和尾节点的向量和lstm网络可以采用任何合适数量的单元,例如100个(或更多或更少)。
[0071]nxpath
=lstm([tag1,tag2,...])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0072]
在另一种情况下,如步骤1112和1114所示,第二阶段模块根据每个节点对在原始html页面上相对于其他节点的位置来处理每个节点对。在这方面,如步骤1112所示,页面上的每个感兴趣节点将基于其相对于感兴趣节点的总数的顺序而被分配位置值。例如,对于具有500个感兴趣节点的页面,第五节点可以被分配值5。作为另一示例,可以向第五节点分配诸如5/500=0.01的缩放值。如步骤1112中进一步所示,第二阶段模块然后将初始化根据每个位置值编索引的位置嵌入查找表e
pos
,其中,每个位置值与位置嵌入向量相关联。e
pos
的位置嵌入向量被随机初始化,然后在模型训练期间通过后向传播进行更新。然后,如步骤1114所示,第二阶段模块使用位置嵌入查找表e
pos
来分别获得每个节点对的头节点和尾节点的位置的向量和
[0073]
除了上述之外,第二阶段模块还利用由节点级模块针对每个头节点和尾节点生成的综合节点向量n,即,根据上述等式11生成的n个向量。因此,在步骤1116中,第二阶段模块
将综合节点向量n
head
和n
tail
与向量和(来自等式15)以及和级联,以到达单个综合节点对向量r,如下面的等式16所示。
[0074][0075]
如图12的流程1200的步骤1202所示,对于每个节点对,第二阶段模块然后经由softmax函数将综合节点对向量r与用于多类分类的mlp网络(其可以是与节点级模块使用的mlp网络不同的网络)连接。该mlp网络可以用任何合适的参数来实现。例如,mlp网络可以是包含四个节点的单层密集神经网络,使得输出是1
×
4向量。然后通过softmax函数对由mlp输出的向量进行归一化。基于该分类,在步骤1204中,第二阶段模块将归一化标记分配给每个节点对。归一化标记选自{“无-无”、“无-值”、“值-无”、“值-值”}的集合。
[0076]
如步骤1206所示,对于每个确定字段,第二阶段模块利用由第一阶段模块预测的节点作为该字段的最终预测(或多个)。如步骤1208所示,对于每个不确定字段,第二阶段模块确定最初被标识为该字段的候选的m个节点中的任何一个是否已经被分类为已经包括它们的任何节点对中的“值”。如果是,则在步骤1210处,第二阶段模块使用该字段作为该节点的最终预测。例如,对于字段f和候选节点y(其是最初被标识为字段f的候选的m个节点中的一个),可能存在涉及节点y的四个节点对。如果节点y在这些对中的三个对中接收到“无”的标记,并且在这些对中的一个对中接收到“值”的标记,则节点y的最终预测将是它对应于字段f。最后,如步骤1212所示,基于这些最终预测,处理系统从每个种子网站的每个页面的每个识别的节点提取结构化数据。重要的是,该技术允许处理系统以结构化形式提取该web数据,该结构化形式保留数据与其预测的感兴趣字段之间的关联。例如,提取的数据可以包括关于具有四个感兴趣字段的汽车提取的数据,其中,数据与这些字段中的每一个的标记相关联,例如{型号名称|328xi,车辆类型|coupe,发动机|3.0l直列6缸,汽油里程|17/25mpg}。这产生功能数据。也就是说,数据是机器可动作的结构化形式,允许其用于控制处理系统和/或其他系统的操作以用于各种目的。例如,结构化数据能够用于提高搜索引擎中的搜索结果,或者从不同的数据源创建数据库。在另一示例中,来自网站或基于html的电子邮件或消息的结构化数据可以由自动化助理用来提供对问题的回答,或者自动地将事件添加到用户的日历。当然,这些示例不旨在是限制性的。
[0077]
除了上述之外,如图13的流程1300所示,第二阶段模块也可以利用附加的启发式方法来改进模型的预测。在这方面,对于一些网站,与特定字段相关联的节点可以具有跨各个页面的相对少量的xpath。因此,如图13的步骤1302中所示,在第二阶段模块已经生成其第一预测集合之后,针对每个感兴趣字段fk,它能够对xpath跨所有页面有多频繁对该字段被预测进行排名。然后,如步骤1304所示,对于每个感兴趣字段fk,第二阶段模块能够从该字段的最常预测的xpath中提取数据。除了从由该字段的第一预测集合指示的任何节点(或多个)提取数据之外,还能够进行该提取,如上面关于图12所述。
[0078]
最后,一旦处理系统已经如上所述为所有种子网站的所有页面生成了最终预测,处理系统就能够执行相同的处理步骤以生成针对非种子网站的附加集合的最终预测。然后,这些附加的最终预测能够用于以与上述相同的方式从那些非种子网站提取进一步的结构化数据。在这方面,作为首先将神经网络暴露给具有关于更多注释、组织、当前和/或完整
的感兴趣字段的数据的种子网站的结果,由神经网络构建的模型将更准确地能够识别可能具有没有同样注释、组织、当前和/或完整的数据的非种子网站中的感兴趣字段。因此,本技术使得能够在很少或没有人类输入的情况下生成模型,然后可以转移这些模型,使得可以跨多个领域有效地提取结构化的功能数据。
[0079]
除非另有说明,否则前述替代示例不是相互排斥的,而是可以以各种组合来实现以实现独特的优点。由于能够在不脱离由权利要求限定的主题的情况下利用上面讨论的特征的这些和其他变化和组合,因此示例性系统和方法的前述描述应该作为说明而不是限制由权利要求限定的主题。另外,本文描述的示例的提供以及措辞为“诸如”、“包括”、“包含”等的条款不应被解释为将权利要求的主题限制于具体示例;相反,这些示例仅旨在说明许多可能的实施例中的一些实施例。此外,不同附图中的相同附图标记能够标识相同或相似的元件。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献