便利回答涉及对定量信息推理的问题的制作方法

文档序号:18267510发布日期:2019-07-27 09:18阅读:158来源:国知局
便利回答涉及对定量信息推理的问题的制作方法

本发明涉及便利回答涉及对定量信息进行推理的问题,更具体地说,涉及便利回答涉及数学计算的问题。



技术实现要素:

下面给出发明概要,以提供对本发明的一个或多个实施例的基本理解。该概要并非是要确定关键要素,也并非是要描述实施例的任何范围或权利要求的任何范围。其唯一目的是提出作为后面更详细描述的前奏的简化形式的概念。在本文的一个或多个实施例中,描述便利回答涉及数学计算的问题的装置、系统、计算机实现的方法、设备和/或计算机程序产品。

按照一个实施例,提供一种系统。该系统可以包括存储计算机可执行组件的存储器。该系统还可以包括处理器,其可操作地耦合到存储器,并且可以执行存储在存储器中的计算机可执行组件。计算机可执行组件可以包括分析组件,其将自然语言查询转换为第一逻辑表示,将外在知识转换为与自然语言查询相关的第二逻辑表示。计算机可执行组件还可以包括合并组件,其将第一逻辑表示和第二逻辑表示合并成第三逻辑表示。计算机可执行组件还可以包括应答组件,其根据对第三逻辑表示的处理来生成对自然语言查询的应答。

按照另一实施例,提供了一种计算机实现的方法。该计算机实现的方法可以包括由可操作地耦合到处理器的系统将自然语言查询转换为第一逻辑表示,将外在知识转换为与自然语言查询相关的第二逻辑表示。该计算机实现的方法还可以包括由该系统将第一逻辑表示和第二逻辑表示合并为第三逻辑表示。该计算机实现的方法可以进一步包括由该系统根据对第三逻辑表示的处理生成对自然语言查询的应答。

按照另一实施例,提供了便利应答涉及数学计算的问题的计算机程序产品。该计算机程序产品可以包括计算机可读存储介质,该计算机可读存储介质具有体现在其中的程序指令。程序指令可以由处理器执行,以使得处理器将自然语言查询转换为第一逻辑表示,将外在知识转换为与自然语言查询相关的第二逻辑表示。程序指令还可以由处理器执行,以使处理器将第一逻辑表示和第二逻辑表示合并为第三逻辑表示。程序指令还可以由处理器执行,以使得处理器根据对第三逻辑表示的处理来生成对自然语言查询的应答。

图1示出了根据本文描述的一个或多个实施例的便利应答涉及数学计算的问题的系统的非限制性示例的框图。

图2示出了根据本文描述的一个或多个实施例的便利应答涉及数学计算的问题的系统的非限制性示例的框图,该系统包括解释组件。

图3示出了根据本文描述的一个或多个实施例的便利应答涉及数学计算的问题的系统的非限制性示例的框图,该系统包括概率组件。

图4示出了根据本文描述的一个或多个实施例的便利应答涉及数学计算的问题的系统的非限制性示例的框图,该系统包括机器学习组件。

图5示出了根据本文描述的一个或多个实施例的便利应答回答涉及数学计算的问题的计算机实现的方法的非限制性示例。

图6示出了根据本文描述的一个或多个实施例的便利应答涉及数学计算的问题的系统的非限制性示例的框图。

图7示出了根据本文描述的一个或多个实施例的从自然文本转换的逻辑程序的非限制性示例。

图8示出了根据本文描述的一个或多个实施例的计算的非限制性示例。

图9示出了其中可以便利本文描述的一个或多个实施例的操作环境的非限制性示例的框图。

具体实施方式

以下详细描述仅仅是说明性的,并不旨在限制实施例和/或实施例的应用或使用。此外,在前面的背景部分或发明内容部分中、或是在具体实施方式部分中给出的任何明示或暗示的信息,不意味着对本发明的约束。

现在参照附图描述一个或多个实施例,其中相同的参考数字至始至终指代相同的元素。在下面的描述中,为了解释的目的,阐述了许多具体细节以提供对一个或多个实施例的更彻底的理解。然而,显然在各种情况下没有这些具体细节也可以实现这一个或多个实施例。

本文描述的一个或多个实施例,可以生成对涉及数学计算的自然语言查询的应答。现代认知代理(cognitiveagents)通常处理或回答用户涉及操纵定量信息的问题。更具体地说,例如,用户在与自动化保险代理交互时,可能会提出涉及数学计算的问题。例如,用户可能会问:“按2.9%的年百分比率(apr),首付300美元,9个月分期的2,000美元的保险费每月支付多少?”为了充分提供准确的应答,本文中的一个或多个实施例可以将问题或查询中未提供的外在数据(extrinsicdata)或外在知识作为输入。外在数据可以是影响月支付的数据。类似地,当与认知物流代理交互时,用户可以提供关于当前库存成本状况的询问信息。例如,用户可能会问:“给定购买400,000美元的商品购买(merchandisepurchases)、10,000美元的进货运费(freight-in)成本、5,000美元的销货运费(freight-out)成本和2,000美元的购买退货(purchasereturns),第二年年底的库存成本是多少?”外在数据可以是,销货运费本不是库存成本计算的一部分。

