首页> 中国专利> 从非结构化数据提取复杂实体和关系

从非结构化数据提取复杂实体和关系

摘要

本发明涉及从非结构化数据提取复杂实体和关系。为了从非结构化数据提取复杂实体之间的关系,解析器利用现有语言模型解析非结构化数据,以生成解析树。从所述解析树创建记号集合。记号集合中的记号包括在非结构化数据中找到的词的集合。记号集合被插入现有语言模型,以形成增强的语言模型。非结构化数据利用增强的语言模型被重新解析,以创建知识图。从所述知识图,提取记号集合的子集之间的关系。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-19

    授权

    授权

  • 2016-09-28

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160219

    实质审查的生效

  • 2016-08-31

    公开

    公开

说明书

技术领域

本发明一般涉及用于文本数据的机器理解的方法、系统和计算机程序产品。更具体而言,本发明涉及用于从非结构化数据提取复杂实体和关系的方法、系统和计算机程序产品。

背景技术

结构化数据是符合由规范定义的组织的数据。在结构化数据的数据片段中,数据片段的内容不但具有来自该片段内容的字面解释的含义或意义而且还具有来自该片段的形式、位置及其它特定于组织的属性的含义或意义。

相比之下,非结构化数据是不符合任何特定组织的数据,并且非结构化数据的数据片段中的内容的位置或形式对内容的含义或意义一般没有贡献。报纸文章、白皮书文档、研究人员所做的笔记或者一般地各种形式的人类可读的文本数据是非结构化数据的一些例子。

自然语言处理(NLP)是促进人与数据处理系统之间的信息交换的技术。例如,NLP的一个分支涉及将人类可读的内容,诸如非结构化数据,变换成机器可用的数据。例如,NLP引擎目前可用于接受诸如报纸文章或白皮书之类的输入内容,并从给定的内容产生结构化数据,诸如该输入内容的概要、最显著和最不显著的部分、主题、参考文献、内容中的依赖性等。

NLP的另一个分支涉及基于与主题领域相关的可用信息回答关于主题的问题。关于领域的信息可以采取多种形式,包括但不限于从NLP的第一个分支中的非结构化数据创建的机器可用数据创建的知识储存库和本体。

语料库(复数:多个语料库)是在语言学和语言处理中使用的数据或数据的集合。语料库一般包括以电子形式存储的大量的数据,该数据通常是文本。

目前,系统和方法可用于将非结构化数据解析成结构化形式。目前可用的系统,诸如信息提取系统,善于从非结构化数据的给定语料库提取和分类名词实体,诸如人、城市、基因、蛋白质等。目前可用的方法还可以建立所提取的实体之间的简单语义关系。例如,目前可用的方法可以建立如下的联系:提取出的人的实体“生活在”提取出的城市实体中,一个提取出的基因实体“抑制”另一个提取出的基因实体,等等。

目前可用的用于信息提取的系统和方法构造所提取信息的“三元组”。三元组是[实体<动词>实体]的构造,其中一个实体是给定语料库中指定的主语,并且该主语实体对给定语料库中指定的宾语实体执行在语料库中指定的动作(动词)或以该动作(动词)作为谓语。例如,给定合适的语料库,目前可用的系统或方法可以创建诸如[奥巴马<是…的总统>美国]的三元组。

目前,所提取的三元组人工制品可以被存储、编索引,并且可用于数据和文档检索的语义处理。诸如资源描述框架(RDF)和Web本体语言(OWL)的现有框架是用于提取这种三元组的目前可用的方法的一些例子。

发明内容

说明性实施例提供了一种用于从非结构化数据提取复杂实体和关系的方法、系统和计算机程序产品。实施例包括用于从非结构化数据提取复杂实体之间的关系的方法。实施例利用通过使用处理器和存储器执行的解析器应用,利用现有语言模型解析非结构化数据,以生成解析树。实施例从解析树创建记号集合,其中所述记号集合中的记号包括在非结构化数据中找到的词的集合。该实施例将所述记号集合插入现有语言模型,以形成增强的语言模型。该实施例利用所述增强的语言模型重新解析非结构化数据,以创建知识图。该实施例中从知识图提取所述记号集合的子集之间的关系。

在另一种实施例中,所述关系是表达的关系。该实施例将所述子集中的记号之间的边的集合识别为知识图中的分支,所述边的集合中的每条边使用谓词(predicate)的集合中的对应谓词。实施例压缩知识图的分支,以使得记号的子集变成通过表示所述谓词的集合的单个边进行关联。该实施例,作为提取的一部分,得出所述记号的子集中的记号在所表达的关系中通过所述谓词的集合进行关联的结论。

