掌桥专利:专业的专利平台
掌桥专利
首页

用于将自然语言句子转译成数据库查询的系统及方法

文献发布时间:2023-06-19 09:52:39


用于将自然语言句子转译成数据库查询的系统及方法

技术领域

本发明涉及用于从自然语言到人工机器可读语言的自动转译的系统及方法。

背景技术

近年来,越来越多的产品及服务依赖于采集并分析大量数据。实例几乎涵盖人类活动的所有领域,从生产到商业、科学研究、医疗保健及国防。其包含(例如):零售系统,其跨越多个商店及仓库管理股票、客户及销售;物流软件,其用于管理大型且多样化承运车队;及因特网广告服务,其依赖于用户配置文件来针对潜在客户提供优惠。管理大量数据已促进了数据库架构以及与相应数据互动的系统及方法的创新及开发。随着数据库的大小及复杂度增加,使用人操作者来快速地搜索、检索并分析数据变得不实际。

与此同时,我们正在目睹通常称为“物联网”的电子电器的爆炸性增长及多样化。从移动电话到家用电器、可穿戴装置、娱乐装置以及并入到汽车、房屋等中的各种传感器及小工具的装置通常连接到远程计算机及/或各个数据库以执行其功能。此类装置及服务的高度合意特征是用户友好性。使此类产品及服务对于大众可接近的商业压力是驱动创新型人机接口的研究及开发。此类拓扑的一些实例包含个人助理,例如苹果的

因此有相当大兴趣开发尤其在包含数据库存取及/或管理的应用中促进人类与计算机之间的交互的系统及方法。

发明内容

根据一个方面,一种方法包括采用计算机系统的至少一个硬件处理器以:执行人工语言(AL)编码器及耦合到所述AL编码器的解码器,所述AL编码器经配置以接收包括用人工语言表达的输入AL句子的表示的第一输入数组,且作为响应而产生第一内部数组。所述解码器经配置以接收所述第一内部数组且作为响应而产生包括用所述人工语言表达的第一输出AL句子的表示的第一输出数组。所述方法进一步包括:响应于将所述第一输入数组提供到所述AL编码器而确定指示所述输入AL句子与所述第一输出AL句子之间的相似度的第一相似性得分;及根据所述第一相似性得分调整所述解码器的第一组参数以改进AL编码器输入与解码器输出之间的匹配。所述方法进一步包括:确定是否满足第一阶段训练终止条件;及作为响应而在满足所述第一阶段训练终止条件的情况下执行NL编码器,所述NL编码器经配置以接收包括用自然语言表达的输入自然语言(NL)句子的表示的第二输入数组,且作为响应而将第二内部数组输出到所述解码器。所述方法进一步包括:确定由所述解码器响应于接收到所述第二内部数组而产生的第二输出数组,所述第二输出数组包括用所述人工语言表达的第二输出AL句子的表示;及确定指示所述第二输出AL句子与目标AL句子之间的相似度的第二相似性得分,所述目标AL句子包括所述输入NL句子到所述人工语言的转译。所述方法进一步包括:根据所述第二相似性得分调整所述NL编码器的第二组参数以改进解码器输出与目标输出之间的匹配,所述目标输出表示由所述NL编码器接收的输入到所述人工语言的相应转译。

根据另一方面,一种计算机系统包括至少一个硬件处理器及存储器,所述至少一个硬件处理器经配置以:执行AL编码器及耦合到所述AL编码器的解码器,所述AL编码器经配置以接收包括用人工语言表达的输入AL句子的表示的第一输入数组,且作为响应而产生第一内部数组。所述解码器经配置以接收所述第一内部数组且作为响应而产生包括用所述人工语言表达的第一输出AL句子的表示的第一输出数组。所述至少一个硬件处理器进一步经配置以:响应于将所述第一输入数组提供到所述AL编码器而确定指示所述输入AL句子与所述第一输出AL句子之间的相似度的第一相似性得分;且根据所述第一相似性得分调整所述解码器的第一组参数以改进AL编码器输入与解码器输出之间的匹配。所述至少一个硬件处理器进一步经配置以:确定是否满足第一阶段训练终止条件;及作为响应而在满足所述第一阶段训练终止条件的情况下执行NL编码器,所述NL编码器经配置以接收包括用自然语言表达的输入NL句子的表示的第二输入数组,且作为响应而将第二内部数组输出到所述解码器。所述至少一个硬件处理器进一步经配置以:确定由所述解码器响应于接收到所述第二内部数组而产生的第二输出数组,所述第二输出数组包括用所述人工语言表达的第二输出AL句子的表示。所述至少一个硬件处理器进一步经配置以:确定指示所述第二输出AL句子与目标AL句子之间的相似度的第二相似性得分,所述目标AL句子包括所述输入NL句子到所述人工语言的转译;且根据所述第二相似性得分调整所述NL编码器的第二组参数以改进解码器输出与目标输出之间的匹配,所述目标输出表示由所述NL编码器接收的输入到所述人工语言的相应转译。

