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

使用结构化和非结构化数据的解析查询的制作方法

2022-04-25 04:26:33 来源:中国专利 TAG:


1.本发明一般地涉及数据分析,并且更具体地涉及利用索引的非结构化数据和策划的知识库(curated knowledge base)的组合来解析(resolve)查询。


背景技术:

2.知识库(kb)经常用于许多以数据为中心的应用,例如问题回答(qa)应用。这样的知识库是利用策划的非结构化文本来创建的,并且基于高精度知识来提供准确的回答。然而,虽然知识库为特定信息子集提供准确的结果,但是它们不能提供对该特定子集之外的查询的回答。


技术实现要素:

3.根据一个方面的计算机实现的方法包括以自然语言格式接收问题;从问题导出多个子查询;确定多个子查询中的第一子查询不能利用策划的知识库来解析;利用非结构化文本解析第一子查询;以及利用解析的第一子查询调整策划的知识库。
4.根据另一方面,一种用于使用结构化和非结构化数据来解析查询的计算机程序产品包括具有随其体现的程序指令的计算机可读存储介质,其中计算机可读存储介质本身不是暂时性信号,并且其中程序指令可由处理器执行以使处理器执行方法,该方法包括由处理器以自然语言格式接收问题;由处理器从问题导出多个子查询;由处理器确定多个子查询中的第一子查询不能利用策划的知识库来解析;由处理器利用非结构化文本解析第一子查询;以及由处理器利用解析的第一子查询调整策划的知识库。
5.根据另一方面,一种系统包括处理器;以及与处理器集成、可由处理器执行、或者与处理器集成并可由处理器集成的逻辑,其中逻辑被配置为以自然语言格式接收问题;从问题导出多个子查询;确定多个子查询中的第一子查询不能利用策划的知识库来解析;利用非结构化文本解析第一子查询;以及利用解析的第一子查询调整策划的知识库。
6.根据另一方面,一种计算机实现的方法包括以自然语言格式接收问题;从问题导出第一子查询和第二子查询;确定第一子查询不能利用基于非结构化文本的策划的知识库来解析;利用查询放宽为第一子查询创建附加搜索项;利用第一子查询和附加搜索项查询针对非结构化文本的搜索索引;响应于搜索索引的查询,接收搜索结果;基于搜索结果创建新的主语/谓语/宾语三元组;利用新的主语/谓语/宾语三元组完成第一子查询;更新策划的知识库以包括完成的第一子查询;确定第二子查询能够利用更新的策划的知识库来解析;以及利用更新的策划的知识库完成第二子查询。
7.根据又一方面,一种用于实现按需提取和集成的计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,其中该计算机可读存储介质本身不是暂时性信号,并且其中该程序指令可由处理器执行以使该处理器执行方法,该方法包括由处理器以自然语言格式接收问题;由处理器从问题导出第一子查询和第二子查询;由处理器确定第一子查询不能利用基于非结构化文本的策划的知识库来解析;由处理
器利用查询放宽为第一子查询创建附加搜索项;由处理器利用第一子查询和附加搜索项来查询针对非结构化文本的搜索索引;由处理器响应于搜索索引的查询,接收搜索结果;由处理器基于搜索结果创建新的主语/谓语/宾语三元组;由处理器利用新的主语/谓语/宾语三元组完成第一子查询;由处理器更新策划的知识库以包括完成的第一子查询;由处理器确定第二子查询能够利用更新的策划的知识库来解析;以及由处理器利用更新的策划的知识库来完成第二子查询。
8.从以下详细描述中,本发明的其它方面和实施例将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。
附图说明
9.图1示出了根据本发明一个实施例的网络架构。
10.图2示出了根据本发明的一个实施例的可以与图1的服务器和/或客户端相关联的代表性硬件环境。
11.图3示出根据本发明一个实施例的使用结构化和非结构化数据解析查询的方法。
12.图4示出了根据本发明的一个实施例的用于实现按需提取和集成的方法。
13.图5示出了根据本发明的一个实施例的集成非结构化和结构化数据的示例性问题回答(qa)系统。
具体实施方式
14.以下描述是为了说明本发明的一般原理,而不是为了限制本文要求保护的发明概念。此外,本文所述的特定特征可与其它所述特征以各种可能的组合和排列组合使用。
15.除非本文另有明确定义,否则所有术语将被给予其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或词典、论文等中定义的含义。
16.还必须注意,如在说明书和所附权利要求中所使用的,单数形式“一”、“一个”和“该”包括复数对象,除非另有说明。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组的存在或添加。
17.以下描述公开了用于使用结构化和非结构化数据来解析查询的系统、方法和计算机程序产品的若干优选实施例。
18.在一个一般实施例中,一种计算机实现的方法包括以自然语言格式接收问题;从问题导出多个子查询;确定多个子查询中的第一子查询不能利用策划的知识库来解析;利用非结构化文本解析第一子查询;以及利用解析的第一子查询调整策划的知识库。
19.在另一个一般性实施例中,一种用于使用结构化和非结构化数据来解析查询的计算机程序产品包括具有随其体现的程序指令的计算机可读存储介质,其中计算机可读存储介质本身不是暂时性信号,并且其中程序指令可由处理器执行以使处理器执行方法,该方法包括由处理器以自然语言格式接收问题;由处理器从问题导出多个子查询;由处理器确定多个子查询中的第一子查询不能利用策划的知识库来解析;由处理器利用非结构化文本解析第一子查询;以及由处理器利用解析的第一子查询调整策划的知识库。
20.在另一个一般性实施例中,一种系统包括处理器;以及与处理器集成、可由处理器
执行、或者与处理器集成并可由处理器集成的逻辑,其中逻辑被配置为以自然语言格式接收问题;从问题导出多个子查询;确定多个子查询中的第一子查询不能利用策划的知识库来解析;利用非结构化文本解析第一子查询;以及利用解析的第一子查询调整策划的知识库。
21.在另一个一般实施例中,一种计算机实现的方法包括以自然语言格式接收问题;从问题导出第一子查询和第二子查询;确定第一子查询不能利用基于非结构化文本的策划的知识库来解析;利用查询放宽为第一子查询创建附加搜索项;利用第一子查询和附加搜索项查询针对非结构化文本的搜索索引;响应于搜索索引的查询,接收搜索结果;基于搜索结果创建新的主语/谓语/宾语三元组;利用新的主语/谓语/宾语三元组完成第一子查询;更新策划的知识库以包括完成的第一子查询;确定第二子查询能够利用更新的策划的知识库来解析;以及利用更新的策划的知识库来完成第二子查询。
22.在另一个一般性实施例中,一种用于实现按需提取和集成的计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,其中该计算机可读存储介质本身不是暂时性信号,并且其中该程序指令可由处理器执行以使该处理器执行方法,该方法包括由处理器以自然语言格式接收问题;由处理器从问题导出第一子查询和第二子查询;由处理器确定第一子查询不能利用基于非结构化文本的策划的知识库来解析;由处理器利用查询放宽为第一子查询创建附加搜索项;由处理器利用第一子查询和附加搜索项来查询针对非结构化文本的搜索索引;由处理器响应于搜索索引的查询,接收搜索结果;由处理器基于搜索结果创建新的主语/谓语/宾语三元组;由处理器利用新的主语/谓语/宾语三元组完成第一子查询;由处理器更新策划的知识库以包括完成的第一子查询;由处理器确定第二子查询能够利用更新的策划的知识库来解析;以及由处理器利用更新的策划的知识库来完成第二子查询。
23.图1示出了根据一个实施例的架构100。如图1所示,提供了多个远程网络102,包括第一远程网络104和第二远程网络106。网关101可以耦合在远程网络102和邻近网络108之间。在本架构100的上下文中,网络104、106可以各自采取任何形式,包括但不限于lan、诸如因特网的wan、公共交换电话网(pstn)、内部电话网等。
24.在使用中,网关101用作从远程网络102到邻近网络108的入口点。这样,网关101可以用作路由器和交换机,路由器能够引导到达网关101的给定数据分组,交换机为给定分组提供进出网关101的实际路径。
25.还包括耦合到邻近网络108的至少一个数据服务器114,并且其可经由网关101从远程网络102访问。应当注意,数据服务器114可以包括任何类型的计算设备/群件。多个用户设备116耦合到每个数据服务器114。用户设备116还可以通过网络104、106、108中的一个直接连接。这样的用户设备116可以包括台式计算机、膝上型计算机、手持式计算机、打印机或任何其他类型的逻辑。应当注意,在一个实施例中,用户设备111也可以直接耦合到任何网络。
26.外围设备120或一系列外围设备120,例如传真机、打印机、联网和/或本地存储单元或系统等,可以耦合到网络104、106、108中的一个或多个。应当注意,数据库和/或附加组件可以与耦合到网络104、106、108的任何类型的网络元件一起使用,或者集成到其中。在本说明书的上下文中,网络元件可以指网络的任何组件。
27.根据一些方法,本文描述的方法和系统可以利用和/或在虚拟系统和/或仿真一个或多个其他系统的系统上实现,该一个或多个其他系统诸如仿真ibm z/os环境的unix系统、虚拟地托管microsoft windows环境的unix系统、仿真ibm z/os环境的microsoft windows系统等。在一些实施例中,可以通过使用vmware软件来增强这种虚拟化和/或仿真。
28.在更多方法中,一个或多个网络104、106、108可以表示通常称为“云”的系统的集群。在云计算中,诸如处理能力、外围设备、软件、数据、服务器等的共享资源以按需关系被提供给云中的任何系统,从而允许服务跨许多计算系统的访问和分布。云计算通常涉及在云中操作的系统之间的因特网连接,但是也可以使用连接系统的其他技术。
29.图2示出了根据一个实施例的与图1的用户设备116和/或服务器114相关联的代表性硬件环境。图2示出了工作站的典型硬件配置,该工作站具有诸如微处理器的中央处理单元210和经由系统总线212互连的多个其它单元。
30.图2所示的工作站包括随机存取存储器(ram)214、只读存储器(rom)216、用于将诸如盘存储单元220的外围设备连接到总线212的i/o适配器218、用于将键盘224、鼠标226、扬声器228、麦克风232和/或诸如触摸屏和数字相机(未示出)的其它用户接口设备连接到总线212的用户接口适配器222、用于将工作站连接到通信网络235(例如,数据处理网络)的通信适配器234、以及用于将总线212连接到显示设备238的显示适配器236。
31.工作站上可以驻留有操作系统,诸如操作microsoft 操作系统(os)、mac os、unix os等。应当理解,优选实施例也可以在除了所提及的那些之外的平台和操作系统上实现。优选实施例可以使用xml、c和/或c 语言或其它编程语言以及面向对象的编程方法来编写。可以使用已经变得越来越多地用于开发复杂应用的面向对象编程(oop)。
32.现在参考图3,示出了根据一个实施例的方法300的流程图。在各种实施例中,方法300可根据本发明在图1-图2和图5中描述的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法300中可以包括比图3中具体描述的操作更多或更少的操作。
33.方法300的步骤中的每一个可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法300可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的某个其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法300的一个或多个步骤。说明性处理器包括但不限于中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)等、其组合或本领域已知的任何其它合适的计算设备。
34.如图3所示,方法300可以开始于操作302,其中以自然语言格式接收问题。在一个实施例中,问题可由问题回答(qa)应用接收。在另一实施例中,问题可以包括要由qa应用回答的查询。在又一实施例中,自然语言格式可包括人类在日常语音中使用的格式。
35.另外,在一个实施例中,自然语言格式可以与使用程序代码的形式语言等区分。在另一实施例中,自然语言格式的示例性问题可包括问题“what is the revenue of the competitors of company x in 2018?”。
36.此外,方法300可以继续进行操作304,其中从问题中导出多个子查询。在一个实施例中,子查询可以通过将问题的自然语言格式剖析(parse)成逻辑形式而从问题中导出。例如,可以剖析问题以识别问题的一个或多个成分。在另一示例中,可以分析一个或多个组件以从问题创建一个或多个子查询。
37.此外,在一个实施例中,每个子查询可以包括不完整的n元元组,诸如三元组(例如主语/谓语/宾语三元组等)。例如,不完整的三元组可以是针对主语、谓语和宾语的字段中的一个或多个的缺失数据。在另一个实施例中,主语/谓语/宾语三元组可包括数据对象(data object),其包含基于对问题进行剖析的结果而填充的主语、谓语和宾语的字段。例如,对于问题“what is the revenue of the competitors of company x in 2018?”导出的主语/谓语/宾语三元组可以包括以下不完整的三元组:第一子查询(?y,"revenue of',?x)和第二子查询(?x,"competitors of',"company x")。
38.此外,方法300可以继续进行操作306,其中确定多个子查询中的第一子查询不能利用策划的知识库来解析。在一个实施例中,策划的知识库可以包括符合从非结构化文本收集的预定领域的数据。例如,可以(手动地和/或自动地)剖析非结构化文本(例如,自由文本等)以确定与预定领域匹配的文本数据(例如,单词、句子等)。在另一实施例中,策划的知识库可以包括多个完整的三元组。
39.另外,在一个示例中,预定领域可以具有针对策划的知识库的一个或多个预定主题(例如,对于公司的财务信息等)。在另一示例中,可以将与预定领域匹配的文本数据添加到用于预定领域的策划的知识库。在又一示例中,策划的知识库可以包括多个完整的三元组。
40.此外,在一个实施例中,多个子查询中的第一子查询可能不能由qa应用利用策划的知识库来解析。例如,多个子查询中的第一子查询可以包括不完整的三元组,其不能通过将不完整的三元组与策划的知识库进行比较来完成。在另一实施例中,多个子查询中的第二子查询能够由qa应用利用策划的知识库来解析。例如,多个子查询中的第二子查询可以包括不完整的三元组,其可以通过将不完整的三元组与策划的知识库进行比较来完成。在另一实施例中,可以基于对第一子查询与策划的知识库的语义相关性的分析来确定第一子查询不能利用策划的知识库来解析。
41.此外,方法300可继续进行操作308,其中利用非结构化文本解析第一子查询。在一个实施例中,非结构化文本可以包括从其创建策划的知识库的文本语料库。在另一实施例中,非结构化文本可以包括不具有预定结构的历史文本文档(例如,文本文件、html等)。在又一个实施例中,第一子查询可以包括不完整的三元组。在一个实施例中,响应于确定第一子查询不能利用策划的知识库来解析,可以利用非结构化文本来解析第一子查询。
42.此外,在一个实施例中,解析第一子查询可以包括查询先前利用非结构化文本创建的搜索索引。例如,可以预处理(例如,剖析、分析等)非结构化文本以创建搜索索引。在另一示例中,搜索索引可以包括为非结构化文本创建的基于关键字的搜索引擎。在又一示例中,搜索索引可以包括为非结构化文本创建的基于关键字的搜索引擎。例如,可以利用在第一子查询的不完整的三元组内找到的项来搜索索引。
43.另外,在一个实施例中,查询放宽可以用于创建附加项以包括在搜索索引查询中。例如,执行查询放宽可以包括针对第一子查询的不完整的三元组内的项确定相似项(例如,同义词等)。在另一示例中,可以修改搜索索引查询以包括这些相似的项以及不完整的三元组的项。
44.此外,在一个实施例中,解析第一子查询可以包括接收查询搜索索引的结果。例如,结果可以包括被确定为感兴趣的一个或多个文本片段(snippet)。在另一示例中,一个
或多个文本片段中的每一个可以包括与搜索索引查询匹配的文本的一个或多个部分(例如,单词、短语、句子、段落等)。在又一示例中,可以根据一个或多个准则(例如,与搜索索引查询的相关性等)来对一个或多个文本片段进行排名。
45.此外,在一个实施例中,解析第一子查询可以包括利用查询搜索索引的结果创建新的三元组。例如,可以利用作为搜索索引查询结果接收的一个或多个文本片段来创建新的主语/谓语/宾语三元组。在另一个示例中,这些新的三元组可以是完整的(例如,它们可以具有主语、谓语和宾语字段的值)。
46.此外,在一个实施例中,解析第一子查询可以包括利用新的三元组完成第一子查询。例如,第一子查询可以包括不完整的三元组。在另一示例中,可以基于与新的三元组的比较来完成第一子查询的不完整的三元组。在又一示例中,可以基于新的三元组对第一子查询的不完整的三元组执行一个或多个基于对齐的回答识别(alignment-based answer identification)和相似性操作,以便确定不完整的三元组的一个或多个缺失字段的值。在又一示例中,可以将不完整的三元组的一个或多个缺失字段的值添加到不完整的三元组以创建第一子查询的完整的三元组。
47.此外,在一个实施例中,非结构化数据可以被周期性地更新以包括先前搜索但未在非结构化数据内找到的信息。例如,如果响应于查询搜索索引而返回的文本片段的量落在预定阈值以下,则可以对包括被确定为与搜索索引查询更相关的结果的附加非结构化数据进行搜索。该附加非结构化数据可以与当前非结构化数据合并以增强非结构化数据的语料库。
48.另外,方法300可以继续进行操作310,其中利用解析的第一子查询调整策划的知识库。在一个实施例中,调整策划的知识库可以包括将解析的第一子查询添加到策划的知识库。在另一实施例中,解析的第一子查询可以包括完成的三元组,基于在解析的第一子查询和在策划的知识库内的现有三元组之间的确定的依赖性,完成的三元组被添加到策划的知识库内的现有的完整的三元组。
49.此外,在一个实施例中,可以利用调整的策划的知识库来解析多个子查询中的第二子查询。例如,解析第二子查询可以包括利用调整的策划的知识库内的三元组来完成第二子查询。在另一示例中,多个子查询中的第二子查询可以包括与调整的策划的知识库内的完整的三元组(例如,包括解析的第一子查询的完整的三元组)进行比较的不完整的三元组。
50.此外,在一个示例中,可以基于调整的策划的知识库内的完整的三元组对第二子查询的不完整的三元组执行一个或多个基于对齐的回答识别和相似性操作,以便确定不完整的三元组的一个或多个缺失字段的值。在另一示例中,第二子查询的不完整的三元组的缺失字段的值可以被添加到不完整的三元组以创建完整的三元组(从而解析第二子查询)。
51.此外,在一个实施例中,可以使用解析的第一子查询和解析的第二子查询来创建对接收的问题的回答。例如,可以将解析的第一子查询和解析的第二子查询的三元组的字段中的信息转换为具有自然语言格式的响应。在另一示例中,可以以自然语言格式返回响应。
52.以此方式,非结构化数据(非结构化文本)和结构化数据(策划的知识库)两者都可以由qa系统一起使用以回答问题。另外,可以利用非结构化文本搜索和分析的结果来动态
地增强策划的知识库。这可以改进策划的知识库的相关性,这可以改进利用策划的知识库执行的未来子查询搜索的准确性和性能。通过改进策划的知识库的相关性,利用策划的知识库的计算设备也可以从改进的性能中受益。
53.现在参考图4,示出了根据一个实施例的用于实现按需提取和集成的方法400的流程图。在各种实施例中,方法400可以根据本发明在图1-图2和图5中描述的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法400中可以包括比图4中具体描述的操作更多或更少的操作。
54.方法400的步骤中的每一个可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法400可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法400的一个或多个步骤。说明性处理器包括但不限于中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)等、其组合或本领域已知的任何其它合适的计算设备。
55.如图4所示,方法400可从操作402开始,其中以自然语言格式接收问题。另外,方法400可以继续进行操作404,其中从问题中导出第一子查询和第二子查询。在一个实施例中,第一子查询和第二子查询都可以包括不完整的主语/谓语/宾语三元组。在另一个实施例中,第一子查询可以不同于第二子查询。例如,当与第二子查询相比时,第一子查询可以具有不同的三元组字段值。
56.另外,方法400可以继续进行操作406,其中确定第一子查询不能利用基于非结构化文本的策划的知识库来解析。此外,方法400可以继续进行操作408,其中利用查询放宽为第一子查询创建附加搜索项。此外,方法400可以继续进行操作410,其中利用第一子查询和附加搜索项查询针对非结构化文本的搜索索引。在一个实施例中,可以利用非结构化文本预先创建搜索索引。在另一实施例中,可以响应于确定不能使用策划的知识库来解析第一子查询而查询针对非结构化文本的搜索索引。
57.此外,方法400可以继续进行操作412,其中响应于搜索索引的查询而接收搜索结果。此外,方法400可以继续进行操作414,其中基于搜索结果创建新的主语/谓语/宾语三元组。例如,搜索结果可以包括多个相关片段,并且开放信息提取可以用于从片段中提取新的三元组。在另一示例中,新的三元组可以根据其与第一子查询和第二子查询的语义相关性来排名,并且预定数量的排名顶部的三元组可以被选择为新的三元组。此外,方法400可以继续进行操作416,其中利用新的主语/谓语/宾语三元组完成第一子查询。此外,方法400可以继续进行操作418,其中策划的知识库被更新以包括完成的第一子查询。
58.此外,方法400可以继续进行操作420,其中确定可以利用更新的策划的知识库来解析第二子查询。在一个实施例中,第二子查询可以被推迟,直到第一子查询完成。例如,基于第一子查询和第二子查询的不完整的三元组的分析,可以确定第二子查询依赖于第一子查询。例如,第二子查询的缺失字段可以位于第一子查询内,并且可以确定缺失字段可以在第一子查询完成时完成。在另一个实施例中,响应于该确定,可以推迟第二子查询,直到完成第一子查询。
59.另外,方法400可以继续进行操作422,其中利用更新的策划的知识库完成第二子查询。在一个实施例中,可以响应于确定第一子查询已经完成并且已经被添加到策划的知
识库而完成第二子查询。在另一实施例中,可以利用更新的策划的知识库中的主语/谓语/宾语三元组,包括完成的第一子查询三元组,来解析第二子查询。
60.以这种方式,可以执行对策划的知识库和非结构化文本两者的搜索,以既增强策划的知识库又正确地回答接收的问题。
61.图5示出了根据一个示例性实施例的集成非结构化和结构化数据的示例性问题回答(qa)系统500。qa系统500通过实时集成来自非结构化数据(自由文本)和结构化数据(策划的知识库502)的信息来回答问题。
62.如图所示,系统的输入是自然语言问题q 504。问题q 504由自然语言理解单元506剖析,该单元将问题转换成机器可以理解的子查询508。例如,子查询508可以包括不完整的主语/谓语/宾语三元组。
63.另外,对于子查询508的每个子查询q_x,查询计划生成器510通过利用一组类似查询扩展q_x来执行查询扩展。例如,q_x可以包括:
64.(company,acquire,?)。
65.然后,可以应用查询扩展以便还考虑诸如以下的查询:
66.(company,bought,?),和
67.(?,is bought by,company)。
68.在一个实施例中,以上查询扩展可使用一个或多个释义模型来完成。然后,串相似性匹配、嵌入(例如,预训练的word2vec嵌入)匹配和基于释义的匹配的组合可以用于确定子查询508中的每一个应当被发送到哪个数据源(例如,非结构化文本512或策划的知识库502)。基于确定的数据源,子查询508被划分为两个子集——自由文本子查询514和策划的知识库子查询516。
69.此外,自由文本子查询514被发送到自由文本查询模块518,其搜索索引文本语料库520以识别可能包含对自由文本子查询514的回答的相关文本片段522的集合。对非结构化文本512进行索引524以创建索引文本语料库520。这是使用索引技术(例如,基于tf-idf的方法等)来完成的,以便快速地识别和检索相关文本片段522。当搜索索引的文本语料库520时,自由文本子查询514可使用释义模型来扩展以增加覆盖。
70.此外,相关文本片段522被传递到信息提取器526(诸如关系提取器)以提取对每个自由文本子查询514的候选回答(从而完成每个自由文本子查询514)并基于它们的相关性分数对它们进行排名。
71.此外,完成的自由文本子查询514中的全部或一些然后被添加到策划的知识库502以更新策划的知识库502。在一个实施例中,完成的自由文本子查询514中的全部或一些可以与完成的策划的知识库子查询516(例如,由利用策划的知识库502的策划的知识库查询模块528完成)集成以确定响应于自然语言问题q 504而提供的最终回答。在另一实施例中,策划的知识库子查询516中的一个或多个可以由策划的知识库查询模块528利用更新的策划的知识库502来完成,并且完成的知识库子查询516然后可以被用来确定响应于自然语言问题q 504而提供的最终回答。
72.在另一实施例中,如果存在从自然语言问题q 504中识别的聚集子查询,则可以执行一个或多个聚集。
73.按需提取和集成
74.知识库(kb)已经处于许多以数据为中心的应用的核心,例如问题回答(qa)应用。大规模知识库存储关于不同种类的实体的大量知识,并使系统能够提供对以实体为中心的问题的准确的回答。在这些知识库中,策划的kb允许系统推理过高精度知识并返回准确的回答。
75.知识库可以由领域专家创作和策划,领域专家需要提出特定于领域的模式和策划工作流以提取确认该模式的事实。即使是高度精确的,这些kb可能是不完整的,因为它们假定可以使用封闭的谓词的词汇表来编码世界知识。从kb中缺失的信息通常存在于kb所基于的非结构化文本中。
76.例如,kb可以包含关于公共公司及其某些财务量度的信息,但是可以不包含诸如存在于公司之间的收购、竞争者以及子公司的关系。当可用时,可使用信息技术从文本策划此信息以完成并补充从kb缺失的信息。这可以帮助一般化遭受策划的kb的不完整性的影响的qa系统。领域专家现在可以提问以获得自动策划的文本,并且可以使用来自由系统提供的回答的洞察来进一步改进策划工作流。
77.作为说明,领域专家可以从这些公司的财务报告(例如,10-k报告)中的表格构建包含公共公司的精确财务度量的kb。然而,用户感兴趣的查询可能看起来像:
78."show me the revenue of company x's competitors in 2016."
79.该查询不能仅由策划的kb支持,并且可以被分解成两个子查询:
80.(1)(?y,revenue of,?x),和
81.(2)(?x,"be competitors of","company x"),
82.其中一旦我们知道对查询(2)的回答,就可以由策划的知识库来回答查询(1),这可以在company x的财务报告的自由文本中找到(假设报告确实包含感兴趣的信息)。
83.结果,在一个实施例中,异构数据源、结构化kb和非结构化文本可以被组合,并被用于构建动态混合知识库,其受益于结构化kb的精确性以及来自非结构化文本的事实的覆盖。给定自然语言问题,或自然语言问题的解释,系统可以选择性地查询非结构化文本或结构化kb,根据需要提取和集成信息,并聚集结果以作为整体回答查询。
84.示例性特征包括以下:
85.1.给定自然语言查询(nlq)的本地表示,称为逻辑查询,生成对应的查询计划。该计划包括查询算子(query operator),该查询算子查询现有知识库和非结构化数据以生成中间结果、组合中间回答并聚集最终结果。
86.2.对于访问非结构化数据的查询算子,从非结构化数据检索与算子相关的相关片段。
87.a.从相关片段提取事实并对其进行排名。
88.b.从提取的事实确定输入查询算子的结果。
89.3.对于访问策划的知识库的查询算子,查询知识库以检索相关事实。
90.4.产生原始查询计划的最终结果。
91.一种示例性方法将以按需方式查询自由文本以找到缺失的信息,使得可以回答查询。与静态知识库方法相比,该方法支持更多的查询。另外,以按需方式从自由文本中提取缺失的信息。此外,当前方法将复杂查询分解成多个子查询,该多个子查询可以由策划的kb更可靠地回答,或者如果相关信息从策划的kb中缺失,则可以由提取的kb更可靠地回答。
92.在回答任何问题之前,系统需要一次性预处理步骤。在离线过程中,系统在自由文本语料库上创建允许在查询时进行高效关键字搜索的倒排索引。
93.在离线过程中,系统在文本语料库上创建允许高效关键字搜索的倒排索引。另外,索引诸如年份、命名空间和与文本相关联的实体的一些元数据。
94.系统的输入是逻辑查询(例如,自然语言问题的一个解释)。逻辑查询是多个子句的结合,其中每个子句是具有一个或多个变量参数的n元元组。物理计划生成器解释逻辑查询并生成用于查询的物理计划。物理计划确定子句的执行的顺序,以及是否需要针对策划的kb或自由文本来执行子句。另外,物理计划确定如何组合和可选地聚集中间结果。
95.如果需要针对自由文本执行查询子句,则首先使用元数据重写查询子句以生成更放宽的查询计划。这有助于检索可能不表达感兴趣的信息的文本片段。然后,释义放宽的查询计划中的每一个以处理可以在自由文本中表达相同事实的多种方式。基于查询计划与原始查询的语义相似性来对查询计划进行排名。优化前k个查询计划,并且跨查询计划识别公共关键字查询并执行一次。
96.针对索引的文本语料库发出关键字查询以检索相关文本片段。开放域信息提取器从文本片段中提取事实的三元组(主语-谓语-宾语)。由于这些三元组是有噪声的并且未被归一化,因此系统进一步处理并注释它们以帮助正确地识别回答。基于它们的估计的可靠性来聚集和排名跨不同查询计划之间的三元组。然后,系统使用基于对齐的回答识别算法从三元组识别回答。这些回答被进一步消歧并被返回给计划生成器以供进一步消费。
97.如果查询子句需要针对策划的kb来执行,则必须首先将其翻译成高级声明性语言的查询。本体查询语言(oql)可以用于访问存储在策划的kb中的信息。由于查询分解将查询分解成多个简单子句,因此可以使用手工制作的模板来将子句翻译成oql查询。可以使用逻辑查询和oql查询之间的模式元素的信息重叠来选择模板以查询策划的kb。实例化选择的模板,并且针对kb发出对应的oql查询,这返回一组元组。
98.在一个实施例中,异构数据源包括结构化kb和自由文本,结构化kb具有高精度的真实世界事实,自由文本包括补充kb中的事实的大量句子储存库。混合系统受益于策划的kb的精度和文本风格事实的覆盖,并且帮助领域专家识别从策划的kb缺失的谓词。
99.另外,在一个实施例中,关键字查询可被路由到相关文档的超集,并使用元数据来进行查询放宽和重写。另外,释义模型可被用于查询扩展。
100.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的各方面。
101.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过
波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
102.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
103.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
104.本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
105.这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
106.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
107.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行
专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
108.此外,根据各种实施例的系统可以包括处理器和与处理器集成和/或可由处理器集成的逻辑,该逻辑被配置为执行本文所述的过程步骤中的一个或多个。处理器可以是如本文所述的任何配置,例如分立处理器或包括诸如处理硬件、存储器、i/o接口等许多组件的处理电路。所谓与其集成,是指处理器具有与其一起嵌入的逻辑作为硬件逻辑,诸如专用集成电路(asic)、fpga等。通过可由处理器执行,意味着逻辑是硬件逻辑;软件逻辑,例如固件、操作系统的一部分、应用程序的一部分;等等,或者硬件和软件逻辑的某种组合,其可由处理器访问并且被配置为使处理器在由处理器执行时执行某种功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域所公知的。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如asic、fpga、中央处理单元(cpu)、集成电路(ic)、图形处理单元(gpu)等。
109.很清楚,前述系统和/或方法的各种特征可以以任何方式组合,从而从以上所呈现的描述中产生多个组合。
110.还应当理解,本发明的实施例可以以代表客户部署的服务的形式提供,以便按需提供服务。
111.已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
再多了解一些

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

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

相关文献