另一种实施例还得出所述记号的子集中的第一记号与记号的第二子集中的第二记号在推断出的关系中关联的结论,其中第二子集中的记号在根据压缩知识图中第二分支的第二表达的关系中。该实施例识别公共记号,其中所述分支从所述公共记号通向第一记号并且所述第二分支从所述公共记号通向第二记号。该实施例使所述公共记号成为所述推断出的关系的条件。

另一种实施例还确定记号的第二子集中的记号通过谓词的第二集合在第二表达关系中关联。

另一种实施例还作为创建记号集合的一部分,使用知识储存库,其中所述知识储存库与非结构化数据的主题相关。

另一种实施例还作为创建记号集合的一部分,使用非结构化数据的内容。

另一种实施例还作为创建记号集合的一部分,使用不同的非结构化数据的内容,其中所述非结构化数据和所述不同的非结构化数据都与主题相关。

在另一种实施例中,记号可以在重新解析过程中根据增强的语言模型被识别为单个构造。

在另一种实施例中,词的集合中的词一起出现并且指代在非结构化数据的主题中识别出的概念。

在另一种实施例中,解析包括逐词解析,并且其中解析树包括通过单个谓词边进行关联的单个词的实体。

在另一种实施例中,现有语言模型包括先前增强的语言模型。该实施例通过在原始语言模型中插入先前的记号集合来形成先前增强的语言模型。

另一种实施例还从解析不同的非结构化数据来创建先前的记号集合。

另一种实施例包括用于从非结构化数据提取复杂实体之间的关系的计算机程序产品。

另一种实施例包括用于从非结构化数据提取复杂实体之间的关系的计算机系统。

另一种实施例包括用于从非结构化数据提取复杂实体之间的关系的装置。

另一种实施例包括用于从非结构化数据提取复杂实体之间的关系的自然语言处理(NLP)环境。

附图说明

相信是本发明特点的新颖特征在所附权利要求中被阐述。但是,当结合附图阅读时,本发明本身,以及优选的使用模式、其更多目标和优点,将通过参考以下对说明性实施例的详细描述得到最好的理解,其中:

图1绘出了可以在其中实现说明性实施例的数据处理系统的网络的框图;

图2绘出了可以在其中实现说明性实施例的数据处理系统的框图;

图3绘出了根据说明性实施例的可用于生成复杂记号的示例解析树;

图4绘出了根据说明性实施例的对应于可用于生成复杂记号的解析树的示例代码;

图5绘出了根据说明性实施例的示例知识树;

图6绘出了根据说明性实施例的对应于知识图的示例代码;

图7绘出了根据说明性实施例的压缩知识图;

图8绘出了根据说明性实施例的压缩知识图中表达的和推断的关系的一些例子;以及

图9绘出了根据说明性实施例的用于从非结构化数据提取复杂实体和关系的示例过程的流程图。

具体实施方式

知识提取是基于给定数据中的事实和其它叙述创建、提供或应用逻辑结论的过程。例如,假定来自化学工艺领域的示例非结构化数据叙述“氯化铵盐沉积最有可能发生在其中处理流被冷却至低于NH4Cl盐的沉积温度的热交换器中(Ammonium chloride saltdeposition is most likely to occur in heat exchangers where theprocess stream is cooled below the NH4Cl salt depositiontemperature)”。从这个数据,知识提取应当产生可以应用于故障排除或以其它方式通知相关领域中另一工艺的信息。

说明性实施例认识到目前从非结构化数据进行知识提取的领域处于起步阶段。目前的知识提取技术局限于理解简单的语法或语义构造。这种限制的一个原因是利用目前可用的方法解析非结构化数据只产生简单的三元组,其局限于通过动词谓词关联名词实体。

说明性实施例认识到更复杂的结论或知识目前无法从非结构化数据提取,这至少是因为隐藏在非结构化数据中的更复杂的实体和它们的关系通过目前可用的技术无法发现。例如,从以上提供的关于化学工艺的例句,目前可用的知识提取方法可以确定[盐<沉积在…中>交换器]([a salt<deposits in>an exchanger]),但它们不能断定[氯化铵盐沉积<与…有关系>NH4Cl盐沉积温度{当涉及热交换器时}]([Ammonium chloride salt deposition<has something to do with>NH4Cl salt deposition temperature{when heat exchangers areinvolved}])。前者是借助简单三元组得出的结论,而后者需要对在句子中发挥作用的实体和它们的相互关系的更复杂的理解。