根据另一方面,一种非暂时性计算机可读媒体存储指令,所述指令在由第一计算机系统的第一硬件处理器执行时致使所述第一计算机系统形成包括NL编码器及连接到所述NL编码器的解码器的经训练转译器模块,且其中训练所述转译器模块包括采用第二计算机系统的第二硬件处理器以:将所述解码器耦合到AL编码器,所述AL编码器经配置以接收包括用人工语言表达的输入AL句子的表示的第一输入数组,且作为响应而产生第一内部数组。所述AL编码器耦合到所述解码器,使得所述解码器接收所述第一内部数组且作为响应而产生包括用所述人工语言表达的第一输出AL句子的表示的第一输出数组。训练所述转译器模块进一步包括:响应于将所述第一输入数组提供到所述AL编码器而确定指示所述输入AL句子与所述第一输出AL句子之间的相似度的第一相似性得分;及根据所述第一相似性得分调整所述解码器的第一组参数以改进AL编码器输入与解码器输出之间的匹配。训练所述转译器模块进一步包括:确定是否满足第一阶段训练终止条件;及作为响应而在满足所述第一阶段训练终止条件的情况下将所述NL编码器耦合到所述解码器,使得所述NL编码器接收包括用自然语言表达的输入NL句子的表示的第二输入数组,且作为响应而将第二内部数组输出到所述解码器。训练所述转译器模块进一步包括:确定由所述解码器响应于接收到所述第二内部数组而产生的第二输出数组,所述第二输出数组包括用所述人工语言表达的第二输出AL句子的表示;及确定指示所述第二输出AL句子与目标AL句子之间的相似度的第二相似性得分,所述目标AL句子包括所述输入NL句子到所述人工语言的转译。训练所述转译器模块进一步包括:根据所述第二相似性得分调整所述NL编码器的第二组参数以改进解码器输出与目标输出之间的匹配,所述目标输出表示由所述NL编码器接收的输入到所述人工语言的相应转译。

根据另一方面,一种计算机系统包括经配置以执行包括NL编码器及连接到所述NL编码器的解码器的经训练转译器模块的第一硬件处理器,其中训练所述转译器模块包括采用第二计算机系统的第二硬件处理器以:将所述解码器耦合到AL编码器,所述AL编码器经配置以接收包括用人工语言表达的输入AL句子的表示的第一输入数组的,且作为响应而产生第一内部数组。所述AL编码器耦合到所述解码器,使得所述解码器接收所述第一内部数组且作为响应而产生包括用所述人工语言表达的第一输出AL句子的表示的第一输出数组。训练所述转译器模块进一步包括:响应于将所述第一输入数组提供到所述AL编码器而确定指示所述输入AL句子与所述第一输出AL句子之间的相似度的第一相似性得分;及根据所述第一相似性得分调整所述解码器的第一组参数以改进AL编码器输入与解码器输出之间的匹配。训练所述转译器模块进一步包括:确定是否满足第一阶段训练终止条件;及作为响应而在满足所述第一阶段训练终止条件的情况下将所述NL编码器耦合到所述解码器,使得所述NL编码器接收包括用自然语言表达的输入NL句子的表示的第二输入数组,且作为响应而将第二内部数组输出到所述解码器。训练所述转译器模块进一步包括:确定由所述解码器响应于接收到所述第二内部数组而产生的第二输出数组,所述第二输出数组包括用所述人工语言表达的第二输出AL句子的表示。训练所述转译器模块进一步包括:确定指示所述第二输出AL句子与目标AL句子之间的相似度的第二相似性得分,所述目标AL句子包括所述输入NL句子到所述人工语言的转译;及根据所述第二相似性得分调整所述NL编码器的第二组参数以改进解码器输出与目标输出之间的匹配,所述目标输出表示由所述NL编码器接收的输入到所述人工语言的相应转译。

附图说明

在阅读以下详细描述后且在参考图式后,本发明的前述方面及优点将变得更好理解,在图式中:

图1展示根据本发明的一些实施例的示范性自动化数据库存取系统,其中一组客户端与转译器训练系统及数据库服务器合作。

图2-A展示根据本发明的一些实施例的客户端系统的示范性硬件配置。

图2-B展示根据本发明的一些实施例的转译器训练系统的示范性硬件配置。

图3展示根据本发明的一些实施例的在客户端系统上执行的一组示范性软件组件。

图4展示根据本发明的一些实施例的客户端系统与数据库服务器之间的示范性数据交换。

