口语对话系统中的自然语言生成的制作方法

文档序号:16637225发布日期:2019-01-16 07:08阅读:395来源:国知局
口语对话系统中的自然语言生成的制作方法

本申请于2017年6月2日被提交作为pct国际专利申请,并且要求于2016年6月3日提交的标题为“naturallanguagegenerationforspokendialoguesystemsusinglexicalizedanddelexicalizeddialogue-actsandtransferlearning”的美国临时专利申请第62/345,456号的优先权,其全部公开内容通过整体引用并入于此。



背景技术:

在接近人类的水平下由机器进行的自然语言生成(“nlg”)是人工智能的主要目标。nlg的目标是将基于计算机的数据或者表示转换成人类可理解的语音或者表达。当试图使计算机生成的文本声音更“自然”时,存在各种考虑因素,诸如寻求生成什么类型的文本(交流目标)、什么实体、事件和关系将表达该文本的内容以及如何将具有内容的语法结构伪造成“自然”发声文本。

一些口语对话系统依赖于针对nlg的基于模板的手工编制规则。然而,在一些实例中,维持所需的模板很麻烦。附加地,基于模板的手工编制规则的整体方法无法很好地扩展到复杂的域和数据库。



技术实现要素:

本文所公开的各个实施例提供了一种在口语对话系统中的自然语言生成器,该自然语言生成器在将一个或者多个对话动作槽值对转换成自然语言输出时考虑词汇化对话动作槽值对和解词汇化对话动作槽值对两者。与对话动作中的槽相关联的每个槽和值被表示为(对话动作+槽,值),其中第一项(对话动作+槽)是解词汇化的,而第二项(值)是词汇化的。每个对话动作槽值表示被处理以产生表示自然语言输出的至少一个解词汇化句子。词汇化句子通过用与该解词汇化槽相关联的值来替换每个解词汇化槽从(多个)解词汇化句子中产生。

在一个方面中,口语对话系统包括:第一处理电路装置;以及第二处理电路装置,被可操作地连接至第一处理电路装置。一个或者多个存储设备存储计算机可执行指令,该计算机可执行指令在由第一处理电路装置和第二处理电路装置执行时执行方法。该方法包括:由第一处理电路装置处理一个或者多个对话动作槽值表示,以产生一个或者多个对话动作槽值表示的第一表示;以及由第二处理电路装置处理第一表示和第二表示,以产生一个或者多个解词汇化句子作为输出。每个对话动作槽值表示包括解词汇化对话动作和解词汇化槽、以及与解词汇化槽相关联的词汇化值。第二表示表示被期望包括在自然语言输出中的一个或者多个解词汇化槽。

在另一方面中,一种操作口语对话系统的方法包括:接收一个或者多个对话动作槽值表示;处理一个或者多个对话动作槽值表示,以产生一个或者多个对话动作槽值表示的第一表示;以及处理第一表示和第二表示,以产生一个或者多个解词汇化句子作为输出。每个对话动作槽值表示包括解词汇化对话动作和解词汇化槽、以及与解词汇化槽相关联的词汇化值。第二表示表示被期望包括在自然语言输出中的一个或者多个解词汇化槽。

提供本发明内容是为了按照简化的形式来引入对下面在具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题内容的关键特征或者必要特征,也不旨在被用于限制所要求保护的主题内容的范围。

附图说明

参照以下附图描述非限制性且非详尽的示例。附图中的元件不一定相对于彼此成比例。在可能的情况下,已经使用相同的附图标记来表示附图中共有的相同特征。

图1图示了可以包括口语对话系统的示例系统;

图2是描绘了包括口语对话系统的示例系统的框图;

图3是图示了适用于在图2中所示出的系统中使用的示例自然语言生成器的框图;

图4描绘了产生对话动作槽值表示的示例过程;

图5是描绘了在图3中所示出的自然语言生成器的操作的过程流程图;

图6是图示了操作自然语言生成器的方法的流程图;

图7是描绘了训练自然语言生成器的方法的流程图;

图8是图示了计算设备的示例物理组件的框图,利用该计算设备,可以实践本公开的各个方面;以及