用来描述本发明的说明性实施例一般而言针对并解决上述问题以及与从非结构化数据进行知识提取相关的其它问题。说明性实施例提供了用于从非结构化数据提取复杂实体和关系的方法、系统和计算机程序产品。

实施例使用现有解析器,诸如目前可用的NLP引擎的解析器,来解析给定的非结构化数据。通过根据语言模型执行逐词解析操作,解析器产生解析树,该解析树可用于识别简单的名词实体以及基于该简单的名词实体的三元组。

实施例从解析树识别记号。记号是彼此相关的词的集合,该集合中的词一起出现在非结构化数据中,并且通过一起出现来指代在非结构化数据中被识别、定义或使用的概念。例如,在关于在以上例子中使用的化学工艺的句子中,解析树可以确定铵(ammonium)与沉积(deposition)相关、氯化物(chloride)与沉积(deposition)相关并且盐(salt)与沉积(deposition)相关。实施例从解析树中的这个信息,以及合适的知识库中化学工艺领域知识的某种组合、正被解析的非结构化数据的内容以及相关的非结构化数据的其它解析的结果,确定“氯化铵盐沉积(ammonium chloride salt deposition)”是记号。

实施例构造记号,以使得整个记号可以被识别为语言模型中的单个构造。一旦记号集合已经被识别出,则实施例就将该记号集合插入由解析器使用的语言模型中。通过插入记号来增强语言模型的过程在本文中也被称为“重新插入”或者词的“重新插入”的其它变型。

实施例再次利用现有的解析器,通过使用具有重新插入的记号的增强的语言模型来解析非结构化数据。解析器产生被称为知识图的新的解析树。知识图比第一解析树显著地不那么复杂,并且将更复杂的实体,即,记号,彼此进行关联。例如,考虑以这种方式解析关于化学工艺的例句。其中第一分析树将显示“铵(ammonium)”实体是以“沉积(deposition)”动词作为谓词的名词,等等,知识图显示记号“热交换器(heat exchangers)”通过不同类型的谓词的集合与记号“氯化铵盐沉积(ammonium chloride salt deposition)”进行关联。

实施例将知识图的分支压缩成关系表达式。压缩过程将边变换成知识图中两个记号实体之间的谓词的集合。例如,示出了记号“热交换器(heat exchangers)”通过不同类型的谓词的集合与记号“氯化铵盐沉积(ammonium chloride salt deposition)”关联的分支压缩成[heat_exchangers<prep_in,aux>ammonium_chloride_salt_deposition]形式。在现有的知识提取过程中由根据实施例的这种关系可能做出的一个示例解释是:ammonium_chloride_salt_deposition通过化学工艺中的谓词的组合与热交换器关联。

此外,知识图可以不具有将两个记号彼此连接的边。例如,考虑heat_exchangers记号与ammonium_chloride_salt_deposition记号在知识图的一个分支中关联,并且与“the_NH4Cl_salt_deposition_temperature”记号在知识图的另一分支中关联。但是在知识图中可能没有从ammonium_chloride_salt_deposition记号到the_NH4Cl_salt_deposition_temperature记号或者在相反方向上的任何分支。实施例从这两个分支得出结论:即使不存在从ammonium_chloride_salt_deposition记号到the_NH4Cl_salt_deposition_temperature记号或者在相反方向上的分支,ammonium_chloride_salt_deposition记号也在heat_exchangers记号的影响下或者在其条件下与the_NH4Cl_salt_deposition_temperature记号关联。在现有的知识提取过程中由根据实施例的这种关系可能做出的一个示例解释是:当heat_exchanger以某种方式参与化学过程时,ammonium_chloride_salt_deposition与the_NH4Cl_salt_deposition_temperature关联。

当本文所述的实施例的方法被实现为在设备或数据处理系统上执行时,在从非结构化数据进行知识提取当中包括该设备或数据处理系统的功能的实质性进步。例如,在现有技术局限于使用简单的[名词-动词-名词]三元组进行知识提取的地方,实施例向知识提取过程提供了更复杂的[谓词-记号的记号集,条件]。以本文所描述的方式操作的实施例显著提高了可从非结构化数据提取的机器可用信息的质量和数量。从非结构化数据提取复杂实体和关系的这种方式在目前可用的设备和数据处理系统中不可用。因此,通过执行实施例的方法的这种设备或数据处理系统的显著进步提高了对非结构化数据的机器理解。