本文描述的一个或多个实施例可以应用于诸如人力资源、保险、房地产、银行、金融等领域。本文中的实施例可以处理用自然语言描述的复杂计算,以帮助人类进行日常操作。更具体地,本文中的实施例可以通过自动将相应领域中的新规则(例如,外在数据或外在知识)编译成逻辑公式来使它们适用于各种计算(例如,预算、抵押贷款偿还等)。这里的实施例不限于纯代数问题。这些问题不必包含用来提供应答的所有知识。应答可以从问题中包含的信息以及关于该领域的背景知识中得到。此外,概率逻辑或约束框架能够解释在自动处理自然语言时固有的不确定性,因此能够提供概率性应答。例如,本文中的一个或多个实施例可以提供概率性框架,其可以通过采用训练模型来提供具有置信度值的应答。

图1示出了根据本文描述的一个或多个实施例的能够便利应答涉及数学计算的问题的系统100的非限制性示例的框图,在本公开中解释的系统(例如,系统100等)、装置或过程的方方面面,可以构成体现在一个台或多个机器内的一个或多个机器可执行组件,例如,体现在与一个或多个机器相关联的一个或多个计算机可读介质中。当由一个或多个机器(例如,计算机、计算设备、虚拟机等)执行时,这些组件可以使机器执行所描述的操作。

在各种实施例中,系统100可以是包括处理器的任何类型的组件、机器、设备、设施、装置和/或仪器。在一些实施例中,系统100能够与有线和/或无线网络进行有效和/或可操作的通信。可以包括系统100的组件、机器、装置、设备、设施和/或工具可以包括但不限于平板计算设备、手持设备、服务器类计算机和/或数据库、膝上型计算机、笔记本计算机、台式计算机、手机、智能电话、家用电器和/或仪器、工业和/或商业设备、数字助理、支持多媒体因特网的电话、多媒体播放器等。

如图1所示,系统100可以包括总线102、存储器104、处理器106、接收组件108、分析组件110、合并组件112和/或应答组件114。总线102可以提供系统100的各种组件的互连。存储器104和处理器106可以执行本文所述的系统100的计算和/或存储操作。应当理解,在一些实施例中,一个或多个系统组件可以通过直接有线连接或集成在芯片组上与其它组件进行无线通信。

在本文描述的系统100的一个或多个实施例中,可将预测分析用于自动生成系统100使用的模型,以便于自动提供具有较高置信度值的应答。例如,自动生成可以基于知识库中保留的信息。这里使用的术语“知识库”可以是可以存储一种或多种信息的数据库或其它存储位置或存储库。设想到了所有这样的实施例。

知识库可以包括与外在知识和自然语言查询的一阶逻辑(firstorderlogic)和约束(constraints)有关的信息。在一些实施例中,与外在知识和自然语言查询的一阶逻辑和约束有关的信息,可以随时间收集并保存在知识库中。在一些实施例中,收集的信息可以包括可用于计算自然语言查询(例如,用自然语言表达的问题)的一组方程式(equations)。基于所获得的信息,系统100可以评估知识库(或多个知识库),并基于关于其它自然语言查询的已知信息来生成用于自然语言查询的方程式。系统100的预测分析可以确定,如果某自然语言查询与一个或多个其它自然语言查询相似,则可以利用相似的自然语言查询的模型来便利自动回答涉及数学的问题。

本文描述的计算机处理系统、计算机实现的方法、装置和/或计算机程序产品可以采用硬件和/或软件来生成本质上具有高度技术性、不抽象且是人类不能以一组智力活动的方式执行的模型。例如,一个或多个实施例可以对大量可用信息执行冗长和复杂的解释和分析,以生成模型,并确定哪些模型应该用于自然语言查询。在另一个示例中,一个或多个实施例可以对大量数据执行预测分析,以便利自动回答涉及数学计算的问题,即使在缺乏关于自然语言查询的详细知识的情况下,这种自动回答也具有高度的准确性。可以通过比较训练集和测试集来评估准确性。在采用训练集训练了模型之后,可以使用测试集,通过计算该模型在训练集元素上运行所产生的输出匹配预测目标的百分比来计算准确性。

接收组件108可以接收自然语言查询,其包括数学属性和与该自然语言查询相关的外在知识。自然语言查询可以是自然文本和/或话语中的问题。例如,可以借助用户界面用人的语音向聊天机器人传达问题。这里使用的术语“自然文本”、“自然语言”、“文本”和“话语”可以互换地使用。自然语言查询还可以包括—但不限于—表格、图(graphs)和图表(charts)。因此,自然语言查询可以来自多个来源。例如,自然语言查询可以由人描述,并且也可以包括表格和图。

外在知识可以是与诸如人力资源、保险、房地产、银行、金融等许多领域相关的背景知识。外部知识可以是来自文档、图解(diagrams)、表格、图、图表等的自然文本。此外,外部知识不限于打印数据,还可以来自其它来源,如网络、用户反馈等。如本文所使用的术语“外在知识”、“背景知识”和“领域知识”可以互换地使用。外在知识可以包含影响自然语言查询的真实应答的附加信息。例如,外在知识可以是用于计算自然语言查询的应答的一组规则或一组方程式。外在知识可以在有额外数据可用时被更新。