图9是可以实践本公开的各个方面的分布式计算系统的框图。

具体实施方式

在以下具体描述中,参照形成其一部分的附图,并且在这些附图中,通过图示的方式示出具体实施例或者示例。这些方面可以被组合,可以利用其它方面,并且在不脱离本公开的情况下,可以进行结构改变。各个实施例可以被实践为方法、系统或者设备。相应地,各个实施例可以采用硬件实现、完全软件实现或者组合软件和硬件方面的实现的形式。因此,以下具体描述并未被视为具有限制意义,并且本公开的范围由所附权利要求书及其等效物限定。

图1图示了可以包括口语对话系统的示例系统。系统100生成并且控制对语言输入的机器响应。系统100允许用户105通过客户端计算设备110来提交语言输入。客户端计算设备110可以包括或者被连接至接收语言输入的输入设备115。语言输入可以作为文本输入(例如书面的)或者作为被转换为文本(例如使用语音到文本(stt)装置120)的口语(口头)输入而被提交,输入设备115可以是任何合适类型的输入设备或者被配置为接收语言输入的设备。在非限制性示例中,输入设备115可以是键盘(实际的或者虚拟的)和/或麦克风。

客户端计算设备110被配置为通过一个或者多个网络(由网络130表示)来访问一个或者多个服务器计算设备(由服务器计算设备125表示),以与被存储在一个或者多个存储设备(由存储设备140表示)上并且由服务器计算设备125执行的口头对话系统(sds)135交互。如稍后将更详细地描述的,sds135接收语言输入,并且使得一个或者多个机器动作响应于语言输入而被执行。基于(多个)机器动作的机器响应可以通过位于客户端计算设备110中或者被连接至客户端计算设备110的一个或者多个输出设备(由输出设备145表示)被提供给用户105。在非限制性示例中,输出设备145是显示机器响应的显示器和/或“说出”机器响应的扬声器(例如使用文本到语音(tts)装置120)。

在一个或者多个实施例中,客户端计算设备110是具有输入设备115和输出设备145的个人或者手持式计算设备。例如,客户端计算设备110可以是以下中的一个:移动电话;智能电话;平板电脑;平板手机;智能手表;可穿戴计算机;个人计算机;台式计算机;膝上型计算机、游戏设备/计算机(例如xbox);电视机等。示例客户端计算设备的该列表仅用于示例目的,而不应该被视为限制性的。提供sds和/或与sds交互的任何合适的客户端计算设备都可以被利用。

如应该了解的,图1出于说明本方法和系统的目的而被描述,并且不旨在将本公开限于特定步骤顺序或者硬件或者软件组件的特定组合。

机器和用户之间的对话依赖于话轮转换行为。例如,用户可以要求机器对市中心的意大利餐馆进行定位,这是对话中的第一话轮。响应于该请求,机器可以陈述其无法找到市中心的意大利餐馆,这是机器响应并且是对话中的第二话轮。在面向任务的口语对话中,用户具有他或者她想要在对话中实现的目标(或者任务)。例如,用户可能想要获得餐馆的名称。口语对话系统基于对话中的用户话轮来获得有关用户的目标的信息。随着对话的进行,口语对话系统能够获得完成用户的目标所需的信息。

口语对话系统通常在域中操作。域与用户的目标有关。例如,在天气域中,用户可以获得有关天气(例如温度)的信息。类似地,在餐馆域中,用户可以获得提供特定类型的食物的餐馆的地址。

每个域具有与域相关联的槽类型(“槽”)。槽是变量,并且槽值(“值”)是填充槽的值。例如,在餐馆域中,食物类型可以是槽,并且食物的类型(例如“意大利式”)可以是针对该槽的值。通过对话中的话轮,口语对话系统获得有关用户的目标的信息和完成用户的目标所需的信息。

现在将描述对sds的组件、操作和/或功能的一般简要说明。图2是描绘了包括sds的示例系统的框图。输入设备115接收来自用户的语言输入。输入设备115产生表示语言输入的输出200。在一些实施例中,当语言输入是口头输入时,输出200由将口头或者音频输入转换成一个或者多个词(例如词序列)的stt装置205接收。stt装置205的一个示例是自动语音识别装置。