说明性实施例是仅仅是作为例子而相对于某些方法或技术、工具、领域、非结构化数据、解析、树和图、关系表达式、设备、数据处理系统、环境、组件和应用来描述的。这些和其它类似人工制品的任何具体表现形式都并不是要限制本发明。这些和其它类似人工制品的任何合适的表现形式都可以在说明性实施例的范围内进行选择。

此外,说明实施例可以相对于任何类型的数据、数据源或者经数据网络对数据源的访问来实现。在本发明的范围之内,任何类型的数据存储设备都可以或者在数据处理系统本地或者经数据网络将数据提供给本发明的实施例。在说明性实施例的范围之内,在利用移动设备对实施例进行描述的地方,适于与移动设备一起使用的任何类型的数据存储设备都可以或者在移动设备本地或者经数据网络将数据提供给这种实施例。

说明性实施例是利用特殊的代码、设计、体系架构、协议、布局、原理图和工具来描述的,这些仅仅是作为例子而不是局限于说明性实施例。此外,为了描述的清晰,说明性实施例在一些情况下是利用仅仅作为例子的特定软件、工具和数据处理环境来描述。说明性实施例可以结合其它具有可比性或类似目的的结构、系统、应用或体系架构一起使用。例如,在本发明的范围之内,其它具有可比性的移动设备、结构、系统、应用或用于其的体系架构可以结合本发明的这种实施例一起使用。说明性实施例可以以硬件、软件或者其组合实现。

本公开内容中的例子仅仅是为了描述的清晰,而不限于说明性实施例。附加的数据、操作、动作、任务、活动和操纵将是从本公开内容可以想到的,并且同样在这些说明性实施例的范围内可被考虑。

本文中列出的任何优点都仅仅是例子并且不是要限定到说明性实施例。附加的或不同的优点可以通过具体的说明性实施例来实现。此外,特定的说明性实施例可以具有上面列出的优点中的一些、全部或没有。

参考附图并且尤其是参考图1和2,这些图是说明性实施例可以在其中实现的数据处理环境的示例图。图1和2仅仅是例子而不是要就可以在其中实现不同实施例的环境声明或暗示任何限制。基于以下描述,特定的实现可以对所绘出的环境做出许多修改。

图1绘出了可以在其中实现说明性实施例的数据处理系统的网络的框图。数据处理环境100是可以在其中实现说明性实施例的计算机的网络。数据处理环境100包括网络102。网络102是用来在在数据处理环境100中连接到一起的各种设备与计算机之间提供通信链路的介质。网络102可以包括诸如电线、无线通信链路或光纤电缆之类的连接。

客户端或服务器仅仅是连接到网络102的某些数据处理系统的示例角色,并且不是要排除用于这些数据处理系统的其它配置或角色。服务器104和服务器106连同存储单元108一起耦合到网络102。软件应用可以在数据处理环境100中的任何计算机上执行。客户端110、112和114也耦合到网络102。数据处理系统,诸如服务器104或106,或客户端110、112或114,可以包含数据并且可以具有在其上执行的软件应用或软件工具。

仅仅作为例子,而不是暗示对这种体系架构的任何限制,图1绘出了在实施例的示例实现中可用的某些组件。例如,服务器104和106,以及客户端110、112、114,仅仅作为例子被描绘为服务器和客户端而不是暗示对客户端-服务器体系架构的限制。作为另一个例子,在说明性实施例的范围之内,实施例可以如所示的跨几个数据处理系统和数据网络分布,而另一个实施例可以在单个数据处理系统上实现。数据处理系统104、106、110、112和114还表示适于实现实施例的集群、分区和其它配置中的示例节点。

设备132是本文所述的设备的例子。例如,设备132可以采取以下形式:智能电话、平板计算机、膝上型计算机、固定或便携形式的客户端110、可穿戴计算设备或者可以被配置为经覆盖网络进行通信的任何其它合适的设备。被描述为在图1中的另一数据处理系统中执行的任何软件应用都可以被配置为以类似的方式在设备132中执行。在图1中的另一数据处理系统中存储或产生的任何数据或信息都可以被配置为以类似的方式在设备132中存储或产生。解析器103是现有的解析器工具。例如,在现有的知识提取过程中,解析器103被配置为利用NLP引擎107操作,以便从非结构化数据111中提取机器可用信息。应用105结合解析器103和NLP引擎107一起操作,以产生关系109。关系109以本文所述的方式改进现有的知识提取过程。

服务器104和106、存储单元108以及客户端110、112和114可以利用有线连接、无线通信协议或其它合适的数据连接耦合到网络102。客户端110、112和114可以是例如个人计算机或网络计算机。