在各种实施例中,分析组件110可以将自然语言查询转换为第一逻辑表示,并将外在知识转换为与自然语言查询相关的第二逻辑表示。第一种逻辑表示和第二种逻辑表示可以包含可以用来计算对自然语言查询的应答的一组方程式。第一逻辑表示可以包括从自然语言查询中提取的一阶逻辑、约束和常数。所述约束可以捕获文档中变量之间的各种关系。所述约束可以是两个变量之间的(如x=y),三个变量之间的(如x≠y≠z或x+y<z等)。可以使用实体识别引擎来识别文本中的常量,该引擎试图确定文本中的实体所属的预定类别,例如数字、日期、名称等。

第二逻辑表示可以包括从外在知识中提取的一阶逻辑和约束。外在知识可以是自然文本,可以来自网络、图解、表格、图、图表等。外在知识也可以来自用户反馈。此外,外在知识可以是用户上下文的知识。例如,全球定位系统可以收集用户在汽车经销商处的数据,因此用户关于利率的问题可能涉及汽车非住宅。在另一个示例中,如果用户一直在网上浏览汽车,则用户关于利率的问题可能又是与汽车而非住宅有关。分析组件110可以将来自与自然语言查询相关的一个或多个源的外在知识编译为一阶逻辑和约束。

分析组件110可以将自然文本转换为形式化表示,例如概率逻辑(probabilisticlogic)和约束规划(constraintprogramming)。分析组件110可以采用和训练基于长短期记忆(lstm)神经网络的序列到序列模型(例如,用深层神经网络(dnns)进行的文本到逻辑形式转换),以将自然文本转换为基于一阶逻辑的形式化表示。尽管概率逻辑可以是如本文示例中所使用的基于一阶逻辑的通用形式化表示,实践中,目标语言可以更特定于解决计算问题的。例如,形式化表示或概率逻辑也可以是horn子句(prolog)、概率horn子句(problog)、lambda演算、markov逻辑等。

例如,经由接收组件108接收的输入,可以是文本文档的集合d(例如,d={d1,...,dm})。文本文档(例如,自然文本)可以是自然语言查询或外在知识。分析组件110可以将自然语言查询和外在知识转换为以逻辑子句集合l(例如,l={l1,...,ln})的形式在文本中嵌入的知识的形式化(例如,逻辑)表示。设l={}。对于{d1,...,dm}中的文档di,设lk是文档di中语句sj的逻辑表示。语句sj的逻辑表示lk可以通过使用基于lstm的序列到序列模型来获得,该模型先前针对期望的一阶逻辑语言进行了训练。此外,对于{d1,...,dm}中的文档di,(例如,通过概率组件302)分配概率p到lk,以反映lk如何很好地表示句子sj(例如,如果使用基于深层神经网络(dnn)的sj到lk的转换,则基于分布的语义或能量值e(lk,sj))。逻辑子句的集合l可以等于lu{lk}。分析组件110还可以运行定理证明器以确保l是一致的,并且返回l。这里,u表示集合“并”(union)运算符,其可以组合两个或多个选择语句的结果集合。

分析组件110可以将自然文本转换为一组约束规划。基于约束规划的具有通用约束规划的形式化表示,也可以更加具体。例如,约束规划可以是处理连续域、概率性(并发的)csp等的数值约束满足问题(csp)。

例如,经由接收组件108接收的输入可以是文本文档的集合d(例如,d={d1,...,dm})。文本文档(例如,自然文本)可以是自然语言查询或外在知识。分析组件110可以使用约束规划来输出在文本中嵌入的约束的集合c(例如,c={c1,...,cn})。设c={}。对于{d1,...,dm}中的文档di,设ck是通过运行为识别诸如x=y、x_y_z、x+y<z等约束而训练过的、基于dnn的序列到序列模型,从文档di中的句子sj中提取的约束。约束的集合c可以等于cu{ck}。因此,分析组件110可以返回约束集合c。这里,u表示集合“并”运算符,其可以组合两个或多个选择语句的结果集合。

此外,分析组件110还可以生成在自然文本中嵌入的常数const。例如,经由接收组件108接收的输入可以是文本格式(例如,自然文本或话语中)的问题q。分析组件110可以在输出问题文本或自然语言查询中嵌入的常数const。常数const可以是问题文本或自然语言查询中的一组常数(例如,数字、日期、名称等)。可以使用实体识别引擎来识别常数const,该引擎试图定位问题文本中的实体并将其归类于预定类别,例如数字、日期、名称等。分析组件110可以设lq为问题q的逻辑表示,且设cq为从问题q提取的约束,并返回lq、cq和const。