图5图解说明根据本发明的一些实施例的转译器训练系统的示范性组件。

图6展示根据本发明的一些实施例的示范性转译器训练程序。

图7图解说明根据本发明的一些实施例的转译器模块的示范性操作。

图8图解说明根据本发明的一些实施例的转译器模块的示范性组件及操作。

图9展示根据本发明的一些实施例的由转译器训练系统执行的示范性步骤序列。

图10图解说明根据本发明的一些实施例的训练转译器模块的示范性第一阶段。

图11-A图解说明根据本发明的一些实施例的训练转译器模块的示范性第二阶段。

图11-B图解说明根据本发明的一些实施例的训练转译器模块的替代示范性第二阶段。

图12展示根据本发明的一些实施例的用于依据多个训练语料库训练转译器模块的示范性步骤序列。

具体实施方式

在以下描述中,应理解,结构之间的所有所引用连接可为直接操作连接或通过中间结构的间接操作连接。一组元素包含一或多个元素。对元素的任何引用应理解为是指至少一个元素。多个元素包含至少两个元素。除非另有需要,否则任何所描述方法步骤不必需以特定所图解说明次序执行。从第二元素导出的第一元素(例如,数据)涵盖等于所述第二元素的第一元素以及通过处理所述第二元素而产生的第一元素及任选地其它数据。根据参数做出确定或决策涵盖根据所述参数及任选地根据其它数据做出确定或决策。除非另外规定,否则一些数量/数据的指示符可为数量/数据本身,或与所述数量/数据本身不同的指示符。计算机程序是执行任务的处理器指令序列。本发明的一些实施例中所描述的计算机程序可为其它计算机程序的独立式软件实体或子实体(例如,子例程、库)。术语“数据库”在本文中用于表示任何经组织数据集合。除非另有规定,否则句子是用自然或人工语言表达的词语及/或符号序列。用不同语言表达的两个句子在两个句子是彼此的语义等效形式(即,两个句子具有相同或非常相似含义)时在本文中被视为彼此的转译。计算机可读媒体涵盖非暂时性媒体(例如磁性、光学及半导体存储媒体(例如,硬盘驱动器、光盘、快闪存储器、DRAM))以及通信链路(例如导电电缆及光纤链路)。根据一些实施例,本发明尤其提供计算机系统,所述计算机系统包括经编程以执行本文中所描述的方法的硬件(例如,一或多个处理器),以及对用以执行本文中所描述的方法的指令进行编码的计算机可读媒体。

以下描述以实例方式且未必以限制方式图解说明本发明的实施例。

图1展示根据本发明的一些实施例的示范性数据库存取及管理系统。多个客户端系统12a到d可与数据库服务器18交互,例如执行查询借此存取/检索/写入来自/去往数据库20的一组数据。示范性数据库20包含关系数据库、可扩展标记语言(XML)数据库、电子表格及键值存储区以及其它。

示范性客户端系统12a到d包含个人计算机系统、移动计算平台(膝上型计算机、平板、移动电话)、娱乐装置(TV、游戏控制台)、可穿戴装置(智能手表、健身手环)、家用电器以及包括处理器、存储器及通信接口的任何其它电子装置。客户端系统12a到d经由通信网络14(例如,因特网)连接到服务器18。网络14的部分包含局域网(LAN),例如家庭或公司网络。数据库服务器18一般描述通信地耦合到数据库20且经配置以存取数据库20以执行数据插入、数据检索及/或其它数据库管理操作的一组计算系统。

在所图解说明系统的一个示范性应用中,客户端系统12a到d表示由电子商务公司的员工使用的个别计算机,且数据库20表示存储相应公司正在出售的产品的记录的关系数据库。员工可使用所图解说明系统(例如)来找出特定产品的库存在特定仓库中目前有多少项目。