在所绘出的例子中,服务器104可以向客户端110、112和114提供诸如引导文件、操作系统映像和应用之类的数据。在这个例子中,客户端110、112和114可以是服务器104的客户端。客户端110、112、114,或者它们的某种组合,可以包括它们自己的数据、引导文件、操作系统映像和应用。数据处理环境100可以包括附加的服务器、客户端和未示出的其它设备。

在所绘出的例子中,数据处理环境100可以是互联网。网络102可以表示使用传输控制协议/互联网协议(TCP/IP)和其它协议来彼此通信的网络和网关的集合。位于互联网的核心的是包括数以千计的路由数据和消息的商业、政府、教育和其它计算机系统的主要节点或主计算机之间的数据通信链路的中枢。当然,数据处理环境100还可以被实现为多种不同类型的网络,诸如像内联网、局域网(LAN)或广域网(WAN)。图1旨在作为例子,而不是作为对不同说明性实施例的体系架构的限制。

除了其它使用,数据处理环境100还可以被用于实现说明性实施例在其中可以实现的客户端-服务器环境。客户端-服务器环境使得软件应用和数据能够跨网络分布,从而使得应用通过利用客户端数据处理系统与服务器数据处理系统之间的交互来起作用。数据处理环境100还可以采用面向服务的体系架构,其中跨网络分布的可互操作的软件组件可以作为相干业务应用被打包在一起。

参考图2,该图绘出了说明性实施例可以在其中实现的数据处理系统的框图。数据处理系统200是计算机的例子,其诸如是图1中的服务器104和106,或客户端110、112和114,或者是实现用于说明性实施例的过程的计算机可用程序代码或指令可以位于其中的另一种类型的设备。

数据处理系统200还表示数据处理系统或其中的配置,诸如实现说明性实施例的过程的计算机可用程序代码或指令可以位于其中的图1中的数据处理系统132。数据处理系统200仅仅作为例子被描述为计算机,但不限于此。处于其它设备的形式的实现,诸如图1中的设备132,可以修改数据处理系统200,在不背离本文所述的数据处理系统200的操作和功能的一般描述的情况下,诸如通过添加触摸接口,甚至从数据处理系统200除去某些示出的组件来修改数据处理系统200。

在所绘出的例子中,数据处理系统200采用包括北桥和存储器控制器集线器(NB/MCH)202以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)204的集线器体系架构。处理单元206、主存储器208和图形处理器210耦合到北桥和存储器控制器集线器(NB/MCH)202。处理单元206可以包含一个或多个处理器并且可以利用一个或多个异构处理器系统来实现。处理单元206可以是多核处理器。在某些实现中,图形处理器210可以通过加速图形端口(AGP)耦合到NB/MCH 202。

在所绘出的例子中,局域网(LAN)适配器212耦合到南桥和I/O控制器集线器(SB/ICH)204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)和其它端口232以及PCI/PCIe设备234通过总线238耦合到南桥和I/O控制器集线器204。硬盘驱动器(HDD)或固态驱动器(SSD)226和CD-ROM 230通过总线240耦合到南桥和I/O控制器集线器204。PCI/PCIe设备234可以包括例如以太网适配器、插卡和用于笔记本电脑的PC卡。PCI使用卡总线控制器,而PCIe不用。ROM 224可以是例如闪存二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM 230可以使用例如集成驱动电子器件(IDE)、串行高级技术附件(SATA)接口或者诸如外部SATA(eSATA)和微型SATA(mSATA)之类的变体。超级I/O(SIO)设备236可以通过总线238耦合到南桥和I/O控制器集线器(SB/ICH)204。

存储器,诸如主存储器208、ROM 224或闪存存储器(未示出),是计算机可用存储设备的一些例子。硬盘驱动器或固态驱动器226、CD-ROM 230以及其它类似可用设备是包括计算机可用存储介质的计算机可用存储设备的一些例子。

操作系统在处理单元206上运行。在图2中,操作系统协调并提供对数据处理系统200内的各种组件的控制。操作系统可以是商业可用的操作系统,诸如(AIX是国际商业机器公司在美国和其它国家的商标)、(Microsoft和Windows是微软公司在美国和其它国家的商标)、(Linux是LinusTorvalds在美国和其它国家的商标)、iOSTM(iOS是思科系统公司在美国和其它国家授权给苹果公司的商标),或AndroidTM(Android是谷歌公司在美国和其它国家的商标)。面向对象的编程系统,诸如JavaTM编程系统,可以结合操作系统一起运行并且从在数据处理系统200上执行的JavaTM程序或应用提供对操作系统的调用(Java和所有基于Java的商标和徽标都是Oracle公司和/或其子公司的商标或注册商标)。