合并组件112可以将(例如,来自自然语言查询的)第一逻辑表示和(例如,来自外在知识的)第二逻辑表示合并为第三逻辑表示。合并部件112可以通过限定(grounding)第一逻辑和第二逻辑表示内的概率逻辑和约束规划的常数来合并第一和第二逻辑表示。也就是说,合并组件112可以将自然语言查询和外在知识的形式化表示合并为第三逻辑表示。第一种逻辑表示和第二种逻辑表示可以包含一组规则或方程式。第三逻辑表示可以是逻辑程序(logicprogram)或约束程序(constraintprogram),其可以是通过限定常数而从第一逻辑表示和第二逻辑表示组合的一组方程式。

第三逻辑表示可以是背景知识(例如,外在知识)的和问题(例如,自然语言查询)的以及(例如,来自自然语言查询的)常数的形式化表示。第三逻辑表示可以是已经从其中限定了常数的第一逻辑表示和第二逻辑表示合并的单组逻辑程序或约束程序。可以由合并组件112限定来自自然语言查询(例如,第一逻辑表示)和外在知识(例如,第二逻辑表示)的逻辑子句中的常数,以获得限定的逻辑表示或逻辑程序。可以由合并组件112限定来自自然语言查询和外在知识的约束中的常数,以获得限定的约束程序。逻辑程序或约束程序可以包含一组规则或方程式,这些规则或方程式可以被应答组件114用来计算应答。

应答组件114可以基于对第三逻辑表示的处理(例如,计算)来生成对自然语言查询的应答。应答组件114可以使用第三逻辑表示中的方程式来计算应答。后者(例如,第三逻辑表示)是可由(例如,由应答组件114使用的)专用求解器来求解以提供对原始问题的应答的有效逻辑程序或有效的约束程序。例如,图7描述了针对一个假设的问题的有效prolog程序(例如,逻辑程序)和关于库存成本的相关外在知识。该程序可由(例如,由应答组件114使用的)prolog求解器求解,以计算限定的谓词“库存成本”的真实值,其又可提供对库存成本问题的应答。应答可以是数值型应答。应答可以利用聊天机器人以自然语言向用户叙述应答。在某些情况下,应答可以是追加的问题。例如,库存成本可以包括进货运费(freight-in)成本、转售购买(purchaseforresale)金额和购买退货(purchasereturns)金额。如果自然语言查询不提供进货运费成本、转售购买金额和/或购买退货金额,那么应答可以是要求提供该进货运费成本、转售购买金额和/或购买退货金额的追加问题。

更具体地说,可以将对问题的应答映射到用x表示的应答变量。变量x可以取一个或多个值。在一个可能的实施例中,应答组件114可以解决与输入问题和相关外在知识对应的限定的概率性逻辑程序,并且返回使p(x=x)最高的x的值x,其中p(x=x)表示变量x取x值的后验边际概率。应答组件114还可以提供对作为概率性逻辑程序的最大a后验(map)假设配置所计算的应答的解释。

图2示出了根据本文描述的一个或多个实施例的便利应答涉及数学计算的问题的系统200的非限制性示例的框图,该系统包括解释组件202。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。解释组件202可以生成对应答的解释。例如,对于与库存成本有关的问题,解释可以包括如何计算库存成本的详细说明。该解释还可以详细解释为什么在计算中不含销货运费(freight-out)金额。信息的来源也可以是解释的一部分。例如,解释可以陈述方程式来自哪些源以及提供相同方程式组的源的数目。因此,解释还可以包括第一逻辑表示、第二逻辑表示和第三逻辑表示为正确的概率。此外,解释还可以包括应答为正确的概率。

图3示出了根据本文描述的一个或多个实施例的便利回答涉及数学计算的问题的系统300的非限制性示例的框图,该系统包括概率组件302。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。概率组件302可以为第一逻辑表示、第二逻辑表示、第三逻辑表示和应答分配置信度值。例如,对于{d1,...,dm}中的文档di,概率组件302可以向lk(例如,逻辑表示)分配概率p,反映lk如何很好地表示句子sj(例如,如果使用基于深度神经网络(dnn)的sj到lk的转换的话,则基于分布的语义或能量值e(lk,sj))。

概率组件302可以生成应答为正确的概率。在一些实施例中,可以采用和训练模型(例如,用更多的可用数据和/或用户反馈),这可以减少转换期间固有的不确定性,从而提供具有更高置信度的应答。例如,如果存在许多提供相同方程式组的源,那么与只有一些源相比,应答可能具有更高的置信度水平。应当理解,本文中的实施例可以解释冲突的源。例如,在计算库存成本时,一个源可能在计算中排除销货运费(freight-out)成本,而另一个源可能在计算中包括运出成本。概率组件302还可以基于应答的置信度值对最可能的应答和对应的解释进行排序。置信度值可以是与逻辑表示相关联的权重的数值。例如,逻辑表示可以是一组等式,这些等式具有基于提供这些等式的源的数目的权重值或置信度值。另外,如果先前已经使用过一组具有良好用户反馈的方程式,则置信度值也可能更高。

图4示出了根据本文描述的一个或多个实施例的系统400的非限制性示例的框图,该系统400有助于回答涉及数学计算的问题,包括机器学习组件402。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。机器学习组件402可以基于用户反馈生成并训练具有应答和解释的模型,以提供具有更高置信度的应答。在一些实施例中,机器学习组件402可以用变得可用的附加数据和用户反馈来训练模型,以减少转换期间固有的不确定性,从而提供具有更高置信度的应答。

