语句处理方法、装置和系统与流程

文档序号:20030080发布日期:2020-02-28 10:16阅读:161来源:国知局
本公开涉及电子
技术领域
:,更具体地,涉及一种语句处理方法、装置和系统。
背景技术
::随着电子技术的发展,人机对话成为语音识别和自然语言处理领域中的一个重要的研究和应用热点,而随着人机对话系统的发展和产业应用逐步深入,任务驱动型的多轮对话系统得到了产业界的更多关注,也对相关研发提出了更多的挑战。在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:现有的任务驱动型的对话系统主要有模块型和端到端型,其中模块型对话系统存在以下局限:用户的反馈难以传给模型,以及各模块间相互依赖,适应新环境时需要很多人力来进行修改;端到端型对话系统需要监督学习大量数据,且需要依赖置信追踪器(belieftracker)使用在上轮对话中出现的语句作为中间状态块(slot)的值,从而需要消耗很多的参数复杂度。技术实现要素:有鉴于此,本公开提供了一种能够减少对话系统复杂度的语句处理方法、装置和系统。本公开的一个方面提供了一种语句处理方法,包括:获取待处理向量,该待处理向量包括输入语句的向量表示;将待处理向量输入至第一循环神经网络,生成一个或多个关键词;确定与一个或多个关键词对应的答复内容;以及基于所述一个或多个关键词及答复内容,生成输入语句的答复语句。根据本公开的实施例,获取待处理向量包括:获取当前的输入语句,前一次生成的答复语句及前一次生成的一个或多个关键词;将当前的输入语句,前一次生成的答复语句及前一次生成的一个或多个关键词中的词转化为词向量;以及将词向量有序输入至第二循环神经网络,获取第二循环神经网络的隐藏层状态的向量表示以作为待处理向量,其中,在不存在前一次生成的答复语句的情况下,前一次生成的答复语句及前一次生成的一个或多个关键词为默认值。根据本公开的实施例,将待处理向量输入至第一循环神经网络,生成一个或多个关键词包括循环执行的以下操作,直至生成完整的一个或多个关键词:以第一循环神经网络的输入更新第一循环神经网络的隐藏层状态,得到当前的多个候选关键词;以及根据当前的多个候选关键词的输出概率,确定当前的关键词,每个候选关键词的输出概率包括:该候选关键词由第一循环神经网络生成的概率与该候选关键词自所述输入语句复制得到的概率之和,其中,在上述循环中,以待处理向量作为第一循环神经网络的初始输入,以前一次循环中得到的关键词的向量表示与隐藏层状态的向量表示作为后一次循环中第一循环神经网络的输入。根据本公开的实施例,基于一个或多个关键词及答复内容,生成输入语句的答复语句包括:将一个或多个关键词的向量表示、第一循环神经网络的隐藏层状态的向量表示及答复类型的向量表示输入第三循环神经网络,生成一个或多个答复词;以及根据一个或多个答复词及候选答复值,生成所述输入语句的答复语句,其中,答复内容包括答复类型的向量表示及候选答复值,答复类型的向量表示与候选答复值的数量相关。根据本公开的实施例,生成一个或多个答复词包括循环执行的以下操作,直至生成完整的一个或多个答复词:以第三循环神经网络的输入更新第三循环神经网络的隐藏层状态,得到当前的多个候选答复词;以及根据当前的多个候选答复词的输出概率,确定当前的答复词,每个候选答复词的输出概率包括:该候选答复词由第三循环神经网络生成的概率与该候选答复词自输入语句复制得到的概率之和,其中,在上述循环中,以一个或多个关键词的向量表示、第一循环神经网络最终的隐藏层状态的向量表示及答复类型的向量表示作为第三循环神经网络的初始输入,以前一次循环中得到的答复词的向量表示与隐藏层状态的向量表示作为后一次循环中第三循环神经网络的输入。本公开的另一个方面提供了一种语句处理装置,包括待处理向量获取模块、关键词生成模块、答复内容确定模块和答复语句生成模块,其中,待处理向量获取模块用于获取待处理向量,该待处理向量包括输入语句的向量表示;关键词生成模块用于将待处理向量输入至第一循环神经网络,生成一个或多个关键词;答复内容确定模块用于确定与所述一个或多个关键词对应的答复内容;答复语句生成模块用于基于所述一个或多个关键词及答复内容,生成输入语句的答复语句。根据本公开的实施例,待处理向量获取模块包括获取子模块、词向量生成子模块和待处理向量确定子模块,获取子模块用于获取当前的输入语句,前一次生成的答复语句及前一次生成的一个或多个关键词;词向量生成子模块用于将当前的输入语句,前一次生成的答复语句及前一次生成的一个或多个关键词中的词转化为词向量;待处理向量确定子模块用于将词向量有序输入至第二循环神经网络,获取第二循环神经网络的隐藏层状态的向量表示以作为待处理向量,其中,在不存在前一次生成的答复语句的情况下,前一次生成的答复语句及前一次生成的一个或多个关键词为默认值。根据本公开的实施例,上述关键词生成模块用于循环执行以下操作,直至生成完整的所述一个或多个关键词:以第一循环神经网络的输入更新第一循环神经网络的隐藏层状态,得到当前的多个候选关键词;以及根据当前的多个候选关键词的输出概率,确定当前的关键词,每个候选关键词的输出概率包括:该候选关键词由第一循环神经网络生成的概率与该候选关键词自输入语句复制得到的概率之和,其中,在上述循环中,以待处理向量作为第一循环神经网络的初始输入,以前一次循环中得到的关键词的向量表示与隐藏层状态的向量表示作为后一次循环中第一循环神经网络的输入。根据本公开的实施例,上述答复语句生成模块包括答复词生成子模块和答复语句确定子模块,答复词生成子模块用于将一个或多个关键词的向量表示、第一循环神经网络最终的隐藏层状态的向量表示及答复类型的向量表示输入第三循环神经网络,生成一个或多个答复词;答复语句确定子模块用于根据一个或多个答复词及候选答复值,生成输入语句的答复语句,其中,答复内容包括答复类型的向量表示及候选答复值,答复类型的向量表示与候选答复值的数量相关。根据本公开的实施例,上述答复词生成子模块用于循环执行以下操作,直至生成完整的所述一个或多个答复词:以第三循环神经网络的输入更新第三循环神经网络的隐藏层状态,得到当前的多个候选答复词;以及根据当前的多个候选答复词的输出概率,确定当前的答复词,每个候选答复词的输出概率包括:该候选答复词由第三循环神经网络生成的概率与该候选答复词自输入语句复制得到的概率之和,其中,在上述循环中,以一个或多个关键词的向量表示、第一循环神经网络最终的隐藏层状态的向量表示及答复类型的向量表示作为第三循环神经网络的初始输入,以前一次循环中得到的答复词的向量表示与隐藏层状态的向量表示作为后一次循环中第三循环神经网络的输入。本公开的另一个方面提供了一种语句处理系统,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的确定待放置商品的方法。本公开的另一个方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的语句处理方法。本共公开的另一个方面提供了一种计算机程序,该计算机程序包括计算机可执行指令,该指令在被执行时用于实现如上所述的语句处理方法。根据本公开的实施例,可以至少部分地避免现有技术中,采用庞大的置信追踪器记录对话中关于任务完成的信息导致的对话系统复杂的问题,并因此可以实现用关键字来记录原本由置信追踪器记录的信息,达到减小对话系统的模型复杂度,提高语句处理效率的效果。附图说明通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:图1示意性示出了根据本公开实施例的语句处理方法、装置和系统的应用场景图;图2示意性示出了根据本公开实施例的语句处理方法的流程图;图3示意性示出了根据本公开实施例的获取待处理向量的流程图;图4示意性示出了根据本公开实施例的生成一个或多个关键词的流程图;图5a~图5b示意性示出了根据本公开实施例的生成答复语句的流程图;图6示意性示出了根据本公开实施例的语句处理方法的原理示意图;图7示意性示出了根据本公开实施例的语句处理装置的结构框图;图8示意性示出了根据本公开实施例的待处理向量获取模块的结构框图;图9示意性示出了根据本公开实施例的答复语句生成模块的结构示意图;图10示意性示出了根据本公开实施例的语句处理系统的方框图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“a或b”应当被理解为包括“a”或“b”、或“a和b”的可能性。本公开的实施例提供了一种语句处理方法、装置和系统。该方法包括:获取待处理向量,该待处理向量包括输入语句的向量表示;将待处理向量输入至第一循环神经网络,生成一个或多个关键词;确定与一个或多个关键词对应的答复内容;以及基于一个或多个关键词及答复内容,生成输入语句的答复语句。图1示意性示出了根据本公开实施例的语句处理方法、装置和系统的应用场景100。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。如图1所示,根据该实施例的应用场景100包括用户110及终端设备121、122、123,用户110可以与终端设备121、122、123之间进行人机对话,以通过该对话使得终端设备121、122、123完成与用户意图相对应的操作。具体地,用户110通过与终端设备121、122、123的对话,例如可使终端设备121、122、123帮助用户完成搜索用户找寻的商品、预订酒店餐厅、预订机票等实际具体的任务。终端设备121、122、123可以安装有各种客户端应用,例如语音识别类应用、语音助手类应用、购物类应用、搜索类应用、社交平台软件等(仅为示例),以对用户的输入语音进行处理并生成答复语句,实现人机对话,并根据输入语音执行与用户意图相对应的操作。终端设备121、122、123例如可以是具有语音播放功能的电子设备,包括但不限于台式计算机、膝上型便携计算机、平板电脑、智能手机、便携式多媒体播放器、相机等各种电子设备;或者例如还可以包括各种智能家庭设备,例如电视、音频设备、冰箱、空调、吸尘器等;或者例如还可以包括各种医疗设备(例如便携式医疗测量设备)、导航设备、车辆信息娱乐设备、船用电子设备、工业或家用机器人、银行的自动柜员机等。本公开实施例的电子设备121、122、123通过对用户的输入语句的识别及处理,例如还可以输出与该输入语音相对应的答复语句,以向用户请求完成任务的进一步的要求,或向用户提供需求信息,例如,对于用户的输入语句“请帮我预定飞往广州的机票”,电子设备生成的答复语句为“请问您想预定哪天的?”,以向用户请求完成预定机票任务的进一步要求,以使得最终预定的机票符合用户要求。可以理解的是,上述输入语句与答复语句仅作为示例以利于理解本公开,本公开对此不作限定。需要说明的是,本公开实施例所提供的语句处理方法一般可以由终端设备121、122、123执行。相应地,本公开实施例所提供的语句处理装置和系统一般可以设置于终端设备121、122、123中。可以理解的是,图1中的终端设备的类型仅仅是示意性的。根据实现需要,可以具有任意类型的能够与用户进行人机对话的终端设备。图2示意性示出了根据本公开实施例的语句处理方法的流程图。如图2所示,对于人机对话的多轮对话中单轮对话的输入语句,该语句处理方法可以包括操作s210~操作s240,该语句处理方法例如可以由参考图1中的终端设备121、122、123执行。其中,在操作s210,获取待处理向量,待处理向量包括输入语句的向量表示;在操作s220,将待处理向量输入至第一循环神经网络,生成一个或多个关键词;在操作s230,确定与一个或多个关键词对应的答复内容;在操作s240,基于一个或多个关键词及答复内容,生成输入语句的答复语句。根据本公开的实施例,操作s210中的待处理向量例如可以基于输入语句编码得到。该输入语句例如可以由终端设备121、122、123的音频接收器接收的用户的语音转化得到,编码的过程例如可以是将输入语句中各个词汇根据词汇索引表对应的数值依次排列形成数值向量。根据本公开的实施例,操作s210中的待处理向量例如还可以通过以下方式得到:先将输入语句转化为词向量,再将词向量依次输入至循环神经网络,以更新循环神经网络的隐藏层状态,最后将循环神经网络最终的隐藏层状态的向量表示作为待处理向量。根据本公开的实施例,将输入语句转化为词向量例如可以是:识别输入语句,得到组成输入语句的各个词,将该各个词按输入语句中出现的顺序依次排列形成词向量。图3示意性示出了根据本公开实施例的获取待处理向量的流程图。根据本公开的实施例,操作s210中的待处理向量例如还可以通过如图3所示的操作s211~操作s213得到。在操作s211,获取当前的输入语句、前一次生成的答复语句及前一次生成的一个或多个关键词。根据本公开的实施例,当前的输入语句例如可以为当前轮对话中的输入语句,相应的,前一次生成的答复语句为前一轮对话中通过操作s240得到的答复语句,前一次生成的一个或多个关键词为前一轮对话中通过操作s220得到的一个或多个关键词。根据本公开的实施例,在当前轮对话为首轮对话的情况下,不存在前一次的答复语句,则该操作s211中的前一次生成的答复语句及前一次生成的一个或多个关键词采用默认值,该默认值例如可以为空值。在操作s212,将当前的输入语句、前一次生成的答复语句及前一次生成的一个或多个关键词中的词转化为词向量。根据本公开的实施例,该操作s212例如可以采用上述的将输入语句转化为词向量的方法,转化当前的输入语句、前一次生成的答复语句及前一次生成的一个或多个关键词中的词得到词向量。根据本公开的实施例,该操作s212例如可以是:将当前的输入语句转化得到一个词向量,将前一次生成的答复语句转化得到一个词向量,以及将前一次生成的一个或多个关键词转化得到一个词向量,最后将该三个词向量拼接得到最终的词向量。在操作s213,将词向量有序输入至第二循环神经网络,获取该第二循环神经网络的隐藏层状态的向量表示以作为待处理向量。根据本公开的实施例,该操作s213具体可以为:第二循环神经网络按照词向量中各个词出现的顺序进行编码,前一个词的隐藏层信息反馈给当前词的隐藏层信息,直到遇到输入词向量的结束符<eos>时,将该第二循环神经网络最后一次循环中隐藏层状态的向量表示作为待处理向量。上述参考图3中获取待处理向量的方法,由于将当前输入语句与前一次生成的答复语句及前一次生成的一个或多个关键词共同编码,因此得到的待处理向量包含有历史对话的信息,则根据该待处理向量解码得到答复语句时可以考虑到历史对话,使得解码得到的答复语句与历史对话具有连贯性,答复内容更贴合于实际需求。根据本公开的实施例,操作s220中的一个或多个关键词是语句处理方法中关于任务完成的信息,可以作为从知识库中获取答复内容的依据。根据本公开的实施例,该一个或多个关键词例如可以包括有信息类关键词(informableslots)和请求类关键词(requestableslots)。信息类关键词是用于自知识库中进行查询的查询条件,请求类关键词则是一些可以被询问的词。例如,表示地名(如广东)、类别(美食、美景)等在知识库中对应有多个结果的关键词为信息类关键词,而表示地址、电话等在信息类关键词的限定下在知识库中对应有唯一结果的关键词为请求类关键词。根据本公开的实施例,该一个或多个关键词例如可以包括有当前输入语句中的词,还可以包括有多轮对话中当前轮对话之前任一轮对话中的词,当前轮对话中语句处理得到的关键词可以与前一轮对话中语句处理得到的关键词相同或不同。根据本公开的实施例,操作s220得到的一个或多个关键词中的信息类关键词例如可以用<inf><\inf>标识,请求类关键词例如可以用<req><\req>标识,且相邻两个关键词之间用分号隔开,从而以利于参考图1中的终端设备查找调用。图4示意性示出了根据本公开实施例的生成一个或多个关键词的流程图。根据本公开的实施例,生成一个或多个关键词的操作s220具体可以包括循环执行的操作s221~操作s222,直至生成完整的关键词。在操作s221,以第一循环神经网络的输入更新第一循环神经网络的隐藏层状态,得到当前的多个候选关键词;在操作s222,根据当前的多个候选关键词的输出概率,确定当前的关键词。根据本公开的实施例,在上述的第一次循环中,第一循环神经网络的输入为操作s210得到的待处理向量,即待处理向量为初始输入,以更新该第一循环神经网络的隐藏层状态,输出为一个关键词;后续每次循环中,以前一次循环中得到的关键词的向量表示及更新后的隐藏层状态的向量表示作为第一循环神经网络的输入,以再次更新第一循环神经网络的隐藏层状态,并输出一个关键词,依次循环直至输出结束符<eos>为止,完成所述一个或多个关键词的生成。根据本公开的实施例,上述每个候选关键词的输出概率包括:该候选关键词由第一循环神经网络生成的概率与该候选关键词自输入语句复制得到的概率之和,其中,上述候选关键词由第一循环神经网络生成的概率例如可以是使用与通用编码器-斛码器相同的评分函数得到该候选关键词的概率,候选关键词自输入语句复制得到的概率例如可以是:使用待处理向量中表示的隐藏状态从输入语句的词向量中选取得到该候选关键词的概率。根据本公开的实施例,上述以待处理向量为初始输入,通过第一循环神经网络生成一个或多个关键词的操作可以看作是一次解码过程,即对待处理向量进行解码得到该一个或多个关键词。根据本公开的实施例,上述循环执行的操作s221~操作s222例如还可以是通过拷贝机制神经网络执行,该拷贝机制神经网络在生成关键词时更加倾向于生成输入语句中的词。则基于该拷贝机制神经网络得到的关键词得到的答复语句,能够避免传统方法中生成结果和输入有效信息无法融合的问题,并因此可以有效地提升答复语句的生成效果。考虑到对于一些命名实体(如人名等),很难通过神经网络准确的生成输入语句提到的词,因此上述实施例中确定关键词时同时考虑了候选关键词自输入语句复制得到的概率,则关键词可以是直接从输入语句中复制得到的,从而可以在一定程度上解决现有的对话系统中不能处理字典不完整(out-of-vocabulary)问题的缺陷。根据本公开的实施例,上述操作s230具体可以是根据一个或多个关键词,自知识库中查询得到与该一个或多个关键词对应的答复内容,则该一个或多个关键词可以是查询知识库的索引。根据本公开的实施例,该答复内容例如可以包括答复类型的向量表示及候选答复值,其中答复类型的向量表示与候选答复值的数量相关。根据本公开的实施例,查询得到的答复内容具体可以包括两部分,一部分是在知识库中查询到的与关键词对应的候选答复值,另一部分是用于表示查询得到的候选答复值数量的表示向量,该向量例如可以是三维向量,用于表示三类查询结果(每一维表示知识库查询的一种情况),例如该三维向量的第一个值用于表示该查询到的候选答复值为一条(此处的一条是指与关键词对应的一组内容),第二个值用于表示该查询到的候选答复值为多条,第三个值用于表示未查询到对应的候选答复值,例如若该三维向量为(0,0,1),则表示根据关键词未从知识库中查询到候选答复值。根据本公开的实施例,根据不同的查询结果,可对应有不同的答复类型,例如,对于上述查询到的候选答复值为一条的情况,可以具有第一答复类型,用于向用户提供查询到的候选答复值;对于上述查询到的候选答复值为多条的情况,可以具有第二答复类型,用于使用户提供进一步的查询条件;对于上述未查询到候选答复值的情况,可以具有第三答复类型,以向用户表示未找到对应信息。因此,上述用于表示查询得到的候选答复值数量的表示向量与答复类型一一对应,因此,该表示向量相当于答复类型的向量表示。图5a~图5b示意性示出了根据本公开实施例的生成答复语句的流程图。根据本公开的实施例,上述操作s240具体可以是一次解码的过程,例如通过第三循环神经网络对其输入进行解码得到输入语句的答复语句。根据本公开的实施例,答复语句例如还可以通过参考图5a描述的操作s241~操作s242生成。在操作s241,将一个或多个关键词的向量表示、第一循环神经网络的隐藏层状态的向量表示及答复类型的向量表示输入至第三循环神经网络,生成一个或多个答复词。根据本公开的实施例,在上述操作s241之前,例如可以先将答复类型的向量表示与第一循环神经网络的隐藏层状态的向量表示拼接为一个向量,则以拼接后的向量作为第三循环神经网络的输入。根据本公开的实施例,该操作s241具体可以是循环执行参考图5b的操作s2411~操作s2412,在操作s2411,以第三循环神经网络的输入更新第三循环神经网络的隐藏层状态,得到当前的多个候选答复词;在操作s2412,根据当前的多个候选答复词的输出概率,确定当前的答复词。根据本公开的实施例,在上述循环中,以一个或多个关键词的向量表示、第一循环神经网络最终的隐藏层状态的向量表示及答复类型的向量表示作为第三循环神经网络的初始输入,即作为第一次循环中第三循环神经网络的输入,来更新该第三循环神经网络的隐藏层状态,输出一个答复词;后续每次循环中,以前一次循环中得到的答复词的向量表示及更新后的隐藏层状态的向量表示作为第三循环神经网络的输入,以再次更新第三循环神经网络的隐藏层状态,并输出一个答复词,依次循环直至输出结束符<eos>为止,完成该一个或多个答复词的生成。根据本公开的实施例,上述每个候选答复词的输出概率包括:该候选答复词由第三循环神经网络生成的概率与该候选答复词自输入语句复制得到的概率之和,其中,上述候选答复词由第三循环神经网络生成的概率例如可以是使用与通用编码器-解码器相同的评分函数得到该候选答复词的概率,候选答复词自输入语句复制得到的概率具体可以是:通过第一循环神经网络最终的隐藏层状态的向量表示从输入语句的词向量中选取得到该候选答复词概率,和/或通过关键词的向量表示从关键词中复制得到该候选答复词的概率。根据本公开的实施例,上述操作s241生成一个或多个答复词的过程为一次解码的过程,通过对输入向量进行解码得到该一个或多个答复词。根据本公开的实施例,由于该第三循环神经网络的输入包括答复类型的向量表示,则对于不同的答复类型的向量表示,会得到不同的答复词,以根据该不同的答复词,生成不同的答复语句。根据本公开的实施例,上述循环执行的操作s2411~操作s2412例如还可以是通过拷贝机制神经网络执行,神经网络在生成答复词更加倾向于生成输入语句中的词。则基于该拷贝机制神经网络得到的答复词得到的答复语句,能够避免传统方法中生成结果和输入有效信息无法融合的问题,并因此可以有效地提升答复语句的生成效果。考虑到对于一些命名实体,像人名等,很难通过神经网络准确的生成输入提到的单词,因此上述实施例中确定关键词时同时考虑了候选答复词自输入语句和/或关键词复制得到的概率,则答复词可以是直接从输入语句中复制得到的,从而可以在一定程度上解决现有的对话系统中不能处理字典不完整(out-of-vocabulary)的问题的缺陷。在操作s242,根据所述一个或多个答复词及候选答复值,生成输入语句的答复语句。根据本公开的实施例,上述生成答复语句例如可以由操作s241生成的答复词与自知识库查询得到的候选答复值组合形成。根据本公开的实施例,上述在根据候选答复值生成答复语句时,在候选答复值的数量不同时,操作s241得到的答复词不同,则相应地,得到的答复语句也不同,具体如下:对于候选答复值的数量为零的情况下,该得到的答复词例如可以是“不知道”或“对不起”之类的默认答复词,相应得到的答复语句为“我不知道”或“未找到相关信息”等;对于候选答复值的数量为多条的情况下,该得到的答复词可以是与关键词相关的参数例如“价格”、“颜色”、“类型”等,生成的答复语句例如可以为“您想要商品的价格范围是多少?”或“您想要哪种颜色”等,以向用户请求进一步的查询条件,此中情况生成的答复语句一般不包括候选答复值;则,根据本公开的实施例,例如该第三循环神经网络的输入例如还包括查询得到的候选答复值,该答复词的生成还可以依据该多个候选答复值生成,以使得通过最终的答复语句请求得到的查询条件不会与之前的查询条件重复,以提高完成用户意图的效率;对于候选答复值的数量为一条的情况下,该得到的答复词可以是候选答复词的限定词,例如“地址”、“电话”等,则生成的答复语句可以是答复词与候选答复值的串联语句,例如为“地址为****”等。根据本公开的实施例,由于在生成答复语句时,第三循环神经网络的输入包括答复类型的向量表示,因此,答复语句是根据该答复类型生成的,因此可以在一定程度上提高对话效率,使得最终完成的任务符合用户的意图。图6示意性示出了根据本公开实施例的语句处理方法的原理示意图。根据本公开的实施例,上述参考图2~图5b描述的方法例如可以采用序列到序列模型的神经网络架构实现,以输入语句作为该神经网络架构的输入,经由一次编码和两次解码,输出最终的答复语句。具体地,对于多轮对话(如参考图6中左侧图所示)中的每一轮,该神经网络架构先通过第二循环神经网络编码当前的输入语句(用u3表示,例如为“tellmetheaddressandthephonenumberplease”)、上一轮对话中的关键词(用b2表示,例如为“<inf>italian;cheap</inf><req></req>”)及上一轮对话中的答复语句(用r2表示,例如为“name_slotisacheaprestaurantservingwesternfood”)得到操作s210中的待处理向量;然后通过第一循环神经网络进行第一次解码得到操作s220的一个或多个关键词(用b3表示,例如为“<inf>italian;cheap</inf><req>address;phone</req>”),然后根据该得到的关键词查询知识库(knowledgebase),得到操作s230中的答复内容,最后通过第三循环神经网络,根据该得到的答复内容、第一次解码得到的一个或多个关键词及实施第一次解码的第一循环神经网络的最终的隐藏层状态,第二次解码得到输入语句的答复语句(用r3表示,例如为“theaddressisaddress_slotandthephonenumberisphone_slot”,其中,“address_slot”及“phone_slot”自查询得到的答复内容得到)。根据本公开的实施例,本公开的语句处理方法例如可以是针对任务导向型对话系统得到的输入语句进行的处理。综上可知,本公开实施例的语句处理方法,仅通过第一循环神经网络即可得到确定答复内容的关键词,相较于现有技术中需要采用置信追踪器(belieftracker)中的多个分类器分别对每个信息域和每个请求域建立模型的方案,能够有效地减小模型复杂度,并因此提高语句的处理效率。图7示意性示出了根据本公开实施例的语句处理装置的结构框图。如图7所示,该语句处理装置700包括待处理向量获取模块710、关键词生成模块720、答复内容确定模块730以及答复语句生成模块740。其中,待处理向量获取模块710用于获取待处理向量,该待处理向量包括输入语句的向量表示,根据本公开的实施例,该待处理向量获取模块710例如可以执行参考图2描述的操作s210,在此不再赘述。其中,关键词生成模块720用于将待处理向量输入至第一循环神经网络,生成一个或多个关键词,根据本公开的实施例,该关键词生成模块720例如可以执行参考图2描述的操作s220,在此不再赘述。根据本公开的实施例,关键词生成模块720例如可以用于循环执行以下操作,直至生成完整的一个或多个关键词:以第一循环神经网络的输入更新第一循环神经网络的隐藏层状态,得到当前的多个候选关键词;以及根据当前的多个候选关键词的输出概率,确定当前的关键词,每个候选关键词的输出概率包括:该候选关键词由第一循环神经网络生成的概率与该候选关键词自输入语句复制得到的概率之和,在上述循环中,以待处理向量作为第一循环神经网络的初始输入,以前一次循环中得到的关键词的向量表示与隐藏层状态的向量表示作为后一次循环中第一循环神经网络的输入。根据本公开的实施例,该关键词生成模块720例如可以用于循环地执行参考图4描述的操作s221~操作s222,在此不再赘述。其中,答复内容确定模块730用于确定与一个或多个关键词对应的答复内容,根据本公开的实施例,该答复内容确定模块730例如可以执行参考图2描述的操作s230,在此不再赘述。其中,答复语句生成模块740用于基于一个或多个关键词及答复内容,生成输入语句的答复语句,根据本公开的实施例,该答复语句生成模块740例如可以执行参考图2描述的操作s240,在此不再赘述。图8示意性示出了根据本公开实施例的待处理向量获取模块的结构框图。如图8所示,上述待处理向量获取模块710例如可包括获取子模块711、词向量生成子模块712以及待处理向量确定子模块713。其中,获取子模块711用于获取当前的输入语句,前一次生成的答复语句及前一次生成的一个或多个关键词,其中,在不存在前一次生成的答复语句的情况下,前一次生成的答复语句及前一次生成的一个或多个关键词例如可以取默认值。根据本公开的实施例,该获取子模块711例如可以用于执行参考图3描述的操作s211,在此不再赘述。其中,词向量生成子模块712用于将当前的输入语句,前一次生成的答复语句及前一次生成的一个或多个关键词中的词转化为词向量。根据本公开的实施例,该词向量生成子模块712例如可以用于执行参考图3描述的操作s212,在此不再赘述。其中,待处理向量确定子模块713用于将词向量有序输入至第二循环神经网络,获取第二循环神经网络的隐藏层状态的向量表示以作为所述待处理向量。根据本公开的实施例,该待处理向量确定子模块713例如可以用于执行参考图3描述的操作s213,在此不再赘述。图9示意性示出了根据本公开实施例的答复语句生成模块的结构示意图。如图9所示,上述答复语句生成模块740可以包括答复词生成子模块741和答复语句确定子模块742。其中,答复词生成子模块741用于将一个或多个关键词的向量表示、第一循环神经网络最终的隐藏层状态的向量表示及答复类型的向量表示输入第三循环神经网络,生成一个或多个答复词,其中,上述答复内容包括答复类型的向量表示。根据本公开的实施例,该答复词生成子模块741例如可以用于执行参考图5a描述的操作s241,在此不再赘述。根据本公开的实施例,该答复词生成子模块741具体可以用于循环执行以下操作,直至生成完整的一个或多个答复词:以第三循环神经网络的输入更新第三循环神经网络的隐藏层状态,得到当前的多个候选答复词;以及根据当前的多个候选答复词的输出概率,确定当前的答复词,每个候选答复词的输出概率包括:该候选答复词由第三循环神经网络生成的概率与该候选答复词自所述输入语句复制得到的概率之和。其中,在上述循环中,以一个或多个关键词的向量表示、第一循环神经网络最终的隐藏层状态的向量表示及答复类型的向量表示作为第三循环神经网络的初始输入,以前一次循环中得到的答复词的向量表示与隐藏层状态的向量表示作为后一次循环中第三循环神经网络的输入。根据本公开的实施例,该答复词生成子模块741例如还可以用于循环地执行参考图5b描述的操作s2411~操作s2412,在此不再赘述。其中,答复语句确定子模块742用于根据一个或多个答复词及候选答复值,生成输入语句的答复语句,其中,上述答复内容包括所述候选答复值,且答复类型的向量表示与该候选答复值的数量相关。根据本公开的实施例,该答复语句确定子模块742例如可用于执行参考图5a描述的操作s242,在此不再赘述。根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。例如,待处理向量获取模块710、关键词生成模块720、答复内容确定模块730、答复语句生成模块740、获取子模块711、词向量生成子模块712、待处理向量确定子模块713、答复词生成子模块741以及答复语句确定子模块742中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,待处理向量获取模块710、关键词生成模块720、答复内容确定模块730、答复语句生成模块740、获取子模块711、词向量生成子模块712、待处理向量确定子模块713、答复词生成子模块741以及答复语句确定子模块742中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,待处理向量获取模块710、关键词生成模块720、答复内容确定模块730、答复语句生成模块740、获取子模块711、词向量生成子模块712、待处理向量确定子模块713、答复词生成子模块741以及答复语句确定子模块742中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。图10示意性示出了根据本公开实施例的语句处理系统的方框图。图10示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图10所示,根据本公开实施例的语句处理系统1000包括处理器1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。在ram1003中,存储有系统1000操作所需的各种程序和数据。处理器1001、rom1002以及ram1003通过总线1004彼此相连。处理器1001通过执行rom1002和/或ram1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom1002和ram1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。根据本公开的实施例,系统1000还可以包括输入/输出(i/o)接口1005,输入/输出(i/o)接口1005也连接至总线1004。系统1000还可以包括连接至i/o接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。例如,根据本公开的实施例,计算机可读介质可以包括上文描述的rom1002和/或ram1003和/或rom1002和ram1003以外的一个或多个存储器。附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1