sds210接收来自输入设备115的输出200或者来自stt装置205的语言输入的表示215。sds210包括:自然语言理解(nlu)装置220、状态追踪器225、对话管理器230、知识数据库235和自然语言生成器(nlg)240。sds210的操作通过一个或者多个计算设备(诸如例如为一个或者多个服务器计算设备)被执行。一个或者多个计算设备分别包括存储计算机或处理单元可执行指令的至少一个存储器,当该计算机或处理单元可执行指令由(多个)计算设备中的至少一个处理单元执行时执行sds210的操作。

在一个实施例中,nlu装置220将输出200或者输出的表示215转换成被用来基于语言输入确定用户的目标的内部表示。nlu装置220还可以确定针对给定域的一个或者多个槽和/或值。例如,在餐馆域中,槽可以是食物类型,并且值可以是食物的类型(例如中国菜的或者比萨饼)。附加地或者备选地,槽可以是位置,并且值可以是“市中心”、“城市中”或者“蒙特利尔”。

在一些实施方式中,状态追踪器225追踪已经在对话中发生的事情,这被称为对话的状态。对话的状态包括(1)当前话轮;以及(2)在当前话轮之前的所有话轮。基于对话状态,对话管理器230确定要被执行的机器动作(例如机器应该如何响应用户在对话中的话轮)。

对话中的每个句子被分解成一个或者多个对话动作。表1包含针对餐馆域的示例对话动作列表。其它实施例可以使用不同的对话动作列表。

表1

对话动作中的每一个可以包括一个或者多个槽。如早前所描述的,槽是可以被填充有或者被分配有特定值的变量。例如,在餐馆域中,槽可以是“价格范围”,并且针对该特定槽的值可以是“便宜的”。

在一些实施例中,对话管理器230可以访问知识数据库235。该知识数据库235捕获或者限定有关词、词嵌入、槽、值、对话系统可以谈论的实体的属性以及词、词嵌入、槽、值和/或实体(例如文件、查找表、数据库等)的属性之间的关系的信息。知识数据库的非限制性示例包括本体和/或字典。

nlg240从对话管理器230接收机器动作(例如对话动作、(多个)槽和(多个)对应的值),并且针对机器响应生成自然语言输出245。nlg240通常必须确定:应该说什么、应该如何说(例如句法),并且然后产生输出文本。如稍后将更详细地描述的,nlg240将对话动作中的每个槽和相关联的值表示为(对话动作+槽,值),其中第一项(对话动作+槽)是解词汇化的,而第二项(值)是词汇化的。该表示使每个解词汇化对话动作和解词汇化槽与对应的词汇化值对准以产生对话动作槽值表示。每个对话动作槽值表示被处理以产生表示对话动作槽值表示中的所有对话动作槽值表示的第一表示。提供了表示被期望位于自然语言输出中的解词汇化槽中的所有解词汇化槽的第二表示。第一表示和第二表示被处理以产生至少一个解词汇化句子作为输出。词汇化句子然后通过用与解词汇化槽相关联的值来替换每个解词汇化槽从(多个)解词汇化句子中产生。

如早前所描述的,nlg240输出最终将被提供给用户(例如经由客户端计算设备)的自然语言输出。当自然语言输出245要被作为口头输出提供给用户时,tts装置250从nlg240接收自然语言输出245,并且对对应的口头输出255进行合成。口头输出255然后使用输出设备145(例如经由扬声器)被提供给用户。在一些实例中,自然语言输出245将使用输出设备145(例如经由显示器)作为书面输出被呈现给用户,在这种情况下,tts装置250不对自然语言输出245进行操作。

在图2中所示出的各种组件可以被实施在系统中的任何合适的设备中(例如图1中的客户端计算设备110、服务器计算设备125和/或存储设备140)。例如,在一个实施例中,stt装置205、sds210和tts装置250被实施在一个或者多个服务器计算设备(例如服务器计算设备125)中。在另一实施例中,stt装置205、sds210和tts装置250分布在一个或者多个服务器计算设备和一个或者多个存储设备(例如图1中的存储设备140)上。在另一非限制性示例中,stt装置205和tts装置250被实施在客户端计算设备(例如图1中的客户端计算设备110以及stt和tts装置120)中,并且sds210被实施在一个或者多个服务器计算设备中。