分析组件110可以将自然语言查询和外在知识转换成第一和第二逻辑表示,第一和第二逻辑表示可以包含一组规则或方程式。合并组件112可以将第一和第二逻辑表示合并为第三逻辑表示,该第三逻辑表示可以包含逻辑程序或约束程序,该逻辑程序或约束程序可以包含一组规则或方程式。应答组件114可以使用该组规则或方程式来计算应答。通过该过程生成的数据和用户反馈可以被保留以训练模型。例如,问题可以是库存成本,计算是一组不包括销货运费(freight-out)成本的方程式。利用自然语言查询和外在知识以及结果良好的用户反馈进行计算,可以对模型进行训练,以便为其它类似问题提供具有更高置信度的应答。

本文描述的装置的实施例可以采用人工智能(ai)来便利自动化本文描述的一个或多个特征。这些组件可以使用各种基于ai的方案来执行本文公开的各种实施例/示例。为了提供或帮助本文中描述的众多确定(例如,确定、推断、计算、预测、估计、推导、检测),在此描述的组件可以检查其被授予访问权的数据的整体或子集,并且可以根据通过事件和/或数据捕获的一组观察结果提供对关于系统、环境等的推断或确定系统、环境等的状态。这些确定可被用来识别特定的上下文或动作,和/或可以生成例如状态的概率分布。这些确定可以是概率性的,也就是说,基于数据和事件的考虑计算感兴趣的状态的概率分布。这些确定还可以指用于从一组事件和/或数据组成更高级事件的技术。

这样的确定可导致从一组观察到的事件和/或存储的事件数据构造新的事件或动作,无论这些事件时间上是否紧密相关,无论这些事件和数据是否来自一个或多个事件和数据源。这里公开的组件可以采用((例如,通过训练数据)显式训练的以及(例如,通过观察行为、偏好、历史信息、接收外部信息等)隐式训练的)各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信念网络、模糊逻辑、数据融合引擎等),用于执行与所要求保护的主题有关的自动的和/或确定的动作。因此,分类方案和/或系统可以用于自动学习和执行许多功能、动作和/或确定。

分类器可以将输入属性向量z=(z1,z2,z3,z4,zn)映射到输入属于类的置信度,如f(z)=置信度(类)(f(z)=confidence(class))。这种分类可采用概率的和/或基于统计的分析(例如,将分析实用程序和成本考虑在内)来确定要自动执行的动作。支持向量机(svm)是可以使用的分类器的示例。svm通过在可能的输入的空间中寻找超曲面(hyper-surface)来操作,其中超曲面试图将触发准则与非触发事件分开。直观地,这使得分类对接近于但不等同于训练数据的测试数据来说是正确的。可以采用的其它有向和无向模型分类方法,包括例如朴素贝叶斯(bayes)、贝叶斯网络、决策树、神经网络、模糊逻辑模型和概率分类模型,它们提供不同的独立模式。这里使用的分类还包括用于开发优先模型的统计回归。

图5示出了根据本文描述的一个或多个实施例的便利回答涉及数学计算的问题的计算机实现的方法500的非限制性示例。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。在502,计算机实现的方法500可以包括由可操作地耦合到处理器的系统(例如,经由分析组件110)将自然语言查询转换为第一逻辑表示,并将外在知识转换为与自然语言查询相关的第二逻辑表示。在504,计算机实现的方法500可以包括由该系统(例如,由合并组件112)将第一逻辑表示和第二逻辑表示合并成第三逻辑表示。在506,计算机实现的方法500可以包括由该系统(例如,经由应答组件114)基于对第三逻辑表示的处理生成对自然语言查询的应答。

图6示出了根据本文描述的一个或多个实施例的便利回答涉及数学计算的问题的系统600的非限制性示例的框图。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。接收组件108可以接收自然语言查询602作为输入。自然语言查询可以是自然文本、表格、图、图表等。分析组件110(例如,编译器604)可以编译自然语言查询602中的数据,以生成第一逻辑表示606。第一逻辑表示606可以是在文本中嵌入的逻辑子句lq(例如,一阶逻辑)、约束cq和常数const的集合。

接收组件108还可以接收外在知识608作为输入。外在知识608可以是自然文本、来自网络的信息、图解、表格、图、图表等。分析组件110(例如,编译器610)可以编译来自外在知识608的数据以生成第二逻辑表示612。第二逻辑表示612可以是在文本中嵌入的一组逻辑子句(例如,一阶逻辑)l和一组约束c。

合并组件112(例如,合并614)可以将第一逻辑表示606和第二逻辑表示612合并为第三逻辑表示616。第三逻辑表示616可以是逻辑程序或约束程序。合并部件112可以限定出自第一逻辑表示606和第二逻辑表示612的常数,以形成第三逻辑表示616中的逻辑程序或约束程序。更具体地说,合并组件112可以在逻辑子句中限定出自外在知识和自然语言查询的所有常数,以获得限定的逻辑表示或逻辑程序。此外,合并组件112可以在约束中限定来自从外在知识和自然语言查询的所有常数,以获得限定的约束程序。