用于操作系统、面向对象的编程系统以及应用或程序(诸如图1中的应用105)的指令位于存储设备上(诸如硬盘驱动器226),并且可以被加载到一个或多个存储器当中的至少一个中,诸如主存储器208,以用于由处理单元206执行。说明性实施例的过程可以由处理单元206利用计算机实现的指令来执行,该指令可以位于存储器中,诸如像主存储器208、只读存储器224,或者位于一个或多个外围设备中。

依赖于实现,图1-2中的硬件可以变化。除图1-2中所绘出的硬件之外或者代替图1-2中所绘出的硬件,也可以使用其它内部硬件或外围设备,诸如闪存存储器、等效的非易失性存储器或光盘驱动器等。此外,说明性实施例的过程可以应用到多处理器数据处理系统。

在一些说明性例子中,数据处理系统200可以是个人数字助理(PDA),其一般配置有闪存存储器,以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一条或多条总线,诸如系统总线、I/O总线和PCI总线。当然,总线系统可以利用任何类型的通信架构或体系架构来实现,该架构规定数据在附连到该架构或体系架构的不同组件或设备之间的传送。

通信单元可以包括用来发送和接收数据的一个或多个设备,诸如调制解调器或网络适配器。存储器可以是例如主存储器208或高速缓存,诸如在北桥和存储器控制器集线器202中找到的高速缓存。处理单元可以包括一个或多个处理器或CPU。

在图1-2中所绘出的例子和上述例子并不是要暗示体系架构的限制。例如,数据处理系统200除了采取移动或可穿戴设备的形式,还可以是平板计算机、膝上型计算机或电话设备。

参考图3,这个图绘出了根据说明性实施例的可用于生成复杂记号的示例解析树。假设图1中的非结构化数据111包括关于本文前面的例子中提供的化学工艺的例句。图1中的解析器103使用现有的语言模型并且解析非结构化数据111中的句子,以产生解析树300。

如可以看到的,解析树300包括是单个词的实体。解析树300中的那些单个词的实体通过各种谓词与解析树300中的其它单个词的实体进行关联。将词的实体进行如图所示的关联的谓词的类型是本领域普通技术人员众所周知的。

参考图4,这个图绘出了根据说明性实施例的对应于可用于生成复杂记号的解析树的示例代码。代码400对应于图3中的解析树300。图1中的解析器103使用现有的语言模型并且解析非结构化数据111中的句子,以产生用于解析树300的代码400。在一种实施例中,代码400包括可扩展标记语言(XML)代码。

很明显,代码400和解析树300都仅仅示出例句中各个词之间的关系。代码400和解析树300都还不能提取表示例句中所表示的特定于主题的概念的任何复杂实体或其间的关系。

参考图5,这个图绘出了根据说明性实施例的示例知识树。图1中的解析器103使用增强的语言模型并且解析非结构化数据111中的句子,以产生知识图500。

实施例(诸如在图1中的应用105中实现的实施例)创建示例记号502、504、506和508。为了识别和创建记号502-508,应用使用来自图3中的解析树300或图4中的代码400的信息,结合合适的知识库中的化学工艺的领域知识中的一个或多个、正在被解析的非结构化数据的内容以及相关的非结构化数据的其它解析的结果。

例如,利用这些源,应用确定,虽然“铵(ammonium)”、“氯化物(chloride)”、“盐(salt)”和“沉积(deposition)”在解析树300中是单独的词,但“氯化铵(ammonium chloride)”是表示化合物的记号—在化学工艺的背景中的概念。类似地,应用确定“盐沉积(salt deposition)”也是表示化学工艺的记号—在非结构化数据的主题的背景中的另一概念。

此外,应用确定“氯化铵(ammonium chloride)”是非结构化数据的主题领域中的盐。因此,应用确定“氯化铵盐(ammoniumchloride salt)”和“盐沉积(salt deposition)”是在非结构化数据中存在的化学工艺领域中的相关概念。因此,应用确定“氯化铵盐沉积(ammonium chloride salt deposition)”是在非结构化数据的背景中有意义的复杂记号。因此,应用构建记号504。应用还通过类似的过程构造记号502、506和508。

应用将记号502-508重新插入语言模型,以增强语言模型。然后,应用使解析器103利用增强的语言模型重新解析非结构化数据,以产生知识图500。