本文所描述的各个实施例提供了一种nlg装置,该nlg装置在将一个或者多个对话动作槽值对转换成自然语言输出时考虑词汇化对话动作槽值对和解词汇化对话动作槽值对两者。图3是图示了适用于在图2中所示出的系统中使用的示例自然语言生成器的框图。代表性nlg240包括对准电路装置300、被连接至对准电路装置300的输出的第一处理电路装置305和被连接至第一处理电路装置305的输出的第二处理电路装置310。转换器电路装置315被连接至第二处理电路装置310的输出。槽处理电路装置320被连接在输入线325和第二处理电路装置310之间。输入线325还被连接至对准电路装置300的输入和转换器电路装置315的输入。

在每个时间步长t,对准电路装置300、槽处理电路装置320和转换器电路装置315从对话管理器(例如图2中的对话管理器230)接收对话动作、(多个)槽和(多个)对应的值。对准电路装置300形成针对每个对话动作的对话动作槽值表示。如早前所描述的,对话动作槽值表示包括解词汇化对话+槽以及针对解词汇化槽的对应词汇化值。每个值可以包括一个或者多个词。例如,解词汇化对话+槽可以是“通知-区域”,其中“通知”是对话动作,并且“区域”是槽。针对解词汇化槽“区域”的对应值可以是“靠近该广场”。因此,对话动作槽值表示表示(通知-区域、靠近该广场)。按照这种方式,对准电路装置300使解词汇化对话+槽同与解词汇化槽相关联的值对准。

图4描绘了产生对话动作槽值表示的示例过程。对话动作槽值表示针对每个对话动作而被生成。在一个实施例中,每个对话动作槽值表示被表示为通过对两个向量mt405和et410进行级联而被形成的向量zt400。向量mt405表示解词汇化对话动作+槽,并且向量et410表示与解词汇化槽相关联的值。在一种实施方式中,向量mt405是对话动作和槽的独热向量。向量et410通过计算同与向量mt中的槽相关联的值对应的词中的所有词的一个或者多个词嵌入(we)420(例如we420a、we420b、we420c)的数学值或者表示(诸如平均值)(使用计算电路415)而被形成。例如,向量mt可以表示以下(对话动作+槽):“通知-区域”。如果与槽“区域”相关联的值是“靠近该广场”,则针对值中的词(例如“靠近”、“该”和“广场”)的词嵌入的数学表示(例如平均值)通过计算电路415而被生成,并且该数学表示(例如平均值)由向量et表示。

返回到图3,对话的每个话轮由在每个时间步长t被输入至第一处理电路装置305的一个或者多个这种对话动作槽值表示组成。在每个时间步长t,第一处理电路装置305处理(多个)对话动作槽值表示(例如所有向量zt)以产生对话动作槽值表示的第一表示。在一个实施例中,第一处理电路装置305包括神经网络,诸如单层双向长短期记忆(lstm)递归神经网络(rnn)。lstm实现可以由以下等式限定:

it=σ(wzizt+whiht-1)等式1

ft=σ(wzfzt+whfht-1)等式2

ot=σ(wzozt+whoht-1)等式3

gt=tanh(wzgzt+whght-1)等式4

ct=ft⊙ct-1+it⊙gt等式5

ht=ot⊙tanh(ct)等式6

其中it是在时间步长t的输入门,ft是在时间步长t的遗忘门,ot是在时间步长t的输出门,ct是在时间步长t的单元状态,ht是在时间步长t的隐藏状态,zt是在时间步长t的对lsmt的输入,并且⊙表示逐元素乘积。在该示例实施例中,第一表示通过跨前向和后向lstm的级联隐藏状态ht的时间步长中的所有时间步长来确定数学值(例如平均值)而被产生。

槽处理电路装置320在线325上从对话管理器接收对话动作、(多个)槽和(多个)对应的值,并且产生表示被期望存在于自然语言输出中的槽中的所有槽(例如槽向量mt)的第二表示。在一个实施例中,第二表示是具有由以下等式确定的初始值的向量d0:

其中m表示时间步长t的数目。初始和d0在与被期望位于自然语言输出中的槽相关联的所有独热向量mt上被表达。相应地,在该示例实施例中,d0是在被期望存在于自然语言输出中的槽中的所有槽上的二进制向量。

第二处理电路装置310接收并且处理第一表示和第二表示以产生一个或者多个解词汇化句子。在一个实施例中,第二处理电路装置310包括神经网络,诸如语义控制的长短期记忆(sc-lstm)递归神经网络(rnn)。sc-lstm实现可以由等式1至等式4和等式6以及以下附加的等式来限定:

rt=σ(wwrzt+αwhrht-1)等式8

dt=rt⊙dt-1等式9

ct=ft⊙ct-1+it⊙gt+tanh(wdcdt)等式10

其中dt是在时间步长t的第二表示(由等式7限定),rt是在时间步长t的读数门,并且α是标量。在sc-lstmrnn中,平均隐藏状态(例如前向和后向lstm的级联隐藏状态ht)被用来将第二处理电路装置310中的h0和c0初始化。初始值可以由以下等式确定:

h0=tanh(whxx+bhx)等式11

c0=tanh(wcxx+bcx)等式12

sc-lstmrnn中的第二表示的功能与存储器相似,因为第二表示记住了哪些槽仍然需要被生成。

由第二处理电路装置310产生的一个或者多个解词汇化句子由转换器电路装置315接收。转换器电路装置315通过用每个解词汇化槽的相关联的值替换每个解词汇化槽来将每个解词汇化句子转换成词汇化句子。值由转换器电路装置315在信号线325上接收。每个词汇化句子然后在线330上被输出。(多个)词汇化句子表示最终被提供给用户的自然语言输出。

图5是描绘了在图3中所示出的自然语言生成器的操作的过程流程图。如早前所描述的,第一处理电路装置305可以包括单层双向lstmrnn500。一个或者多个对话动作槽值表示505(例如对话动作槽值表示505a、505b、505c)被输入到lstmrnn500中。第一处理电路装置305在线510上学习或者产生对话动作槽值表示中的所有对话动作槽值表示(例如zt向量)的第一表示。在一种实施方式中,第一表示是跨前向和后向lstm的级联隐藏状态ht的时间步长中的所有时间步长的平均值。该平均值可以通过计算电路515被生成。

槽处理电路装置320接收对话动作、(多个)槽和(多个)对应的值,并且在线520上产生第二表示。该第二表示表示被期望存在于自然语言输出中的槽中的所有槽(例如所有槽向量mt)。在一个实施例中,第二表示是具有由等式7确定的初始值的向量d0。

第二处理电路装置310接收并且处理第一表示和第二表示以产生一个或者多个解词汇化句子。如早前所描述的,在一个实施例中,第二处理电路装置310包括sc-lstmrnn525,该sc-lstmrnn525可以包括一个或者多个层。在所图示的实施例中,sc-lstmrnn525包括两个sc-lstm层530a、530b和柔性最大值(“softmax”)层535。虽然被表示为不同的sc-lstm和柔性最大值(“softmax”)块,但是在一个实施例中,多个层530a、530b、535表示一个sc-lstmrnn525。

第一表示和第二表示都被sc-lstm层530a、530b接收。对于第一时间步长,特殊符号“bos”540被用来指示序列的开始。sc-lstm层530a、530b的隐藏状态被传递至柔性最大值(“softmax”)层535以在每个时间步长产生词(例如解词汇化槽)(例如在第一时间步长的词w1545)。然后,用于针对当前所生成的词的基础事实的词嵌入(we)550在下一时间步长被输入到sc-ls1mrnn525中。例如,针对bos540的词嵌入550a在第一时间步长被输入到sc-lstmrnn525中,而用于针对词w1547的基础事实的词嵌入550b在第二时间步长被输入。该过程重复,并且第二处理电路装置310继续输出词(例如w2等),直到预定义最大长度,或者直到第二处理电路装置310产生特殊符号“eos”555(例如序列的结束)。