应答组件114(例如,求解器618)可以使用第三逻辑表示616来求解应答620。第三逻辑表示616可以包括一组规则或等式,应答组件114可以使用这些规则或等式来计算应答620。应答620可以是数值型应答,也可以用自然语言或自然文本进行叙述。应答也可以包括对如何计算应答的解释。例如,如果应答是库存成本,那么该解释可以提供关于为什么在计算应答时不包括销货运费成本的详细信息。

图7示出了根据本文描述的又一个实施例的从自然文本转换的逻辑程序700的非限制性示例。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。问题或自然语言查询702可以由接收组件108以自然文本的形式接收。分析组件110可以采用基于lstm的序列到序列模型(例如,使用dnns进行的文本到逻辑形式转换)来将自然语言查询702中的文本转换为第一逻辑表示704—一阶逻辑公式。第一逻辑表示704包括诸如公司名称(例如“fenn”)和时间段(例如“year2”)之类的常量。第一逻辑表示704还包括与计算应答相关的成本的列表,例如进货运费(freight-in)成本(例如,10000)、转售购买(purchasesforresale)(例如,40000)和购买退货(purchasereturns)(例如,2000)。

领域知识或外在知识706也可以由接收组件108以自然文本的形式接收。分析组件110还可以采用基于lstm的序列到序列模型(例如,使用dnns进行的文本到逻辑形式转换)来将外在知识706中的文本转换为第二逻辑表示708—也是一阶逻辑公式。第二逻辑表示708可以包括用于计算对自然语言查询的应答的成本和规则或方程式列表702。包括在第二逻辑表示708中的方程式中的成本列表包括‘purchasesforresale’(转售购买)、‘freightin’(进货运费)和‘purchasereturns’(购买退货)。在计算库存成本时外在知识706中的文本不包括销货运费金额。