解析器将插入的记号视为要被一起识别的语义结构。例如,在一种实施例中,解析器将插入的记号视为词。知识图500中的实体包括单个词的实体以及记号。一般而言,根据实施例的知识图可以包括各种长度的记号和单个词的实体的任意组合。

如可以看到的,由于包括记号502-508,知识图500比解析树300稀疏。知识图500中的实体,包括记号,通过各种谓词与实体相关。将词的实体进行如图所示的关联的谓词的类型对本领域普通技术人员是众所周知的。

参考图6,这个图绘出了根据说明性实施例的对应于知识图的示例代码。代码600对应于图5中的知识图500。图1中的解析器103使用增强的语言模型并且解析非结构化数据111中的例句,以产生用于知识图500的代码600。在一种实施例中,代码600包括XML代码。

与图4中的代码400相比,代码600显著更紧凑,但由于记号注入到语言模型中而显著提供更多的信息。可以从对应于代码600的知识图500提取和/或推断的实体和实体之间的关系也因此远比对应于代码400的解析树300的实体和实体之间的关系更复杂。

参考图7,这个图绘出了根据说明性实施例的压缩知识图。压缩知识图700是图5中的知识图500的一部分的压缩视图。记号502、504、506和508是与图5中绘出的记号相同的记号。在图1中的应用105中实现的实施例以这种方式将知识图的全部或一部分压缩成压缩形式。

知识图700以压缩形式利用记号502、504、506和508之间的非限制性示例实边示出了其中表达的关系。特别地,边(例如在这个示例描绘中由实线表示的边)是指跟踪知识图500中的分支从一个记号到另一个记号的一条或多条边。

例如,从记号502(heat_exchangers)到记号504(ammonium_chloride_salt_deposition)的边得自知识图500中的边的集合,该边的集合包括从记号502(heat_exchangers)到实体“发生(occur)”并且具有谓词“prep_in”的边,以及从实体“发生(occur)”到记号504(ammonium_chloride_salt_deposition)并且具有谓词“xsubj”的边。因此,在压缩知识图700中,从记号502(heat_exchangers)到记号504(ammonium_chloride_salt_deposition)的边具有与记号502和记号504关联的谓词的集合,该谓词的集合包括“prep_in”和“xsubj”。换句话说,压缩知识图700中的这条边告知记号heat_exchangers通过谓词(prep_in和xsubj)与记号ammonium_chloride_salt_deposition关联。

[heat_exchangers(prep_in和xsubj)ammonium_chloride_salt_deposition]。

类似地,依靠知识图500中的从记号502穿行到记号506的多边分支,在压缩知识图700中,从记号502(heat_exchangers)到记号506(the_process_stream)的边由包括“prep_in”、“advcl”和“nsubjpass”的不同的谓词的集合进行关联。这个关系可以表示为—