在sc-lstmrnn525中,第二表示的功能与记住哪些槽尚未被生成的存储器相似。每次产生一个词(例如解词汇化槽),该槽被从第二表示中去除。例如,如果w1是槽,则与词w1相关联的槽在第一时间步长被从第二表示中去除。相应地,当eos555被生成时,第二表示的值在第二表示中的槽中的所有槽都已经由第二处理电路装置310输出时将为零(或者在第二表示为向量d0时为零的序列)。

转换器电路装置315从第二处理电路装置310接收一个或者多个解词汇化句子。转换器电路装置315通过用与每个解词汇化槽相关联的值替换解词汇化句子中的(多个)解词汇化槽来产生针对每个解词汇化句子的词汇化句子。(多个)词汇化句子然后在线330上被输出。如早前所描述的,(多个)词汇化句子表示最终被提供给用户的自然语言输出。

图6是图示了操作自然语言生成器的方法的流程图。最初,一个或者多个对话动作槽值对被生成,在框600和605中描绘了一个或者多个对话动作槽值对被生成的过程。如框600中所示出的,针对每个值获得一个或者多个词嵌入。然后,在框605处,每个解词汇化对话动作+槽被同与(多个)相关联的值(例如(多个)词嵌入的平均值)对准以产生一个或者多个对话动作槽值表示。

接下来,如在框610中所示出的,每个对话动作槽值表示由第一处理电路装置处理以产生第一表示。如早前所描述的,第一表示表示所接收的对话动作槽值表示中的所有对话动作槽值表示(例如zt向量)。在一个实施例中,第一表示通过跨前向和后向lstm的级联隐藏状态ht的时间步长中的所有时间步长确定平均值而被产生。

然后,在框615处,第二表示被接收。第二表示表示被期望存在于自然语言输出中的槽中的所有槽(例如槽向量mt)。如早前所描述的,在一个实施例中,第二表示最初是跨所有时间步长的所有槽向量m的和(参见等式7)。

然后,第一表示和第二表示被第二处理电路装置处理以产生一个或者多个解词汇化句子(框620)。此后,在框625处,一个或者多个词汇化句子通过用每个非词汇化槽的相关联的值来替换每个解词汇化槽而被产生。(多个)词汇化句子表示最终被提供给用户的自然语言输出。

图7是描绘了训练自然语言生成器的方法的流程图。最初,在框700处,第一处理电路装置和第二处理电路装置中的参数被初始化。任何合适的方法或者技术都可以被用来初始化参数。在一些实施例中,第二处理电路装置(例如第二处理电路装置310)的一个或者多个参数可以使用迁移学习过程来初始化。当sds在不具有(多个)可用的大型经注释的数据集的域中操作时,迁移学习可以提高sds的性能。

利用迁移学习,参数从预训练句子自动编码器模型被初始化,对有关主题和/或与域有关的句子训练该预训练句子自动编码器模型。自动编码器模型被训练以学习输入句子的表示,并且然后对该表示进行解码以生成原始句子。在一种实施方式中,自动编码器模型包括与本文所描述的第一处理电路装置和第二处理电路装置(例如第一处理电路装置305和第二处理电路装置310)相似的第一处理电路装置和第二处理电路装置。然而,自动编码器模型的第一处理电路装置仅接收针对输入句子的词嵌入。附加地,自动编码器模型的第二处理电路装置使用lstm单元,而不是sc-lstm单元。来自自动编码器模型中的第二处理电路装置的内部lstm到lstm权重被用作本文所描述的第二处理电路装置(例如第二处理电路装置310)中的内部sc-lstm到sc-lstm连接的对应权重的初始值(whi、whf、who和whg)。在第二处理电路装置310中的内部sc-lstm到sc-lstm连接的所转移的权重然后在训练期间被进行微调。在一些实施方式中,所转移的权重从不同的任务(例如输出原始输入句子)而不是从不同的域上的相同任务(例如针对输入对话动作输出sds的自然语言输出)被转移。

在参数被初始化之后,一个或者多个已知对话动作、槽和值被提供,被输入到第一处理电路装置和第二处理电路装置中并且被第一处理电路装置和第二处理电路装置处理以产生预测的解词汇化句子(框705和框710)。此后,在框715处,预测的句子上的损失函数被确定。在一个实施例中,损失值由以下函数确定:

其中yt是基础事实词分布,pt是预测的词分布,t是在第一处理电路装置中的时间步长的数目,并且η和ξ是被设置为给定值的标量。在一个实施例中,针对标量η和ξ的给定值分别为0.0001和100。项||dt||推动nlg生成应该被生成的所有槽,使得在最后的时间步长,不存在剩余的槽。因为在每个时间步长,第二处理电路装置的输出是一个解词汇化槽或者词,所有最后项支持第二处理电路装置不一次丢弃第二表示中多于一个的槽(例如向量d0)。

接下来,如在框720中所示出的,nlg的一个或者多个参数基于所确定的损失函数被调整。在一个实施例中,自适应矩估计(adam)优化器算法被用来确定每个经修正的参数。框710、715和720的操作重复,直到损失函数收敛于基本稳定的输出(框725)。当损失函数收敛于基本稳定的输出时,第一处理电路装置和第二处理电路装置中的神经网络被认为是经过训练的。

如应该了解的,图5至图7出于说明本方法和系统的目的而被描述,并且不旨在将本公开限于特定步骤顺序或者硬件或软件组件的特定组合。例如,在一些实施例中,可以使用除了lstmrnn和/或sc-lstmrnn之外的神经网络。附加地或者备选地,lstmrnn和/或sc-lstmrnn可以分别包括一个或者多个层。

图8是图示了电子设备800的物理组件(例如硬件)的框图,利用该电子设备800,可以实践本发明的各个方面。下面所描述的组件可以适用于上面所描述的计算设备,包括图1中的客户端计算设备110和/或服务器计算设备125。

在基本配置中,电子设备800可以包括至少一个处理单元805和系统存储器810。取决于电子设备的配置和类型,系统存储器810可以包括但不限于:易失性存储装置(例如随机存取存储器)、非易失性存储装置(例如只读存储器)、闪速存储器或者这种存储器的任何组合。系统存储器810可以包括若干程序模块和数据文件,诸如操作系统815、适用于对所接收的输入进行解析,确定所接收的输入的技术主题,确定与输入相关联的动作等的一个或者多个程序模块820和sds程序模块825。当在处理单元805上执行时,sds程序模块825可以执行过程和/或使得过程被执行,包括但不限于:本文所描述的各个方面。

例如,操作系统815可以适合于控制电子设备800的操作。此外,本公开的各个实施例可以结合图形库、其它操作系统或者任何其它应用程序来实践,并且不限于任何特定应用或者系统。在图8中通过虚线830内的那些组件图示了该基本配置。

电子设备800可以具有附加的特征或者功能。例如,电子设备800还可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如例如为磁盘、光盘或者磁带。在图8中通过可移除存储设备835和不可移除存储设备840图示了这种附加的存储装置。

电子设备800还可以具有一个或多个输入设备845,诸如键盘、触控板、鼠标、笔、声音或者语音输入设备、触摸、力和/或滑动输入设备等。(多个)输出设备850(诸如显示器、扬声器、打印机等)也可以被包括进来。上面所提到的设备是示例,并且可以使用其它设备。电子设备800可以包括允许与其它电子设备860的通信的一个或者多个通信设备855。合适的通信设备855的示例包括但不限于:射频(rf)发送器、接收器和/或收发器电路装置;通用串行总线(usb)、并行和/或串行端口。

如本文所使用的术语计算机可读介质可以包括计算机存储介质。计算机可读存储介质可以包括按照用于存储信息的任何方法或者技术来实施的易失性和非易失性、可移除和不可移除介质,诸如计算机可读指令、数据结构或者程序模块。

系统存储器810、可移除存储设备835和不可移除存储设备840都是计算机存储介质的示例(例如存储器存储装置或者存储设备)。计算机存储介质可以包括:ram、rom、电可擦除只读存储器(eeprom)、闪速存储器或者其它存储器技术、cd-rom、数字通用盘(dvd)或者其它光存储装置、磁带盒、磁带、磁盘存储装置或者其它磁存储设备、或者可以被用来存储信息并且可以由电子设备800访问的任何其它制品。任何这种计算机存储介质可以是电子设备800的一部分。计算机存储介质不包括载波或者其它经传播的或者已调制的数据信号。