在一些实施例中,由在客户端系统12a到d及/或数据库服务器18上执行的软件促进对数据库20的存取,相应软件包括使得用自然语言(例如,英语、汉语)表达的句子能够自动转译成用例如结构化查询语言(SQL)、编程语言(例如,C++、

图2-A展示客户端系统12的示范性硬件配置。客户端系统12可表示图1的客户端系统12a到d中的任一者。在不失一般性的情况下,所图解说明客户端系统是计算机系统。其它客户端系统(例如,移动电话、智能手表)的硬件配置可稍微不同于图2-A中所图解说明的硬件配置。客户端系统12包括一组物理装置,包含硬件处理器22及存储器单元24。处理器22包括经配置以借助一组信号及/或数据执行计算及/或逻辑操作的物理装置(例如,微处理器、形成于半导体衬底上的多核心集成电路等)。在一些实施例中,此类操作以处理器指令(例如,机器代码或其它类型的编码)序列的形式递送到处理器22。存储器单元24可包括存储由处理器22存取或产生的指令及/或数据的易失性计算机可读媒体(例如,DRAM、SRAM)。

输入装置26可包含计算机键盘、鼠标及麦克风以及其它,其包含允许用户将数据及/或指令引入到客户端系统12中的相应硬件接口及/或适配器。输出装置28可包含允许客户端系统12将数据传递到用户的显示装置(例如监视器及扬声器以及其它)以及硬件接口/适配器(例如图形卡)。在一些实施例中,输入装置26及输出装置28可共享一件共同硬件,如在触摸屏装置的情形中。存储装置32包含达成软件指令及/或数据的非易失性存储、读取及写入的计算机可读媒体。示范性存储装置32包含磁盘及光盘及快闪存储器装置以及可拆卸媒体(例如CD及/或DVD磁盘及驱动器)。所述组网络适配器34使得客户端系统12能够连接到计算机网络及/或其它装置/计算机系统。控制器集线器30表示所述多个系统、外围及/或芯片集总线及/或达成处理器22与装置24、26、28、32及34之间的通信的所有其它电路系统。例如,控制器集线器30可包含存储器控制器、输入/输出(I/O)控制器及中断控制器以及其它。在另一实例中,控制器集线器30可包括将处理器22连接到存储器24的北桥及/或将处理器22连接到装置26、28、32及34的南桥。

图2-B展示根据本发明的一些实施例的转译器训练系统16的示范性硬件配置。所图解说明训练系统包含计算机,所述计算机至少包括训练处理器122(例如,微处理器、多核心集成电路)、物理存储器124、一组训练存储装置132及一组训练网络适配器134。存储装置132包含达成软件指令及/或数据的非易失性存储、读取及写入的计算机可读媒体。适配器134可包含使得训练系统16能够连接到通信网络14的网络卡及其它通信接口。在一些实施例中,转译器训练系统16进一步包括可在功能上分别与客户端系统12的输入装置26及输出装置28相似的输入装置及输出装置。

图3展示根据本发明的一些实施例的在客户端系统12上执行的示范性计算机程序。此软件可包含操作系统(OS)40,操作系统40可包括任何广泛可用的操作系统,例如Microsoft

为了清晰,以下描述将聚焦于示范性应用,其中转译器模块62输出数据库查询,即,用例如SQL的查询语言表达的一组句子。所图解说明系统及方法因此针对于使得人操作者能够执行数据库查询。然而,技术人员将理解,所描述系统及方法可经修改且适应于其它应用,其中转译器经配置以产生计算机代码(例如,

图4展示根据本发明的一些实施例的客户端系统12与数据库服务器18之间的示范性数据交换。客户端系统12将查询50发送到数据库服务器18,且作为响应而接收包括执行查询50的结果的查询结果52。查询50包括在由服务器18执行时致使服务器18执行数据库20的某些操纵(例如,分别将数据选择性地插入到数据库20中或从数据库20选择性地检索数据)的一组指令的编码。查询结果52可包括(例如)根据查询50从数据库20选择性地检索的一组数据库记录的编码。

在一些实施例中,用例如SQL的人工语言表达查询50。在替代实施例中,查询50可表达为一组自然语言句子。在此些实施例中,如本文中所描述的转译器模块可在数据库服务器18上执行。

图5图解说明根据本发明的一些实施例的转译器训练系统的示范性组件。训练系统16可执行转译器训练引擎60,转译器训练引擎60包括转译器模块62的例子及连接到转译器模块62的训练模块64。在本发明的一些实施例中,引擎60通信地耦合到由训练模块64采用以训练转译器模块62的一组训练语料库17。语料库17可包括至少一个人工语言(AL)训练语料库66,及/或一组自然语言到人工语言(NL-AL)训练语料库68a到b。

在一些实施例中,AL训练语料库66包括全部用相同人工语言表达的多个条目。在一个实例中,每一条目由自动地或由人操作者产生的至少一个AL语句组成。一些条目可包含多个AL语句,其中的一些语句被视为彼此的同义词或语义等效形式。在其中相应AL是数据库查询语言的实例中,两个AL语句可在其导致从数据库检索相同数据时被视为同义词。以相似方式,在编程语言实例中,两个AL语句(即,代码片段)在其产生相同计算结果的情况下可为同义词/语义等效形式。

在一些实施例中,NL-AL语料库68a到b包括多个条目,每一条目由一元组(例如,一对)句子组成,其中用人工语言表达至少一个句子,而用自然语言表达另一句子。在一些实施例中,所述元组的AL侧包括将相应元组的NL侧转译成所述人工语言。换句话说,所述元组的相应AL侧具有与相应元组的NL侧相同或非常相似的含义。一些NL-AL元组可由一个NL句子及多个同义AL句子组成。其它NL-AL元组可具有与一个AL句子对应的多个NL句子。不同NL-AL语料库68a到b可对应于不同自然语言(例如,英语对汉语)。在另一实例中,不同NL-AL语料库可含有用相同自然语言(例如,英语)表达的不同组NL句子。在一个此类实例中,一个NL-AL语料库用于训练待由讲英语的销售代表使用的转译器,而另一NL-AL语料库可用于训练供由讲英语的数据库管理者使用的转译器。

训练模块64经配置以训练转译器模块62以产生所要输出,例如,将自然语言句子正确地转译成人工语言句子,如在下文更详细地看到。训练在本文中一般表示调整转译器模块62的一组参数以努力获得所要结果(例如,正确转译)的过程。在图6中展示图解说明训练的示范性步骤序列。步骤序列302到304可选择语料库项目(例如,自然语言句子)且将相应语料库项目输入到转译器模块62。模块62接着可根据所接收输入产生输出。步骤308将相应输出与所要输出进行比较且确定性能得分,例如指示模块62的实际输出与所要输出之间的相似度的转译误差。响应于确定所述性能得分,在步骤310中,训练模块64可以增加转译器模块62的性能(例如,通过减少转译误差)的方式更新模块62的参数。此参数调整可根据此项技术中已知的任何方法继续进行。一些实例包含使用梯度下降、模拟退火及遗传算法的反向传播。在一些实施例中,训练在满足某一终止条件时结束(步骤312)。下文给出关于终止条件的更多细节。

在一些实施例中,在训练结束之后,在步骤314中,转译器训练系统16输出一组转译器参数值69。当模块62包括人工神经网络时,转译器参数值69可包含(例如)一组突触权重及/或一组网络架构参数值(例如,若干个层、每层的若干个神经元、联系图等)。参数值69接着可传输到客户端系统12a到d及/或数据库服务器18且用于例示执行自动化自然到人工语言转译的相应局部转译器模块。

图7图解说明根据本发明的一些实施例的转译器模块62的示范性操作。模块62经配置以将例如示范性句子54的自然语言(NL)句子自动转译成例如示范性句子56的人工语言(AL)句子。术语‘句子’在本文中用于表示用自然或人工语言表达的任一词语/符号序列。自然语言的实例包含英语、德语及汉语。人工语言包括一组符号(例如,关键字、标识符、运算符)以及用于组合相应符号的一组规则。规则通常称为语法或句法,且通常是语言特定的。示范性人工语言包含正式计算机语言,例如查询语言(例如,SQL)、编程语言(例如,C++、Perl、

在一些实施例中,转译器模块62接收包括NL句子的计算机可读表示的输入数组55,且产生包括因转译输入NL句子而产生的AL句子的编码的输出数组57。输入及/或输出数组可包括使用此项技术中已知的任何方法(例如独热编码)计算的数值数组。在一个此类实例中,NL词汇表的每一词语被指派不同数字标签。例如,‘如何’可具有标签2且‘许多’可具有标签37。接着,词语‘如何’的独热表示可包括二进制N x 1向量,其中N是词汇表的大小,且其中所有元素是0,惟第二元素(其具有1的值)除外。同时,词语‘许多’可表示为二进制Nx 1向量,其中所有元素是0,惟第37个元素除外。在一些实施例中,对例如输入句子54的词语序列进行编码的输入数组55包括N x M二进制数组,其中M表示输入句子的词语的计数,且其中输入数组55的每一行表示输入句子的不同词语。输入数组55的连续行可对应于输入句子的连续词语。输出数组57可使用相似独热编码策略,尽管用于编码输入及输出的词汇表可彼此不同。由于输入数组55及输出数组57分别表示输入句子54及输出句子56,因此输出数组57将在本文中被视为输入数组55的转译。

将NL句子54变换成输入数组55以及将输出数组57变换成AL句子56可包括可由与转译器模块62分开的软件组件执行的操作,例如剖析、符号化等。

在一些实施例中,模块62包括人工智能系统,例如经训练以执行所图解说明转译的人工神经网络。可使用此项技术中已知的任何方法来建构此些人工智能系统。在图8中所图解说明的优选实施例中,模块62包含编码器70及耦合到编码器70的解码器72。编码器70及解码器72中的每一者可包括神经网络,例如递归神经网络(RNN)。RNN形成特殊类别的人工神经网络,其中网络节点之间的连接形成有向图。递归神经网络的实例包含长短期存储器(LSTM)网络以及其它。

编码器70接收输入数组55且输出内部数组59,内部数组59包括转译器模块拥有的输入句子54的内部表示。在实践中,内部数组59包括输入数组55经由编码器70特有的一组运算(例如,矩阵乘法、激活函数的应用等)的数学变换。在一些实施例中,内部数组59的大小是固定的,而输入数组55的大小可根据输入句子而变化。例如,与短输入句子相比较,可使用相对较大输入数组来表示长输入句子。从这个角度看,可以说,在一些实施例中,编码器70将可变大小输入变换成相应输入的固定大小编码。在一些实施例中,解码器72将内部数组59视为输入,且通过第二组数学运算产生输出数组57。输出数组57的大小可根据内部数组59的内容且因此根据输入句子而变化。

图9图解说明训练转译器模块62以执行自动化NL至AL转译的示范性过程。在一些实施例中,训练包括至少两个阶段。由步骤322到324表示的第一阶段包括依据人工语言语料库(例如,图5中的AL语料库66)训练转译器模块62的例子。在一些实施例中,步骤322包括训练转译器模块62以在被馈送AL输入时产生AL输出。在一个此类实例中,转译器模块62经训练以再生用相应人工语言表达的输入。在另一实例中,模块62在被馈送AL输入时经训练以产生相应输入的同义词/语义等效形式。在再一实例中,模块62经训练使得其输出是至少语法上正确的,即,输出遵守相应人工语言的语法/句法规则。

在一些实施例中,第一阶段的训练继续进行直到满足一组终止条件为止(步骤324)。终止条件可包含性能准则,例如,与模块62的预期输出的平均偏差(即,转译误差)是否小于预定阈值。另一示范性性能准则包括转译模块62的输出是否大多语法上正确的,例如,至少90%的时间。在其中用编程语言表达模块62的输出的实施例中,测试语法正确性可包括尝试编译相应输出,且在不存在编译误差时确定相应输出是正确的。其它示范性终止条件包含计算成本准则,例如,训练可继续进行直到已超过预定时间限制或反复计数为止。

在一些实施例中,由图9中的步骤326到328图解说明的第二阶段的训练包括依据自然语言到人工语言语料库(即,使用NL-AL元组)训练转译器模块62。在一个此类实例中,模块62在被馈送元组的NL侧作为输入时经训练,以输出元组的对应AL侧。在替代实施例中,模块62可经训练以至少输出相应元组的AL侧的同义词。第二阶段的训练可继续进行直到满足终止准则为止(例如,直到实现所要百分比的正确NL到AL转译为止)。接下来,在步骤330中,转译器训练系统16可输出因训练而产生的转译器参数值69。在其中转译器模块62使用神经网络的示范性实施例中,参数值69可包含经由训练获得的突触权重的值。

图10进一步图解说明在本发明的优选实施例中的第一阶段训练。所图解说明第一阶段转译器模块62a包括连接到解码器72的人工语言编码器70a。AL编码器70a获得输入数组55a且输出内部数组59a,内部数组59a又由解码器72变换为输出数组57a。在一些实施例中,第一阶段训练包括向转译器模块62a提供多个AL输入,且调谐模块62a的参数以产生与相应所呈现输入相似的AL输出。换句话说,在一些实施例中,第一阶段训练的目标可为使输出与输入更相似。在替代实施例中,训练目标可为输出至少是相应输入的同义词,或输出在相应人工语言中是语法上正确的。

在第一阶段训练的一个实例中,对于每一对输入/输出数组,训练模块64可计算指示输出数组与输入数组(在图10中分别为57a及55a)之间的相似度的相似性度量。所述相似性度量可使用此项技术中已知的任何方法(例如根据输入数组与输出数组之间的曼哈顿或编辑距离)来计算。训练模块64接着可调整AL编码器70a及/或解码器72的参数以增加解码器72的输出与AL编码器70a的输入之间的相似性,例如,减小数组55a与57a之间的平均曼哈顿距离。

第一阶段训练可继续直到满足第一阶段终止条件为止(例如,直到获得预定性能水平为止,直到已在训练中使用AL语料库66的所有成员为止等)。

图11-A图解说明示范性第二阶段训练过程,其包括训练以在第一阶段训练中所使用的自然语言与人工语言之间进行转译。在一些实施例中,从第一阶段进展到第二阶段包括切换到通过用自然语言编码器70b替换AL编码器70a同时保留已经训练解码器72而获得的第二阶段转译器模块62b。换句话说,解码器72保持用因第一阶段训练而产生的参数值来例示。NL编码器70b的架构及/或参数值可基本上不同于AL编码器70a的架构及/或参数值。此差异的一个原因是:人工及自然语言的词汇表通常彼此不同,使得表示NL句子的输入数组可至少在大小方面不同于表示AL句子的输入数组。编码器70a到70b可具有不同架构的另一原因是:人工语言的语法/句法通常基本上不同于自然语言的语法/句法。

NL编码器70b获得表示NL句子的输入数组55b且输出内部数组59b。在一些实施例中,内部数组59b具有与由转译模块62a的AL编码器59a输出的内部数组59a相同的大小及/或结构(参见图10)。接着将内部数组59b作为输入馈送到解码器72,解码器72又产生表示AL句子的输出数组57c。

在一些实施例中,第二阶段训练使用NL-AL元组,其中元组的AL侧表示转译成相应元组的NL侧的目标AL。第二阶段训练可包括向NL编码器70b提供多个NL输入,其中每一NL输入包括NL-AL元组的NL侧,且调谐转译器模块62b的参数使得解码器72的输出与相应元组NL-AL元组的AL侧相似。换句话说,第二状态训练的目标是使解码器72的输出与相应NL输入到目标AL的转译更相似。

在一个示范性实施例中,响应于将每一元组的NL侧(表示为图11-A中的数组55b)馈送到NL编码器70b,训练模块64可将解码器72的输出(数组57c)与相应元组的AL侧(数组57b)进行比较。所述比较可包含计算指示数组57b与57c之间的相似度的相似性度量。训练模块64接着可向增加数组数组57b与57c之间的相似性的方向调整NL编码器70b及/或解码器72的参数。

在图11-B中图解说明第二阶段训练的替代情景。此替代情景采用经由第一阶段训练获得的(经训练)AL编码器(例如,用因第一阶段训练而产生的参数值例示的图10中的AL编码器70a)及NL编码器70b两者。在一些实施例中,向NL编码器70b馈送表示NL-AL元组的NL侧的输入数组55b,同时向AL编码器馈送表示相应元组的AL侧的输出数组57b。方法依赖于如下观察:AL编码器70a已经在第一阶段训练期间经配置以将AL输入变换成‘恰当’内部数组59c,解码器72接着可将‘恰当’内部数组59c往回变换成相应AL输入。换句话说,为使解码器72产生输出数组57a,其输入必须尽可能地接近于(已经训练)AL编码器70a的输出。因此,在图11-B中所图解说明的实施例中,训练模块64可将NL编码器72的输出(即,内部数组59b)与内部数组59c进行比较,且将差量化为相似性度量。训练模块64接着可向增加数组59b与59c之间的相似性的方向调整NL编码器70b及/或解码器72的参数。

图12展示根据本发明的一些实施例的用于依据多个训练语料库训练转译器模块62的示范性步骤序列。所图解说明方法依赖于如下观察:可针对每一目标人工语言(参见上文的第一阶段训练)训练解码器72仅一次,且接着以已经训练形式重复使用解码器72以导出多个转译器模块,例如,可从多个源自然语言(例如,英语、德语等)转译为相应目标人工语言(例如,SQL)的模块。

在另一实例中,可依据用相同自然语言(例如,英语)表达的不同组NL句子训练每一不同转译器模块。此特定实施例依赖于如下观察:语言通常是专业的且任务特定的,即,人类操作者用来解决某些问题的句子/命令不同于在其它情况中使用的句子/命令。因此,一些实施例采用一个语料库(即,一组NL句子)来训练待由销售人员使用的转译器,且使用另一语料库来训练待由技术人员使用的转译器。

图12中的步骤342到344图解说明第一阶段训练过程,包括训练AL编码器70a及/或解码器72。响应于成功的第一阶段训练,步骤346用NL编码器替换AL编码器70a。在一些实施例中,接着针对每一可用NL-AL语料库执行NL编码器的第二阶段训练。当从一个NL-AL语料库切换到另一NL-AL语料库(例如,从英语切换到西班牙语,或从‘销售英语’切换到‘技术英语’)时,一些实施例用适合用于当前NL-AL语料库的新NL编码器替换现有NL编码器(步骤358),同时保留已经训练解码器72。此些优化可很大程度上促进且加速自动转译器的训练。

在一些实施例中,第二阶段训练仅调整NL编码器70b(参见图11-A到11-B)的参数,而使解码器72的参数固定在经由第一阶段训练获得的值处。此训练策略目标在于使解码器72的性能保持在通过第一阶段训练实现的水平,而不顾源自然语言或NL-AL语料库的选择如何。在其中训练包括调整NL编码器70b及解码器72两者的参数的其它实施例中,步骤358可进一步包括将解码器72的参数复位到在第一阶段训练结束时获得的值。

上文所描述的示范性系统及方法允许从例如英语的源自然语言自动转译成目标人工语言(例如,SQL、编程语言、标记语言等)。本发明的一些实施例的一个示范性应用允许外行人使用用自然语言表达的简单问题执行数据库查询,而不需要知晓例如SQL的查询语言。例如,销售操作者可问客户端机器“科罗拉多州有多少30岁以下的客户?”。作为响应,机器可将相应问题转译成数据库查询且执行相应查询以检索对操作者的问题的回答。

一些实施例使用转译器模块将词语的NL序列转译成AL句子,例如转译成可用于从数据库选择性地检索数据的有效查询。所述转译器模块可包括一组人工神经网络,例如编码器网络及解码器网络。可使用递归神经网络(RNN)或任何其它人工智能技术建构编码器及解码器。

在一些实施例中,训练转译器模块包括至少两个阶段。在第一阶段中,转译器模块经训练以响应于AL输入而产生AL输出。例如,第一阶段训练可包括训练转译器模块以再生AL输入。在替代实施例中,转译器经训练以响应于AL输入而产生语法上正确的AL句子。使用方便隐喻,可以说,第一阶段训练教转译器模块‘讲’相应人工语言。在实践中,第一阶段训练包括向转译器呈现AL句子的庞大语料库(例如,SQL查询)。对于每一输入句子,评估转译器的输出以确定性能评分,且转译器的参数经调整以改进转译器在训练方面的性能。

后续第二阶段包括训练转译器模块以响应于用源语言表达的NL输入而产生AL输出。第二阶段的训练可采用包括多个句子元组(例如,对)的NL-AL语料库,每一元组至少具有NL侧及AL侧。在示范性实施例中,元组的每一AL侧可表示相应NL侧的转译,即,在被呈现元组的相应NL侧时转译器的所要输出。示范性第二阶段训练如下继续进行:对于每一NL-AL元组,转译器接收NL侧作为输入。将转译器的输出与元组的AL侧进行比较以确定转译误差,且转译器的参数经调整以减少转译器误差。

通常使用若干对项目来训练常规自动转译器,其中用源语言表达对的一个成员,而用目标语言表达对的另一成员。面对此常规训练的一个技术障碍是训练语料库的大小。此项技术中公认的是,更大更多样语料库产生更稳健且高性能转译器。实现合理转译性能可需要成千上万的NL-AL元组或更多。但由于一般无法自动产生NL-AL元组,因此设置此大语料库所需要的技术人力工作量是不实际的。

相比之下,可大量地自动产生AL句子。本发明的一些实施例采用此见解来增加性能,促进训练,且缩短转译器模块的进入市场时间。可对相对大的自动产生的AL语料库执行第一阶段的训练,从而产生能够用目标人工语言可靠地产生语法上正确的AL句子的部分地经训练转译器。接着可对更多中等大小的NL-AL语料库执行第二阶段的训练。

如本文中所描述的两阶段训练的另一优点是多个NL-AL转译器可在不必须重复第一阶段训练的情况下独立于彼此而形成。因此可在多个转译器中按照原样(即,无需重复训练)重复使用转译器模块的解码器部分,此可很大程度上减少其开发成本及进入市场时间。例如,每一此不同转译器可对应于不同源自然语言,例如英语、德语及汉语。在另一实例中,可依据相同自然语言(例如,英语)的不同组句子训练每一不同转译器。当针对不同任务/应用采用每一转译器(例如,在销售中使用一个转译器,而在数据库管理中使用另一转译器)时可出现此类情景。

尽管本说明的大部分针对于从自然语言自动转译成例如SQL的查询语言的训练,但技术人员将了解所描述系统及方法可适用于其它应用及人工语言。替代查询语言包含SPARQL及其它资源描述格式(RDF)查询语言。此些转译的示范性应用包含促进对以RDF表示的数据的存取,例如以用于从万维网及/或异构知识库(例如

其中目标语言是编程语言的一些实施例的应用尤其包含自动产生达成人机交互的代码(例如,shell脚本)。例如,用户可要求机器执行动作(例如,呼叫电话号码、存取网页、提取对象等)。自动转译器可将相应NL命令转译成可响应于接收到用户的命令而执行的一组计算机可读指令。其它示范性应用包含在两个不同编程语言之间自动转译代码(例如,Python至

在再一实例中,专门检测恶意软件的一些计算机安全供应商使用专用编程语言(字节码的版本)来编码恶意软件检测例程及/或恶意软件指示签名。本发明的一些实施例可通过允许操作者在不具有字节码的专业知识的情况下自动产生字节码例程而促进此反恶意软件研究及开发。

所属领域中的技术人员将清楚,可在不背离本发明的范围的情况下以许多方式更改以上实施例。因此,本发明的范围应由所附权利要求书及其法律等效内容来确定。

相关技术
  • 用于将自然语言句子转译成数据库查询的系统及方法
  • 用于知识产权领域的自然语言处理系统以及自然语言处理方法
技术分类

06120112332051