[heat_exchangers(prep_in,advcl,nsubjpass)the_process_stream。

类似地,依靠知识图500中从记号502穿行到记号508的多边分支,在压缩知识图700中,从记号502(heat_exchangers)到记号508(the_NH4Cl_salt_deposition_temperature)的边由包括“prep_in”、“advcl”和“prep_below”的另一谓词的集合进行关联。这个关系可以表示为—

[heat_exchangers(prep_in,advcl,prep_below)the_NH4Cl_salt_deposition_temperature]。

知识图700以压缩的形式示出了利用记号504、506和508之间的非限制性示例虚边从该知识图700推断的关系。特别地,边(例如在这个示例描绘中由虚线表示的边)是指即使没有跟踪知识图500中从一个记号到另一个记号的分支的边,也可以推断出这两个参与记号之间的关系。

作为非限制性例子,可以推断从记号504(ammonium_chloride_salt_deposition)到记号506(the_process_stream)的边,这是因为知识树500具有从公共记号(即,从记号502)连接到记号504和506的分支。换句话说,压缩知识图700中这个推断的边告知记号502(heat_exchangers)影响或调节记号ammonium_chloride_salt_deposition与记号the_process_stream之间的关系。用于这个推断出的关系的谓词的集合是谓词的集合(prep_in和xsubj)与谓词的集合(prep_in、advcl、nsubjpass)的某种组合。这种关系可以表示为—

[ammonium_chloride_salt_deposition(prep_in,xsubj,advcl,nsubjpass)the_process_stream{heat_exchangers}]。

类似地,在压缩知识图700中,从记号506(the_process_stream)到记号508(the_NH4Cl_salt_deposition_temperature)的推断出的边受记号502(heat_exchangers)的影响或调节,并且具有来自集合(“prep_in”、“advcl”、“nsubjpass”)和集合(“prep_in”、“advcl”、“prep_below”)的谓词组合。这个关系可以表示为—

[the_process_stream(prep_in,advcl,nsubjpass,prep_below)the_NH4Cl_salt_deposition_temperature{heat_exchangers}]。

类似地,在压缩知识图700中,从记号504(ammonium_chloride_salt_deposition)到记号508(the_NH4Cl_salt_deposition_temperature)的推断出的边受记号502(heat_exchangers)的影响或调节,并且具有来自集合(“prep_in”、“advcl”)和集合(“prep_in”,“advcl”,“prep_below”)的谓词的组合。这个关系可以表示为—

[ammonium_chloride_salt_deposition(prep_in,xsubj,advcl,prep_below)the_NH4Cl_salt_deposition_temperature{heat_exchangers}]。

其它的关系可以类似地从压缩知识图700推断。例如,从记号508到记号504(未示出)、从记号508到记号506(未示出)以及从记号506到记号504(未示出)可以存在推断的关系。根据实施例,使用单个句子解析的简化例子已经显示了可以从非结构化数据提取的复杂记号的类型和数量以及它们的关系。非结构化数据的网络尺寸的语料库可以包含数千或者甚至数百万的非结构化文档,在每个文档中具有数百或数千的非结构化句子。与现有技术相比,很容易看到由本文所述的一种或多种实施例在从非结构化数据进行知识提取当中所提供的显著改善。

参考图8,这个图绘出了根据说明性实施例的在压缩知识图中表达和推断的关系的一些例子。关系800是从图7中的示例压缩知识图700表达或推断的。

方框802示出了在压缩知识图700中,例如通过由实线表示的边,表达的关系的示例表示。这些关系相对于图7来描述。

方框804示出了在压缩知识图700中,例如通过由虚线表示的边,推断的关系的示例表示。相对于图7以与方框802中所表示的形式不同的形式来描述这些关系。这些表达的或推断的关系的表示的例子或者在压缩知识图中表示它们的示例方式不是要作为限制。从本公开内容,本领域普通技术人员将能够设想用于相似目的的许多其它表示,并且同样在这些说明性实施例的范围之内可被考虑。

参考图9,这个图绘出了根据说明性实施例的用于从非结构化数据提取复杂实体和关系的示例过程的流程图。过程900可以在图1中的应用105中实现。

应用接收非结构化数据(方框902)。应用利用现有的语言模型和解析器解析非结构化数据,以生成解析树(方框904)。应用利用解析树以及本文所描述的任何数量或类型的其它源的组合创建记号集合(方框906)。

应用通过将记号重新注入现有的语言模型来增强现有的语言模型(方框908)。应当注意的是,现有的语言模型可以是现有技术的语言模型,或者是来自先前执行过程900的全部或部分的增强的语言模型。本领域普通技术人员将认识到,记号的重新插入和计算知识树可以是迭代的,从而创建越来越复杂的记号、关系或者记号和关系两者,并且同样在这些说明性实施例的范围内可被考虑。

应用利用增强的语言模型重新解析非结构化数据(方框910)。应用创建、生成、计算或以其它方式呈现知识图,其中记号节点通过谓词边连接(方框912)。

应用将知识图的分支压缩成关系形式(方框914)。取决于存在的记号的数量、要识别的被表达的关系的数量和类型或者这些和其它特定于实现的考虑的某种组合,应用重复方框914的压缩操作可能需要的那么多次。

在期望和可能的时候,应用还推断压缩知识图中不同记号节点之间的一个或多个关系(方框916)。取决于存在的记号的数量、要识别的被表达的关系的数量和类型,或者这些和其它特定于实现的考虑的某种组合,应用重复方框916的推断操作可能需要的那么多次。

应用输出创建自压缩知识图的表达的和推断的关系(方框918)。然后,输出的关系当中的一个或多个关系可用在知识提取过程中。例如,在一个实现中,输出的关系形成到NLP过程的输入,以生成或改进从非结构化数据提取的机器可用信息的质量、数量,或这两者(可选的方框920)。其后,应用结束过程900。

因此,在说明性实施例中提供了用于从非结构化数据提取复杂实体和关系的计算机实现的方法、系统或装置以及计算机程序产品。在实施例或者其一部分相对于一类设备进行描述的地方,计算机实现的方法、系统或装置、计算机程序产品或者其一部分,适于或被配置为与该类设备的合适且具有可比性的表现形式的设备一起使用。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以表示一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号