通信介质可以通过计算机可读指令、数据结构、程序模块或者已调制的数据信号中的其它数据(诸如载波或者其它传送机构)来实施,并且包括任何信息传递介质。术语“已调制的数据信号”可以描述具有按照对信号中的信息进行编码的方式来设置或者改变的一个或者多个特性的信号。通过示例而非限制,通信介质可以包括有线介质(诸如有线网络或者直接有线连接)和无线介质(诸如声学、射频(rf)、红外和其它无线介质)。

此外,本公开的各个实施例可以被实践在包括分立电子元件的电路、包含逻辑门的封装或者集成电子芯片、利用微处理器的电路中或者包含电子元件或者微处理器的单个芯片上。例如,本公开的各个实施例可以经由片上系统(soc)来实践,其中在图8中所图示的组件中的每一个或者许多组件可以被集成到单个集成电路上。这种soc设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和都被集成(或者“烧制”)到芯片衬底上作为单个集成电路的各种应用功能。

当经由soc进行操作时,本文关于客户端切换协议的能力所描述的功能可以经由在单个集成电路(芯片)上与电子设备800的其它组件一起集成的专用逻辑而被操作。本公开的各个实施例还可以使用能够执行逻辑运算(诸如例如为“与”、“或”和“非”)的其它技术(包括但不限于:机械技术、光学技术、流体技术和量子技术)来实践。另外,本公开的各个实施例可以被实践在通用计算机内或者任何其它电路或者系统中。

图9是图示了可以实践本公开的各个方面的分布式系统的框图。系统900允许用户通过通用计算设备905(例如台式计算机)、平板计算设备910和/或移动计算设备915来提交语言输入(例如口头地和/或书面的)。通用计算设备905、平板计算设备910和移动计算设备915可以分别包括被示出为与图1中的客户端计算设备110相关联的组件或者被连接至这些组件。

通用计算设备905、平板计算设备910和移动计算设备915分别被配置为访问一个或者多个网络(由网络920表示)以与被存储在一个或者多个存储设备(由存储设备930表示)中并且在一个或者多个服务器计算设备(由服务器计算设备935表示)上被执行的sds925交互。

在一些方面中,服务器计算设备935可以访问和/或接收从其它源(诸如目录服务940、网络门户945、邮箱服务950、即时消息传送服务955和/或社交网络服务960)传送的各种类型的文档和信息。在一些实例中,这些源可以提供稳健的报告、分析、数据编译和/或存储服务等,而其它服务可以提供搜索引擎或者对数据和信息、图像、视频、文档处理等的其它访问权限。

如应该了解的,图9出于说明本方法和系统的目的而被描述,并且不旨在将本公开限于特定步骤顺序或者硬件或软件组件的特定组合。

例如,上面参照根据本公开的各个方面的方法、系统和计算机程序产品的框图和/或操作图示描述了本公开的各个方面。在框中所记录的功能/动作可以不按照如在任何流程图中所示出的顺序发生。例如,被连续示出的两个框实际上可以基本上同时被执行,或者这些框有时可以按照相反的顺序被执行,这取决于所涉及的功能/动作。

对本申请中所提供的一个或者多个方面的描述和说明不旨在以任何方式限制或者约束所要求保护的本公开的范围。本申请中所提供的各个方面、示例和细节被认为足以传达占有并且使其他人能够进行和使用所要求保护的公开内容的最佳模式。所要求保护的公开内容不应该被解释为限于本申请中所提供的任何方面、示例或者细节。不管是被组合地还是单独地示出和描述,各种特征(结构特征和方法特征两者)都旨在被选择性地包括或者被省略以产生具有特定特征集合的实施例。已经提供了对本申请的描述和说明,本领域的技术人员可以设想落入本申请中所实施的总体发明构思的更广泛的方面的精神内的变型、修改和替换方面,这些更广泛的方面未脱离所要求保护的公开内容的更广泛的范围。

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