可以将自然语言查询702输入到基于lstm的序列到序列模型中,后者可以输出第一逻辑表示704。类似地,基于lstm的序列到序列模型可以把外在知识706作为输入,并输出第二逻辑表示708。基于lstm的序列到序列模型可以使用标准方法(例如,梯度方法)使用训练例集合进行训练,训练例例如是问题文本、语句、逻辑公式等。例如,输入或话语(例如,文本)可以是“3加6是什么?”该例中的输出或逻辑公式可以是“(querysum36)”。在另一个例子中,输入或话语(例如,文本)可以是:“9个月分期的1200.00美元保险费,首付200.00美元,每月应付多少美元?该例中的输出或逻辑公式可以是“(query(amountmonthly_payment:e)(equals(period(months9:i))(list(equals(amountpremium:e)(dollar1200.00:i))(equals(amountintial_payment:e)(dollar200.00:i)))”。

图8示出了根据本文描述的一个或多个实施例的计算800的非限制性示例。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。计算800基于自然语言查询702,该查询询问“以下信息应用于fenn公司第二年度:为转售购买的商品$400,000,进货运费$10000,销货运费$5000,购买退货$2,000”。fenn公司第二年度可记帐成本是多少?”

计算800可以包括(例如,由应答组件114)将转售购买金额802(例如,400,000美元)与进货运费成本804(例如,10,000美元)相加,以接收总额806(例如,410,000美元)。(例如,由应答组件114)从总额806(例如,410,000)中减去购买退货金额808(例如,2,000美元)以接收应答810(例如,408,000美元)。虽然在自然语言查询702中包含5,000美元的销货运费金额,但是该销货运费金额不适用于计算应答810。根据从外在知识706获得并被编译成第二逻辑表示708的信息,销货运费金额不是方程式的一部分。

可以将库存成本为408,000美元的应答,用自然文本或自然语言回复给使用聊天机器人的用户。应答也可以包括一个解释。例如,应答可以包括如何计算库存成本以及/或为什么不在计算中包括销货运费金额。此外,应答还可以包括应答为正确的概率。可以利用数据和用户反馈对模型进行训练,以提供具有较高置信度的应答。例如,在对类似类型的问题采用一组方程式,并且(例如,经由接收组件108)接收有利结果的反馈之后,分析组件110可以生成可以包括具有更高置信度的方程式的第一、第二和第三逻辑表示。同样,应答组件114也可以计算出具有更高置信度的应答。

为了提供所公开的主题的各个方面的环境,图9以及下面的讨论旨在提供其中可实现所公开的主题的各个方面的合适环境的一般描述。

图9示出了其中可以便利本文描述的一个或多个实施例的操作环境的非限制性示例的框图。为简明起见,省略了本文描述的其它实施例中采用的类似元件的重复描述。

参考图9,用于实现本公开的各个方面的适当操作环境900还可以包括计算机912。计算机912还可以包括处理单元914、系统存储器916和系统总线918。系统总线918将包括但不限于系统存储器916的系统组件耦合到处理单元914。处理单元914可以是各种可用处理器中的任何一种。双微处理器和其它多处理器结构也可以用作处理单元914。系统总线918可以是几种总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线或外部总线,和/或使用任何可用总线体系结构的本地总线,这些总线体系结构包括—但不限于:工业标准体系结构(isa)、微通道体系结构(msa)、扩展isa(eisa)、智能驱动电子(ide)、vesa本地总线(vlb)、外围组件互连(pci)、卡总线、通用串行总线(usb)、高级图形端口(agp)、防火线(ieee1394)和小型计算机系统接口(scsi)。

系统存储器916还可以包括易失性存储器920和非易失性存储器922。基本输入/输出系统(bios)—其含有用于在计算机912内的元件之间传送信息的基本例程,例如在启动期间,被存储在非易失性存储器922中。计算机912还可以包括可移动的/不可移动的、易失性/非易失性计算机存储介质。图9举例说明了磁盘存储器924。磁盘存储器924还可以包括但不限于磁盘驱动器、软盘驱动器、磁带驱动器、jaz驱动器、zip驱动器、ls-100驱动器、闪存卡或记忆棒等设备。磁盘存储器924还可以单独地包括存储介质或与其它存储介质组合的存储介质。为了便于将磁盘存储器924连接到系统总线918,通常使用可移动或不可移动接口,例如接口926。图9还描绘了充当用户和在适当的操作环境900中描述的基本计算机资源之间的中介的软件。这样的软件也可以包括例如操作系统928。操作系统928可以存储在磁盘存储器924上,用于控制和分配计算机912的资源。

系统应用930利用操作系统928通过例如存储在系统存储器916或磁盘存储器924上的程序模块932和程序数据934对资源的管理。应当理解,本公开可以用各种操作系统或操作系统的组合来实现。用户通过输入设备936向计算机912输入命令或信息。输入设备936包括—但不限于—诸如鼠标的指示设备、跟踪球、触针、触摸板、键盘、麦克风、操纵杆、游戏板、卫星碟、扫描仪、电视调谐卡、数码相机、数码摄像机、网络相机等。这些和其它输入设备通过系统总线918经由接口端口938连接到处理单元914。接口端口938包括例如串行端口、并行端口、游戏端口和通用串行总线(usb)。输出设备940使用一些与输入设备936相同类型的端口。因此,例如,可以使用usb端口向计算机912提供输入,并将信息从计算机912输出到输出设备940。提供输出适配器942是为了说明存在诸如监视器、扬声器和打印机等输出设备940以及其它涉及特殊适配器的输出设备940。作为说明而非限制,输出适配器942包括提供输出设备940与系统总线918之间的连接手段的视频卡和声卡。应当注意,其它设备和/或设备系统提供输入和输出两种能力,例如远程计算机944。

计算机912可以用与一个或多个远程计算机—例如远程计算机944—的逻辑连接,在网络化环境中操作。远程计算机944可以是计算机、服务器、路由器、网络pc、工作站、基于微处理器的设备、对等设备或其它公共网络节点等,并且通常还可以包括相对于计算机912描述的许多或全部元件。为简明起见,仅例示了与远程计算机944在一起的内存存储设备946。远程计算机944通过网络接口948与计算机912逻辑连接,然后通过通信连接950物理连接。网络接口948包括有线和/或无线通信网络,如局域网(lan)、广域网(wan)、蜂窝网等。局域网技术包括光纤分布式数据接口(fddi)、铜分布式数据接口(cddi)、以太网、令牌环和th我喜欢。广域网技术包括但不限于点对点链路、诸如综合业务数字网(isdn)等电路交换网络及其变化、分组交换网络和数字用户线(dsl)。通信连接950是指用于将网络接口948连接到系统总线918的硬件/软件。虽然为了说明清楚起见,通信连接950被显示在计算机912内部,但是其也可以位于计算机912外部。用于连接到网络接口948的硬件/软件还可以仅出于示例性目的包括内部和外部技术,例如包括常规电话等级调制解调器、电缆调制解调器和dsl调制解调器、isdn适配器和以太网卡的调制解调器。

本发明可以是在任何可能的技术细节程度下集成的系统、方法、设备和/或计算机程序产品。计算机程序产品可以包括具有计算机可读程序指令的计算机可读存储介质(或介质),用于使处理器执行本发明的各个方面。计算机可读存储介质可以是能够保存和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是,例如—但不限于:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述的任何适当组合。计算机可读存储介质的更具体的示例的非穷举列表还可以包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)、存储棒、软盘、机械编码装置—例如穿孔卡或其上记录有指令的凹槽中的凸起结构。这里使用的计算机可读存储介质本身不被解释为瞬间信号,例如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲),或通过导线传输的电信号。

本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令,以便存储在相应的计算/处理设备内的计算机可读存储介质中。用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集体系结构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据,或以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,如simultalk、c++等,以及过程编程语言,如“c”编程语言或类似的编程语言。计算机可读程序指令可以独立软件包的形式完全在用户的计算机上、部分在用户的计算机上执行,可以部分在用户的计算机上、部分在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种方案中,远程计算机可以通过任何类型的网络—包括局域网(lan)或广域网(wan)—连接到用户的计算机,或者可以连接到外部计算机(例如,通过用因特网服务提供商通过因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令,以个性化电子电路,从而执行本发明的各个方面。

本文参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应该理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以通过计算机可读程序指令来实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

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

虽然上述主题已经在计算机和/或计算机上运行的计算机程序产品的计算机可执行指令的一般上下文中进行了描述,但是本领域技术人员将认识到,本公开也可以用其它程序模块或者可以结合其它程序模块来实现。通常,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将理解,本发明计算机实现的方法可以与其它计算机系统配置—包括单处理器或多处理器计算机系统、小型计算设备、大型计算机以及电脑、手持计算设备(例如,pda、电话)、基于微处理器或可编程的消费者或工业电子产品等—一起实现。所展示的各方面也可以在分布式计算环境中实现,其中由通过通信网络链接的远程处理设备执行任务。然而,本公开的有些方面——如果不是所有方面的的话——可以在独立计算机上实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。

如本申请中所使用的术语“组件”、“系统”、“平台”、“接口”等,可以指代和/或可以包括计算机相关实体或与具有一个或多个特定功能的操作机器相关的实体。本文公开的实体可以是硬件、硬件和软件的组合、软件或正在执行的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。例如,在服务器上运行的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一台计算机上和/或分布在两个或多个计算机之间。在另一个示例中,各个组件可以从其上存储有各种数据结构的各种计算机可读介质执行。这些组件可以通过本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件交互,和/或跨网络—例如因特网—与其它系统交互)。作为另一示例,组件可以是具有由电气或电子电路操作的机械部件提供的特定功能的设备,由处理器执行的软件或固件应用程序操作。在这种情况下,处理器可以是设备的内部是或外部的,并且可以执行软件或固件应用程序的至少一部分。作为又一示例,组件可以是通过没有机械部件的电子部件提供特定功能的设备,其中,电子部件可以包括处理器或其它执行软件或固件的装置,所述软件或固件至少部分地赋予所述电子组件的功能。在一个方面,组件可以经由(例如,在云计算系统内的)虚拟机来仿真电子组件。

此外,用语“或”意指包含性的“或”,而非排他性的“或”。也就是说,除非另有说明或者上下文明确,否则“x使用a或b”意指任何自然的包含性的置换。也就是说,如果x使用a,x使用b,或者x同时使用a和b,那么上述任何情况都满足“x使用a或b”。此外,说明书和附图中使用的“一”和“一个”一般应解释为“一个或多个”,除非另有说明或者上下文明确其指的是单数形式。本文所使用的用语“示例”和/或“示例性”用于表示用作例子、实例或说明。为了避免怀疑,本文所公开的主题不受这些例子的限制。此外,本文中描述为“示例”和/或“示例性”的任何方面或设计不一定被解释为优于其它方面或设计,也不意味着排除所属技术领域的数量人员已知的等同示例结构和技术。

在本说明书中使用的术语“处理器”基本上可以指任何计算处理单元或设备,包括—但不限于:单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;并行平台;以及具有分布式共享存储器的并行平台。此外,处理器可以指集成电路、专用集成电路(asic)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑控制器(plc)、复杂可编程逻辑器件(cpld)、离散门或晶体管逻辑、离散硬件组件或执行本文描述的功能而设计的上述的任何组合。此外,处理器可以利用纳米级结构,例如—但不限于—基于分子和量子点的晶体管、开关和栅极,以优化空间使用或提高用户设备的性能。处理器也可以被实现为计算处理单元的组合。在本公开中,诸如“保存”、“存储”、“数据保存”、“数据存储”、“数据库”之类的术语以及基本上与组件的操作和功能相关的任何其它信息存储组件被用于指代“存储器组件”,“存储器”中体现的实体或包含存储器的组件。应当理解,这里描述的存储器和/或存储器组件可以是易失性存储器或非易失性存储器,或者可以包括易失性和非易失性存储器。作为说明而非限制,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除rom(eeprom)、闪存或非易失性随机存取存储器(ram)(例如,铁电ram(feram))。例如,易失性存储器可以包括ram,其可以充当外部高速缓冲存储器。作为说明而非限制,ram以多种形式可用,例如同步ram(sram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、同步链路dram(sldram)、直接rambusram(drram)、直接rambusram(drdram)。和rambus动态ram(rdram)。此外,本文中公开的系统或计算机实现方法的存储器组件旨在包括但不限于这些和任何其它适当类型的存储器。

上述内容仅包括系统和计算机实现方法的示例。当然,为了描述本公开,不可能描述组件的每个可设想的组合或计算机实现的方法,但是本领域的普通技术人员可以认识到,本公开的许多进一步的组合和置换都是可能的。此外,如果“包括”、“有”、“具有”等词语用在具体实施方式、权利要求书和附图中,它们与权利要求中的“包含”一词类似地被解释为具有包含性的的含义。

为了说明的目的,已经给出了各种实施例的描述,但是所公开的实施例并非是穷举性的,也不是对本发明的限制。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。这里使用的术语的选择,是为了最佳地解释实施例的原理、实际应用以及对市场中发现的技术的技术改进,或为了使本领域普通技术人员能够理解本文所公开的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1