自然语言生成方法、装置及存储介质与流程

文档序号:31307774发布日期:2022-08-30 22:08阅读:49来源:国知局
1.本技术涉及人工智能
技术领域
:,尤其涉及一种自然语言生成方法、装置及存储介质。
背景技术
::2.任务型对话系统作为垂直领域的业务助理,可以高效处理繁琐和重复的高频问答,继而完成用户的目标任务,例如订票、查询天气等。3.自然语言生成(naturallanguagegeneration,nlg)是任务型对话系统的重要组成部分。自然语言生成旨在将机器表述系统中的语义表达(meaningrepresentations,mr)转化为自然语言,以便于人们理解。然而,现有的自然语言生成技术通常存在语义信息丢失(例如关键词丢失)的问题。技术实现要素:4.有鉴于此,提出了一种自然语言生成方法、装置及存储介质。5.第一方面,本技术的实施例提供了一种自然语言生成方法,应用于对话系统,所述方法包括:对系统动作文本进行编码,得到编码向量;其中,所述系统动作文本是根据用户查询信息和预设的系统动作文本模板生成的,所述系统动作文本模板包括至少一个预设的槽位,所述系统动作文本包括至少一个槽位值;对所述编码向量进行解码,在解码过程中判断解码文本是否满足解码结束条件;其中,所述解码文本为对所述编码向量进行解码得到的文本,所述解码结束条件为:所述解码文本中包括所述系统动作文本模板中的所有预设的所述槽位,或者所述解码文本中包括所述系统动作文本中的所有所述槽位值;在所述解码文本满足所述解码结束条件的情况下,确定所述解码文本为用于回复所述用户查询信息的自然语言文本。6.本技术的实施例的自然语言生成方法,应用于对话系统,能够对根据用户查询信息和预设的系统动作文本模板生成的系统动作文本进行编码,得到编码向量,并对编码向量进行解码,在解码过程中,判断解码文本是否满足解码结束条件,解码结束条件为解码文本中包括系统动作文本模板中的所有预设的槽位或者解码文本中包括所述系统动作文本中的所有所述槽位值;在解码文本满足解码结束条件的情况下,确定解码文本为用于回复用户查询信息的自然语言文本,从而使得对话系统在生成自然语言时,能够根据系统动作文本中隐含的约束信息(例如包括的槽位值)或者根据系统动作文本模板中隐含的约束信息(例如包括的槽位)对编码向量的解码过程进行指导,使得系统动作文本中的关键信息在解码过程中得到充分的表达,避免语义信息丢失(例如关键词丢失),进而提高自然语言生成的准确性及稳定性。7.根据第一方面,在所述自然语言生成方法的第一种可能的实现方式中,所述对系统动作文本进行编码,得到编码向量,具体包括:根据预设词典对所述系统动作文本中的各个词语进行编码,得到词向量;根据预设短语库从所述系统动作文本中确定目标短语,对所述目标短语进行编码,得到短语向量;其中,所述短语库包括多个短语,所述目标短语为同时包含于所述短语库和所述系统动作文本的短语;融合所述词向量和所述短语向量,得到所述编码向量。8.在本实施例中,通过将短语向量加入编码向量,使得编码向量包括多个粒度(词粒度、短语粒度)的向量,从而能够提高编码向量对系统动作文本中关键语义信息的表达的的准确性,进而提高解码生成的自然语言文本的准确性及稳定性。9.根据第一方面的第一种可能的实现方式,在所述自然语言生成方法的第二种可能的实现方式中,所述对所述目标短语进行编码,得到短语向量,具体包括:对所述目标短语中的各个词语对应的词向量进行平均或加权平均,得到短语向量。10.在本实施例中,通过对目标短语中的各个词语对应的词向量进行平均或加权平均,得到短语向量,不仅计算便捷,而且未增加编码器参数,从而能够提高处理效率。11.根据第一方面的第一种可能的实现方式或者第二种可能的实现方式,在所述自然语言生成方法的第三种可能的实现方式中,所述融合所述词向量和所述短语向量,得到所述编码向量,具体包括:拼接所述词向量和所述短语向量,得到所述编码向量。12.在本实施例中,通过拼接方式,将词向量与短语向量融合,得到编码向量,使得编码向量包括多个粒度(词粒度、短语粒度)的向量,从而能够提高编码向量对系统动作文本中关键语义信息的表达的的准确性。13.根据第一方面或者第一方面的第一种可能的实现方式至第三种可能的实现方式中的任一种,在所述自然语言生成方法的第四种可能的实现方式中,所述系统动作文本模板包括至少一个短文本模板,每个短文本模板包括至少一个槽位,所述系统动作文本包括至少一个短文本,每个短文本包括至少一个槽位值,所述在解码过程中判断解码文本是否满足解码结束条件,具体包括:在解码过程中判断解码文本是否满足第一条件,其中,所述第一条件为:所述解码文本中包括所述系统动作文本模板中的至少一个槽位,或者所述解码文本中包括所述系统动作文本中的至少一个槽位值;在所述解码文本满足所述第一条件的情况下,确定所述槽位所属的目标短文本模板,或者确定所述槽位值所属的目标短文本;判断所述解码文本是否满足第二条件,其中,所述第二条件为:所述解码文本中包括所述目标短文本模板中的所有槽位,或者所述解码文本中包括所述系统动作文本中的所有槽位值;在所述解码文本满足所述第二条件的情况下,确定所述解码文本不满足解码结束条件。14.在本实施例中,通过对解码文本是否包括目标短文本模块中的所有槽位的判断,或者通过对解码文本是否包括目标短文本中的所有槽位值的判断,能够防止槽位信息错位,使得生成的用于回复用户查询信息的自然语言文本的表达更为紧凑。15.根据第一方面的第四种可能的实现方式,在所述自然语言生成方法的第五种可能的实现方式中,所述在解码过程中判断解码文本是否满足解码结束条件,还包括:在所述解码文本满足所述第二条件的情况下,判断所述解码文本是否满足第三条件,其中,所述第三条件为:所述解码文本中包括所述系统动作文本模板中的所有预设的所述槽位,或者所述解码文本中包括所述系统动作文本中的所有所述槽位值;在所述解码文本不满足所述第三条件的情况下,确定所述解码文本不满足解码结束条件。16.在本实施例中,在解码文本包括目标短文本模块中的所有槽位或者解码文本包括目标短文本中的所有槽位值的情况下,通过对解码文本是否包括系统动作文本模板中的所有槽位的判断,或者通过对解码文本是否包括系统动作文本中的所有槽位值的判断,能够使得系统动作文本中的所有短文本都参与解码,从而能够提高系统动作文本的关键语义信息在生成的自然语言文字中的表达的准确性,进而提高自然语言生成的准确性及稳定性。17.根据第一方面的第五种可能的实现方式,在所述自然语言生成方法的第六种可能的实现方式中,所述在解码过程中判断解码文本是否满足解码结束条件,还包括:在所述解码文本满足所述第三条件的情况下,确定所述解码文本满足解码结束条件。18.在本实施例中,满足第三条件的解码文本同时也满足第一条件及第二条件,而确定满足第三条件的解码文本满足解码结束条件,不仅可以在解码过程中防止槽位信息错位,使得生成的用于回复用户查询信息的自然语言文本的表达更为紧凑,而且可以使得系统动作文本中的所有短文本都参与解码,从而能够提高系统动作文本的关键语义信息在生成的自然语言文字中的表达的准确性,进而提高自然语言生成的准确性及稳定性。19.根据第一方面或者第一方面的第一种可能的实现方式至第六种可能的实现方式中的任一种,在所述自然语言生成方法的第七种可能的实现方式中,所述方法还包括:根据用户查询信息,确定系统动作,其中,所述系统动作为所述对话系统回复所述用户查询信息时执行的动作,所述系统动作包括动作类别及至少一个槽位-槽位值对;根据所述系统动作及系统动作文本模板,确定系统动作文本,其中,所述系统动作文本模板与所述系统动作相对应,所述系统动作文本模板中的槽位与所述系统动作中的槽位一致。20.在本实施例中,通过用户查询信息确定系统动作,并根据系统动作及系统动作文本模块,确定系统动作文本,能够提高生成系统动作文本时的处理效率。21.根据第一方面的第七种可能的实现方式,在所述自然语言生成方法的第八种可能的实现方式中,所述根据所述系统动作及系统动作文本模板,确定系统动作文本,具体包括:将所述系统动作中的槽位值填充到系统动作文本模板的相应槽位,得到系统动作文本。22.在本实施例中,通过将系统动作中的槽位值填充到系统动作文本模板的相应槽位,得到系统动作文本,简单方便且不容易出错,不仅能够提高处理效率,还能够提高系统动作文本的准确性。23.根据第一方面,在所述自然语言生成方法的第九种可能的实现方式中,所述对所述编码向量进行解码,包括:根据所述编码向量,确定注意力信息;根据所述注意力信息,对所述编码向量进行解码。24.在本实施例中,通过获取注意力信息并将注意力信息与解码过程相结合,可使得关键语义信息及常用短语(即常用文本片段)在解码过程中得到更充分地利用,从而提高自然语言生成的准确性。25.根据第一方面或者第一方面的第一种可能的实现方式至第九种可能的实现方式中的任一种,在所述自然语言生成方法的第十种可能的实现方式中,所述编码通过编码器完成,所述解码通过解码器完成,所述编码器及所述解码器为神经网络。26.在本实施例中,通过神经网络实现的编码器进行编码以及通过神经网络实现的解码器进行解码,能够充分利用神经网络强大的运算及处理能力,从而能够提高自然语言生成时的处理效率。27.根据第一方面的第十种可能的实现方式,在所述自然语言生成方法的第十一种可能的实现方式中,所述编码器为双向长短期记忆网络,所述解码器为长短期记忆网络。28.在本实施例中,编码器为双向长短期记忆网络,解码器为长短期记忆网络,编码器及解码器均使用了基于序列的模型,能够提高生成的自然语言文本的多样性。29.第二方面,本技术的实施例提供了一种自然语言生成装置,包括处理器及用于存储处理器可执行指令的存储器,其中,所述处理器被配置为执行所述指令时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的自然语言生成方法。30.本技术的实施例的自然语言生成装置,能够对根据用户查询信息和预设的系统动作文本模板生成的系统动作文本进行编码,得到编码向量,并对编码向量进行解码,在解码过程中,判断解码文本是否满足解码结束条件,解码结束条件为解码文本中包括系统动作文本模板中的所有预设的槽位或者解码文本中包括所述系统动作文本中的所有所述槽位值;在解码文本满足解码结束条件的情况下,确定解码文本为用于回复用户查询信息的自然语言文本,从而使得对话系统在生成自然语言时,能够根据系统动作文本中隐含的约束信息(例如包括的槽位值)或者根据系统动作文本模板中隐含的约束信息(例如包括的槽位)对编码向量的解码过程进行指导,使得系统动作文本中的关键信息在解码过程中得到充分的表达,避免语义信息丢失(例如关键词丢失),进而提高自然语言生成的准确性及稳定性。31.第三方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的自然语言生成方法。32.本技术的实施例能够对根据用户查询信息和预设的系统动作文本模板生成的系统动作文本进行编码,得到编码向量,并对编码向量进行解码,在解码过程中,判断解码文本是否满足解码结束条件,解码结束条件为解码文本中包括系统动作文本模板中的所有预设的槽位或者解码文本中包括所述系统动作文本中的所有所述槽位值;在解码文本满足解码结束条件的情况下,确定解码文本为用于回复用户查询信息的自然语言文本,从而使得对话系统在生成自然语言时,能够根据系统动作文本中隐含的约束信息(例如包括的槽位值)或者根据系统动作文本模板中隐含的约束信息(例如包括的槽位)对编码向量的解码过程进行指导,使得系统动作文本中的关键信息在解码过程中得到充分的表达,避免语义信息丢失(例如关键词丢失),进而提高自然语言生成的准确性及稳定性。33.第四方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的自然语言生成方法。34.本技术的实施例能够对根据用户查询信息和预设的系统动作文本模板生成的系统动作文本进行编码,得到编码向量,并对编码向量进行解码,在解码过程中,判断解码文本是否满足解码结束条件,解码结束条件为解码文本中包括系统动作文本模板中的所有预设的槽位或者解码文本中包括所述系统动作文本中的所有所述槽位值;在解码文本满足解码结束条件的情况下,确定解码文本为用于回复用户查询信息的自然语言文本,从而使得对话系统在生成自然语言时,能够根据系统动作文本中隐含的约束信息(例如包括的槽位值)或者根据系统动作文本模板中隐含的约束信息(例如包括的槽位)对编码向量的解码过程进行指导,使得系统动作文本中的关键信息在解码过程中得到充分的表达,避免语义信息丢失(例如关键词丢失),进而提高自然语言生成的准确性及稳定性。35.本技术的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。附图说明36.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本技术的示例性实施例、特征和方面,并且用于解释本技术的原理。37.图1示例性地展示了本技术实施例提供的一种对话系统的示意图。38.图2a示出根据本技术一实施例的电子设备的结构示意图。39.图2b示出根据本技术一实施例的电子设备的软件结构示意图。40.图3示出根据本技术一实施例的基于生成模型的自然语言生成的示意图。41.图4示出根据本技术一实施例的自然语言生成方法的流程图。42.图5示出根据本技术一实施例的自然语言生成方法中编码向量的示意图。43.图6示出根据本技术一实施例的自然语言生成方法的处理过程的示意图。44.图7示出根据本技术一实施例的自然语言生成方法的流程图。具体实施方式45.以下将参考附图详细说明本技术的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。46.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。47.另外,为了更好地说明本技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。48.作为一种能够通过自然语言与用户进行会话的软件系统,对话系统通常要对用户以文本、语音等形式输入的自然语言进行识别及理解,以确定用户意图,进而根据用户意图,确定将要进行的系统动作,并将系统动作转换为自然语言以回复用户或者执行相应的操作。49.图1示例性地展示了本技术实施例提供的一种对话系统的示意图。如图1所示,用户10通过语音方式输入查询信息,对话系统20中的语音识别(automaticspeechrecognition,asr)模块21对用户输入的语音形式的查询信息进行识别,得到文本形式的查询信息,并发送给自然语言理解(naturallanguageunderstanding,nlu)模块22。可选地,用户输入的查询信息也可以为文本形式,对话系统20可直接将文本形式的查询信息发送给自然语言理解模块22处理。示例性地,上述查询信息可以是例如“纽约今天天气怎么样?”、“最近有什么电影上映?”等形式的语句。50.自然语言理解模块22可对文本形式的查询信息进行解析,得到用户查询所属的意图类别以及查询信息中包含的槽位值,并将用户查询所属的意图类别以及查询信息中包含的槽位值发送给对话状态跟踪(dialoguestatetracking,dst)模块23。示例性地,若查询信息为“纽约今天天气怎么样?”,则自然语言理解模块22经计算处理后可以得到意图类别为“查询天气”、槽位可以包括“时间:今天”、“城市:纽约”等。51.对话状态跟踪模块23可根据用户的历史查询信息和当前查询信息,计算槽位值的分布概率,即可根据历史对话推断出用户当前的对话状态和对话目标;然后将与当前查询相关的槽位信息、对话状态、对话目标等对话信息发送给策略学习(policylearning,pl)模块24。52.策略学习模块24可对上述对话信息进行处理,得到对话系统20将要产生的系统动作,并将系统动作发送给自然语言生成模块25,其中,系统动作中包含槽位信息。53.自然语言生成模块25可对上述系统动作进行解码,将系统动作转换为对应的自然语言以回复用户的查询,例如在显示屏上显示自然语言,和/或使用扬声器播放自然语言以回复用户的查询;可选地,系统动作还可以被发送给操作系统的相应模块以执行相应操作,例如呼叫联系人、打开应用、开启摄像头、播放音乐、使用搜索引擎进行搜索等操作。示例性地,自然语言生成模块25可以生成自然语言回复“纽约今天天气多云。最高温23摄氏度。最低温10摄氏度。”。54.应当明确,本技术实施例提供的对话系统,可以包括比图1所示的对话系统更多或更少的模块,各个模块之间也可以以不同于图1所示的连接方式进行连接,各个模块可以是通过软件和/或硬件的方式实现的,各个模块的计算和处理过程可以在云侧(服务器侧)完成,也可以在端侧(用户设备侧)完成。应当明确,可基于查询信息生成自然语言回复的对话系统,均不超出本技术覆盖的范围。55.本技术实施例提供一种自然语言生成方法,采用“模板+槽位”生成自然语言回复,可以使得对话系统的自然语言回复具备合理性。示例性地,针对“查询天气”这个意图类别,自然语言生成模块25可以使用预设的模板“${地点}${时间}天气${天气}。最高温${最高温}$摄氏度。最低温${最低温}$摄氏度。”,通过填充槽位的方式,生成自然语言回复。该模板中包含模板以及地点、时间、天气、最高温、最低温总共五个槽位,本技术实施例可使用“${……}”示意性地表示槽位。自然语言生成模块25可以获取上述槽位对应的“槽位-槽位值”对信息(即“地点:纽约”、“时间:今天”、“天气:多云”、“最高温:28”、“最低温:9”),从而将上述槽位对应的槽位值填充到模板中的对应槽位处,生成自然语言回复“纽约今天天气多云。最高温28摄氏度。最低温9摄氏度。”。上述这种采用“模板+槽位”生成自然语言回复的方法,可以使得展现在用户面前的回复一方面总是具备流畅性和自然性,但另一方面基于模板的回复多样性相对较低。56.本技术实施例提供一种自然语言生成方法,使用序列到序列(sequencetosequence,seq2seq)模型生成自然语言,可以使得对话系统的自然语言回复具备多样性。seq2seq模型可以是基于循环神经网络(recurrentneuralnetwork,rnn)、长短期记忆(long-shorttermmemory,lstm)网络等实现的深度学习模型。可选地,还可以将seq2seq模型与注意力(attention)机制结合,使得模型专注于用户查询中的用户重点关注信息,使得生成的自然语言回复更贴近用户期望的回复。这种方法生成的自然语言回复,一方面准确率较高且通常多样性良好,但另一方面生成过程(或者说解码过程)可控性较低,有时会使得生成的自然语言出现例如重复、无意义词或者丢失关键词等现象,即出现自然语言生成稳定性较低的现象。57.有鉴于此,本技术实施例提供一种自然语言生成方法,通过解码结束条件对解码过程进行限制,可以避免语义信息丢失(例如关键词丢失),提高对话系统中自然语言生成的稳定性。可选地,本技术实施例提供的自然语言生成方法可以在编码向量中增加短语向量,并通过解码结束条件对解码过程进行限制,以提高自然语言生成的准确性及稳定性。也就是说,本技术实施例的自然语言生成方法可以是一种基于限制解码的自然语言生成方法。58.本技术实施例的自然语言生成方法可应用于对话系统。对话系统可输出自然语言以回复用户输入的查询信息。对话系统可包括任务型对话系统、闲聊型对话系统、检索式对话系统等。应当理解,本技术对对话系统的具体类型及应用场景不作限制。59.在一种可能的实现方式中,对话系统可应用于终端侧的电子设备或者应用于服务器。其中,电子设备可以是触屏的、也可以是非触屏的、也可以是没有屏幕的,触屏的电子设备可以通过手指、触控笔等在显示屏幕上点击、滑动等方式进行控制,非触屏的电子设备可以连接鼠标、键盘、触控面板等输入设备,通过输入设备进行控制,没有屏幕的电子设备比如说可以是没有屏幕的智能音箱等。60.图2a示出根据本技术一实施例的电子设备100的结构示意图。61.电子设备100可以包括手机、可折叠电子设备、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本、蜂窝电话、个人数字助理(personaldigitalassistant,pda)、增强现实(augmentedreality,ar)设备、虚拟现实(virtualreality,vr)设备、人工智能(artificialintelligence,ai)设备、可穿戴式设备、车载设备、智能家居设备、或智慧城市设备中的至少一种。本技术实施例对该电子设备100的具体类型不作特殊限制。62.如图2a所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserialbus,usb)接头130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentificationmodule,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。63.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。64.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(applicationprocessor,ap),调制解调处理器,图形处理器(graphicsprocessingunit,gpu),图像信号处理器(imagesignalprocessor,isp),控制器,视频编解码器,数字信号处理器(digitalsignalprocessor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。65.处理器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。66.在本技术实施例中,处理器110可用于执行用于实现图1所示对话系统20中各个模块功能的计算机指令。可选地,在对话系统20通过神经网络模型(例如seq2seq模型)实现时,处理器110可包括npu,npu可用于进行上述神经网络模型中的数据运算,以生成用于回复用户查询信息的自然语言文本。67.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器可以为高速缓冲存储器。该存储器可以保存处理器110用过或使用频率较高的指令或数据。如果处理器110需要使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。68.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integratedcircuit,i2c)接口,集成电路内置音频(inter-integratedcircuitsound,i2s)接口,脉冲编码调制(pulsecodemodulation,pcm)接口,通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)接口,移动产业处理器接口(mobileindustryprocessorinterface,mipi),通用输入输出(general-purposeinput/output,gpio)接口,用户标识模块(subscriberidentitymodule,sim)接口,和/或通用串行总线(universalserialbus,usb)接口等。处理器110可以通过以上至少一种接口连接触摸传感器、音频模块、无线通信模块、显示器、摄像头等模块。69.可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。70.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。71.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。72.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoiseamplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。73.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。74.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocalareanetworks,wlan)(如无线保真(wirelessfidelity,wi-fi)网络),蓝牙(bluetooth,bt),蓝牙低功耗(bluetoothlowenergy,ble),超宽带(ultrawideband,uwb),全球导航卫星系统(globalnavigationsatellitesystem,gnss),调频(frequencymodulation,fm),近距离无线通信技术(nearfieldcommunication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。75.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络和其他电子设备通信。该无线通信技术可以包括全球移动通讯系统(globalsystemformobilecommunications,gsm),通用分组无线服务(generalpacketradioservice,gprs),码分多址接入(codedivisionmultipleaccess,cdma),宽带码分多址(widebandcodedivisionmultipleaccess,wcdma),时分码分多址(time-divisioncodedivisionmultipleaccess,td-scdma),长期演进(longtermevolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。该gnss可以包括全球卫星定位系统(globalpositioningsystem,gps),全球导航卫星系统(globalnavigationsatellitesystem,glonass),北斗卫星导航系统(beidounavigationsatellitesystem,bds),准天顶卫星系统(quasi-zenithsatellitesystem,qzss)和/或星基增强系统(satellitebasedaugmentationsystems,sbas)。76.在本技术实施例中,对话系统20可通过上述无线通信技术与网络及其他电子设备进行通信。示例性地,在图1中的对话系统20需要从网络上获取系统动作中的槽位值的情况下,对话系统20可通过移动通信模块150及天线1或者无线通信模块160及天线2,与网络进行通信,以获取槽位值。示例性地,在用户使用无线耳机(例如蓝牙耳机)的情况下,电子设备100可通过无线通信模块160及天线2与无线耳机连接,以便用户通过无线耳机收听对话系统20的回复信息(即对话系统20生成的用于回复用户查询信息的自然语言文本)。77.电子设备100可以通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。78.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。在一些实施例中,电子设备100可以包括1个或多个显示屏194。79.在本技术实施例中,显示屏194可用于显示对话系统20的回复信息(即对话系统20生成的用于回复用户查询信息的自然语言文本),以便用户查看。80.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。81.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。82.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或输出免提通话的音频信号。在本技术实施例中,扬声器170a可用于播放对话系统20的回复信息(即对话系统20生成的用于回复用户查询信息的自然语言文本),以便用户收听。83.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。在本技术实施例中,受话器170b可用于播放对话系统20的回复信息(即对话系统20生成的用于回复用户查询信息的自然语言文本),以便用户收听。84.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。在本技术实施例中,麦克风170c可用于录制用户的语音以获得用户查询信息,进而用户查询信息可以输入图1中所示的对话系统20中的asr模块21进行语音识别。85.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(openmobileterminalplatform,omtp)标准接口,美国蜂窝电信工业协会(cellulartelecommunicationsindustryassociationoftheusa,ctia)标准接口。在本技术实施例中,在用户使用有线耳机时,电子设备可通过耳机接口170d与有线耳机连接,以便用户通过有线耳机收听对话系统20的回复信息(即对话系统20生成的用于回复用户查询信息的自然语言文本)。86.电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android系统为例,示例性说明电子设备100的软件结构。87.图2b示出根据本技术一实施例的电子设备100的软件结构示意图。88.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(androidruntime,art)和原生c/c++库,硬件抽象层(hardwareabstractlayer,hal)以及内核层。89.应用程序层可以包括一系列应用程序包。90.如图2b所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。在本技术实施例中,对话系统可以为电子设备中的独立的应用程序,例如智能手机中的语音助手、智能音箱中的语音助手等,对话系统也可以为某个应用程序中的子系统,例如导航应用程序中的语音助手等。91.应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用程序框架层包括一些预先定义的函数。92.如图2b所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,活动管理器,输入管理器等。93.其中,内容提供器可用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。在本技术实施例中,内容提供器可用于存放和获取用户的历史查询信息、当前查询信息等与对话系统相关的数据。94.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。在本技术实施例中,视图系统可用于构建对话系统的显示界面。95.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。在本技术实施例中,在接收到对话系统的回复信息时,通知管理器可通过在状态栏显示文本、发出提示音、电子设备振动、指示灯闪烁等方式通过用户,以便用户及时查看。96.输入管理器可以提供输入管理服务(inputmanagerservice,ims),ims可以用于管理系统的输入,例如触摸屏输入、按键输入、传感器输入等。ims从输入设备节点取出事件,通过和wms的交互,将事件分配至合适的窗口。在本技术实施例中,输入管理器提供的ims可用于管理对话系统的输入,即用户查询信息。97.安卓运行时包括核心库和安卓运行时。安卓运行时负责将源代码转换为机器码。安卓运行时主要包括采用提前(aheadortime,aot)编译技术和及时(justintime,jit)编译技术。98.核心库主要用于提供基本的java类库的功能,例如基础数据结构、数学、io、工具、数据库、网络等库。核心库为用户进行安卓应用开发提供了api。99.原生c/c++库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体框架(mediaframework),libc,opengles、sqlite、webkit等。100.硬件抽象层运行于用户空间(userspace),对内核层驱动进行封装,向上层提供调用接口。101.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。102.下面结合对话系统,示例性说明电子设备100软件以及硬件的工作流程。103.当用户通过麦克风170c在对话系统的显示界面输入语音查询信息时,相应的硬件中断被发给内核层,内核层将用户查询信息发送给硬件抽象层的音频模块;音频模块将用户查询信息的模拟音频输入转换为数字音频信号;应用程序框架层从硬件抽象层获取数据音频信号,存放在输入管理器中;程序层的对话系统调用应用框架层的接口,获取用户查询信息,并生成用于回复该用户查询信息的自然语言文本;对话系统将生成的自然语言文本通过应用程序框架层的接口,发送给硬件抽象层的音频模块;音频模块将数字音频信号转换为模拟音频信号,并通过调用内核层启动音频驱动,通过扬声器170a播放对话系统的回复信息。104.在一种可能的实现方式中,对话系统也可以是终端-服务器架构。终端(包括上述电子设备)与服务器共同完成图1所示对话系统的各个模块的功能。例如,可将对话系统20的asr模块21部署在终端侧,可将对话系统20的nlu模块22、dst模块23、pl模块24及nlg模块25部署在服务器侧。终端接收到语音形式的用户查询信息(例如天气查询、酒店预订、车票查询及预订等)时,可通过asr模块21对语音形式的用户查询信息进行识别,得到文本形式的用户查询信息,并将文本形式的用户查询信息发送给服务器。服务器接收到终端发送的用户查询信息后,可通过nlu模块22、dst模块23及pl模块24对用户查询信息进行解析、计算等处理,确定对话系统20将要产生的系统动作,并根据该系统动作及预设的系统动作文本模板,通过nlg模块25确定系统动作文本,并对系统动作文本进行编码及解码,生成与系统动作文本对应的自然语言文本,并将生成的自然语言文本发送给终端,以使终端将该自然语言文本作为对话系统20的回复信息进行显示或进行语音播报。105.应当理解,以上仅对对话系统在终端侧及服务器侧的部署进行了示例性地说明,本领域技术人员可根据实际情况对对话系统在终端侧和服务器侧的具体部署进行设置,本技术对此不作限制。106.在一种可能的实现方式中,对话系统中的自然语言生成模块可通过生成模型实现,即本技术实施例的自然语言生成方法可应用于生成模型。生成模型可用于将系统动作文本转换为自然语言,其处理过程可包括对输入文本进行分析的编码过程以及生成输出文本的解码过程。生成模型可以为编码-解码(encoder-decoder,enc-dec)模型、seq2seq模型或其他自然语言生成模型。107.图3示出根据本技术一实施例的基于生成模型的自然语言生成的示意图。如图3所示,用户输入的查询信息210为:“isitagoodrestaurant?aretheyexpensive?(这家餐厅好吗?贵不贵?)”;对话系统220收到用户输入的查询信息210后,首先对该查询信息进行解析,确定需要回应的系统动作221:“offer_intent(reserverestaurant)、inform(price_range=“expensive”)、inform(rating=“4”)”;然后根据系统动作221,确定系统动作对应的短文本222:“wouldyouliketomakeareservationatarestaurant?itisanexpensiverestaurant.itsratingis4.(您要预定餐厅吗?这是一家很贵的餐厅。它的评级是4。)”;之后将系统动作对应的短文本222输入生成模型223进行自然语言生成,得到与系统动作222对应的自然语言224:“itisafancyrestaurantwitha4starrating.wouldyoulikemetoreserveatablethere?(这是一家4星高档餐厅。您想要预定位置吗?)”。108.可以看到,生成模型223输出的自然语言224,相比于输入生成模型223的短文本222,更贴近人类对话中的自然性语言,更加口语化,语义连贯性更强。109.其中,生成模型223可以为seq2seq模型。seq2seq模型可例如文本到文本变换器(text-to-texttransfertransformer,t5)模型等。110.应当理解,本领域技术人员可根据实际情况对生成模型进行设置,本技术对此不作限制。111.图4示出根据本技术一实施例的自然语言生成方法的流程图。如图4所示,该自然语言生成方法可以包括以下步骤:112.步骤s301:对系统动作文本进行编码,得到编码向量,其中,所述系统动作文本是根据用户查询信息及预设的系统动作文本模板生成的,所述系统动作文本模板包括至少一个预设的槽位,所述系统动作文本包括至少一个槽位值。113.在实际应用中,对话系统(例如任务型对话系统)通常在一个垂域(即垂直领域)内包括有限个系统动作(dialogueaction,da)以响应用户的输入,即系统动作是对话系统回复用户查询信息时执行的动作。每个系统动作通常包括动作类别及至少一个“槽位-槽位值”对(slot-valuepair)。其中,系统动作的动作类别可包括通知(inform)、请求(request)、确认(ack)等。本技术对系统动作的动作类别不作限制。114.若对话系统中包括有限个系统动作,则可以预先为每个系统动作设置对应的系统动作文本模板,即系统动作文本模板与所述系统动作相对应。系统动作文本模板中的槽位也与所述系统动作中的槽位一致。下表1示出了系统动作及相关文本的示例。115.表1系统动作及相关文本示例[0116][0117]表1中,inform(slot=value)的形式中,inform表示系统动作,slot表示槽位,value表示槽位值。例如inform(maxtemp=28)中,inform表示系统动作为“通知”,maxtemp表示槽位,“28”表示槽位maxtemp的值。inform(maxtemp=28)可用于指示对话系统需要通知用户最高温度为28度。[0118]如表1所示,系统动作(dialogueaction)包括动作类别及至少一个槽位-槽位值对。可根据用户查询信息来确定系统动作。例如,用户的输入信息为语音,asr模块可以识别出用户语音对应的查询信息,若查询信息为“howistheweatherinnewyorktoday?(纽约今天天气怎么样?)”,则可以通过自然语言理解模块识别出该查询所属的意图类别为“查询天气”,并获取查询信息中包含的槽位值“city:newyork(城市:纽约)、origin:today(时间:今天)”,根据查询所属的意图类别及查询信息中包含的槽位值,通过对话状态跟踪模块及策略学习模块,确定出系统动作:inform(city=newyork,origin=today,weatherid=slightlycloudy),inform(maxtemp=28),inform(mintemp=9)。[0119]其中,天气类型(weatherid)、最高温(maxtemp)、最低温(mintemp)等槽位的槽位值可以通过调用接口等方式查询获得。可选地,若用户查询信息为“howistheweathertoday?(今天天气怎么样)”,则可以调用接口获取用户设备的地理位置信息,从而得知用户想要查询哪个地点今天的天气。[0120]系统动作文本模板(dialogueactiontexttemplate)包括至少一个槽位,槽位的类型和/或在模板中的位置可预先设置;系统动作文本模板还可以包括预设的文本模板。例如表1中,“theweatherin${city}is${weatherid}${origin}.”中包含三个槽位:城市(city)、天气类型(weatherid)和时间(origin),还包含文本模板“theweatherin…is…”。[0121]系统动作文本(dialogueactiontext)可根据系统动作及系统动作文本模板来确定。与系统动作文本模板中的至少一个槽位相对应,系统动作文本包括至少一个槽位值。系统动作文本还可以包括预设的文本模板。例如,可以通过将系统动作中的槽位值填充到系统动作文本模板中相应的槽位处来构成系统动作文本。表1所示的系统动作文本,可以通过将槽位值“newyork(纽约)”、“slightlycloudy(轻微多云)”、“today(今天)”、“28”和“9”分别填充到系统动作文本模板中的槽位${city}、${weatherid}、${origin}、${maxtemp}和${mintemp}处来获得。[0122]自然语言参考文本(reference)为预期输出,可用于对通过本技术实施例的自然语言生成方法生成的自然语言文本进行评价。具体地,自然语言参考文本可以通过人工定义、基于语料统计生成等方式来确定;自然语言参考文本相较于系统动作文本,通常更具自然性、流畅性及连贯性,更便于人类理解;可基于自然语言参考文本,对生成的自然语言文本的准确性进行评价。[0123]可选地,可通过双语替换评测(bilingualevaluationunderstudy,bleu)值,对生成的自然语言文本的准确性进行评价。具体地,可将对话系统生成的自然语言文本与预设的自然语言参考文本进行比较,计算对话系统生成的自然语言文本与自然语言参考文本之间的相似度,根据相似度,确定bleu值。相似度越高,bleu值越大,可认为对话系统生成的自然语言文本的准确性越高。[0124]在步骤s301中,可对系统动作文本进行编码,得到编码向量。可选地,可通过编码器对系统动作文本进行编码,得到编码向量。其中,编码器可以是例如双向循环神经网络(bi-directionalrecurrentneuralnetwork,brnn)、长短期记忆网络(longshort-termmemoryetwork,lstm)、双向长短期记忆网络(idirectionallongshort-ermmemorynetwork,blstm)等神经网络,编码向量可包括词向量(enc_word_emb)和/或短语向量(enc_phrase_emb)。本技术实施例对编码器、编码向量的具体类型不作限制。[0125]在对系统动作文本进行编码时,可根据预设词典对系统动作文本中的各个词语进行编码,得到词向量。例如,通过双向长短期记忆网络blstm(包括正向长短期记忆子网络及反向长短期记忆子网络)对系统动作文本进行编码时,可根据预设词典,将系统动作文本中的各个词语分别输入正向长短期记忆子网络及反向长短期记忆子网络进行处理,得到系统动作文本中的各个词语的正向隐向量及反向隐向量,然后将各个词语的正向隐向量与反向隐向量进行拼接,得到各个词语的词向量。is${mintemp}degrees.”,生成如下两个系统动作文本:[0140]“theweatherinnewyorkisslightlycloudytoday.thehighesttemperatureis28degrees.thelowesttemperatureis9degrees.”[0141]“theweatherinbeijingissunnytoday.thehighesttemperatureis11degrees.thelowesttemperatureis1degrees.”[0142]虽然上述两个系统动作文本中的槽位值不同,但上述两个系统动作文本均对应一个系统动作文本模板,因此,上述两个系统动作文本可以共用同一个槽位列表。[0143]在解码过程中判断解码文本是否满足解码结束条件时,可根据与系统动作文本模板对应的槽位列表以及预设的槽位与槽位值的对应关系,通过比较、查找等方式,判断解码文本中是否包括系统动作文本模板中的所有槽位。其中,槽位与槽位值的对应关系可以预先设置,例如可在预设系统动作文本模板时,预设槽位与槽位值的对应关系。[0144]例如,在对系统动作文本“theweatherinnewyorkisslightlycloudytoday.thehighesttemperatureis28degrees.thelowesttemperatureis9degrees.”的编码向量进行解码的过程中,与该系统动作文本对应的系统动作文本模板中的所有槽位共有5个,分别为“${city}”、“${weatherid}”、“${origin}”、“${mintemp}”和“${maxtemp}”,可根据这5个槽位,建立槽位列表。[0145]在解码过程中,可根据该槽位列表以及预设的槽位与槽位值的对应关系,通过查找、比对等方式,可判断解码文本中是否包括这5个槽位。在解码文本中未包括上述5个槽位的情况下,例如,在解码文本中仅包括“${city}”、“${origin}”和“${mintemp}”这3个槽位而缺少了“${weatherid}”和“${maxtemp}”这2个槽位值的情况下,可认为解码文本不满足解码结束条件,因此需继续解码,直到解码文本包括上述5个槽位;在解码文本包括上述5个槽位的情况下,可认为解码文本满足解码结束条件,因此可以结束解码。[0146]通过将解码文本中包括系统动作文本模板中的所有槽位作为解码结束条件,能够在判断解码文本是否满足解码结束条件时,使得根据同一个系统动作文本模板生成的多个系统动作文本,共用一个槽位列表,从而能够减少列表数量,提高处理效率。[0147]步骤s303:在所述已码文本满足所述解码结束条件的情况下,确定所述解码文本为用于回复所述用户查询信息的自然语言文本。[0148]在解码文本满足解码结束条件的情况下,可结束或终止解码,将解码文本确定为用于回复用户查询信息的自然语言文本,并通过文本显示和/或语音播报等方式,将该自然语言文本进行输出,以便用户查看和/或收听。[0149]本技术的实施例能够对根据用户查询信息和预设的系统动作文本模板生成的系统动作文本进行编码,得到编码向量,并对编码向量进行解码,在解码过程中,判断解码文本是否满足解码结束条件,解码结束条件为解码文本中包括系统动作文本模板中的所有预设的槽位或者解码文本中包括所述系统动作文本中的所有所述槽位值;在解码文本满足解码结束条件的情况下,确定解码文本为用于回复用户查询信息的自然语言文本,从而使得对话系统在生成自然语言时,能够根据系统动作文本中隐含的约束信息(例如包括的槽位值)或者根据系统动作文本模板中隐含的约束信息(例如包括的槽位)对编码向量的解码过程进行指导,使得系统动作文本中的关键信息在解码过程中得到充分的表达,避免语义信息丢失(例如关键词丢失),进而提高自然语言生成的准确性及稳定性。[0150]图6示出根据本技术一实施例的自然语言生成方法的处理过程的示意图。如图6所示,根据用户查询信息“howistheweatherinnewyorktoday?”及系统动作文本模板生成的系统动作文本为:“theweatherinnewyorkisslightlycloudytoday.thehighesttemperatureis28degrees.thelowesttemperatureis9degrees.”。可根据预设词典,通过编码器51对该系统动作文本中的各个单词进行编码,得到词向量,并可根据预设短语库,从系统动作文本中确定目标短语(包括newyork、slightlycloudy、thehighesttemperature等),并通过编码器52,对各个目标短语进行编码,得到短语向量。然后,可将词向量与短语向量进行拼接,得到编码向量。其中,编码器51和编码器52可以为双向长短期记忆网络,编码器51和编码器52可以为同一网络,也可以为两个网络,本技术对此不作限制。[0151]得到编码向量后,可通过解码器54对编码向量进行解码,其中,解码器54可以为单向长短期记忆网络。在解码过程中,可根据编码向量、解码文本中的当前单词的词向量,通过注意力模块53确定注意力信息,并结合注意力信息,对编码向量进行解码。可选地,在解码过程中,还可以通过限制模块55中的限制条件(constrainedcondition),对解码过程进行控制,即判断解码文本是否满足限制条件。其中,限制条件可包括解码结束条件,解码结束条件为:解码文本中包括系统动作文本模板中的所有预设的槽位,或者解码文本中包括系统动作文本中的所有槽位值。[0152]可选地,限制条件还可包括覆盖机制(coveragemechanism),覆盖机制可根据解码过程中之前时刻的注意力信息及解码文本,动态调整各个词向量及短语向量在当前时刻的注意力信息,以降低注意力信息中已生成的词语(即解码文本中包括的词语)的权重,从而减少生成的自然语言文本中的重复片段。应当理解,限制条件还可包括其他条件,本技术对此不作限制。[0153]在解码文本满足限制条件的情况下,可将解码文本确定为输出文本56,作为用户查询信息“howistheweatherinnewyorktoday?”的回复信息。[0154]应当理解,本实施例中的编码器及解码器仅为示例,编码器及解码器还可以为其他模型或其他神经网络。例如在t5模型中增加短语向量及限制条件,得到的改进后的t5模型;又例如全连接网络、rnn、brnn、lstm、blstm等神经网络。本技术对编码器及解码器的具体类型此不作限制。[0155]以上仅以系统动作文本为英语文本作为示例进行了说明,本技术实施例的自然语言生成方法还可适用于其他语言,例如西班牙语、法语、德语、汉语等,本技术对此不作限制。[0156]在一种可能的实现方式中,系统动作文本模板可包括至少一个短文本模板,每个短文本模板可包括至少一个槽位,相应地,系统动作文本可包括至少一个短文本,每个短文本可包括至少一个槽位值。[0157]例如,系统动作文本模板“theweatherin${city}is${weatherid}${origin}.thehighesttemperatureis${maxtemp}degrees.thelowesttemperatureis${mintemp}degrees.”包括3个短文本模板,分别为:“theweatherin${city}is${weatherid}${origin}.”、“thehighesttemperatureis${maxtemp}degrees.”和“thelowesttemperatureis${mintemp}degrees.”。其中,短文本模板“theweatherin${city}is${weatherid}${origin}.”包括“${city}”、“${weatherid}”和“${origin}”这3个槽位;短文本模板“thehighesttemperatureis${maxtemp}degrees.”包括“${maxtemp}”这1个槽位;短文本模板“thelowesttemperatureis${mintemp}degrees.”包括“${mintemp}”这1个槽位。[0158]相应地,根据系统动作“inform(city=newyork,origin=today,weatherid=slightlycloudy),inform(maxtemp=28),inform(mintemp=9)”及上述系统动作文本模板生成的系统动作文本“theweatherinnewyorkisslightlycloudytoday.thehighesttemperatureis28degrees.thelowesttemperatureis9degrees.”包括3个短文本,分别为:“theweatherinnewyorkisslightlycloudytoday.”、“thehighesttemperatureis28degrees.”和“thelowesttemperatureis9degrees.”。其中,短文本“theweatherinnewyorkisslightlycloudytoday.”包括“newyork”、“slightlycloudy”和“today”这3个槽位值;短文本“thehighesttemperatureis28degrees.”包括“28”这1个槽位值;短文本“thelowesttemperatureis9degrees.”包括“9”这1个短文本。[0159]图7示出根据本技术一实施例的自然语言生成方法的流程图。如图7所示,该实施例的自然语言生成方法包括步骤s301、步骤s3021、步骤s3022、步骤s3023、步骤s3024、步骤s3025及步骤s303。其中,步骤s3021至步骤ss3025为图4所示实施例中的步骤s302的一种可能的更为细化的实现方式。步骤s3021至步骤s3025通过层次化的多次判断解码文本是否满足相应的条件,不仅可以在解码过程中防止槽位信息错位,使得生成的用于回复用户查询信息的自然语言文本的表达更为紧凑,而且可以使得系统动作文本中的所有短文本都参与解码,从而能够提高系统动作文本的关键语义信息在生成的自然语言文字中的表达的准确性,进而提高自然语言生成的准确性及稳定性。[0160]步骤s301,对系统动作文本进行编码,得到编码向量;其中,所述系统动作文本是根据用户查询信息和预设的系统动作文本模板生成的,所述系统动作文本模板包括至少一个预设的槽位,所述系统动作文本包括至少一个槽位值。可选地,图7所示实施例中的步骤s301与图4所示实施例中的步骤s301类似,在此不做重复性描述。[0161]步骤s3021,对编码向量进行解码。[0162]步骤s3022,在解码过程中判断解码文本是否满足第一条件,其中,所述第一条件为:所述解码文本中包括所述系统动作文本模板中的至少一个槽位,或者所述解码文本中包括所述系统动作文本中的至少一个槽位值。[0163]在一种可能的实现方式中,在第一条件为解码文本中包括系统动作文本模板中的至少一个槽位的情况下,在解码过程中判断解码文本是否满足第一条件时,可根据该系统动作文本模板建立槽位列表,并根据该槽位列表以及预设的槽位与槽位值的对应关系,通过查找、比对等方式,判断解码文本中是否包括系统动作文本模板中的至少一个槽位。[0164]例如,系统动作文本模板“theweatherin${city}is${weatherid}${origin}.thehighesttemperatureis${maxtemp}degrees.thelowesttemperatureis${mintemp}degrees.”中包括“${city}”、“${weatherid}”、“${origin}”、“${mintemp}”和“${maxtemp}”这5个槽位,可根据这5个槽位建立槽位列表,并根据该槽位列表以及预设的槽位与槽位值的对应关系,判断解码文本中是否包括“${city}”、“${weatherid}”、“${origin}”、“${mintemp}”和“${maxtemp}”这5个槽位中的至少一个。在解码文本中包括这5个槽位中的至少一个的情况下,例如,解码文本中包括“${city}”和“${weatherid}”这2个槽位的情况下,可认为解码文本满足第一条件。[0165]在一种可能的实现方式中,在第一条件为解码文本中包括系统动作文本中的至少一个槽位值的情况下,在解码过程中判断解码文本是否满足第一条件时,可根据该系统动作文本建立槽位值列表,并根据该槽位值列表,通过查找、比对等方式,判断解码文本中是否包括系统动作文本中的至少一个槽位值。[0166]例如,系统动作文本“theweatherinnewyorkisslightlycloudytoday.thehighesttemperatureis28degrees.thelowesttemperatureis9degrees.”中包括“newyork”、“slightlycloudy”、“today”、“28”和“9”总共5个槽位值,则可根据这5个槽位值,建立槽位值列表。在解码过程中,可根据该槽位值列表,通过查找、比对等方式,判断解码文本中是否包括“newyork”、“slightlycloudy”、“today”、“28”和“9”这5个槽位值中的至少一个。在解码文本中包括这5个槽位值中的至少一个的情况下,例如,在解码文本中包括“newyork”和“slightlycloudy”这2个槽位值的情况下,可认为解码文本满足第一条件。[0167]若解码文本不满足第一条件,则返回执行步骤s3021,继续对编码向量进行解码;[0168]若解码文本满足第一条件,则执行步骤s3023。[0169]步骤s3023,确定所述槽位所属的目标短文本模板,或者确定所述槽位值所属的目标短文本。[0170]在第一条件为解码文本中包括系统动作文本模板中的至少一个槽位的情况下,在解码文本满足第一条件时,可从系统动作文本模板包括的至少一个短文本模板中,确定出解码文本中包括的槽位所属的目标短文本模板。[0171]例如,解码文本中包括“${city}”这1个槽位,可从系统动作文本模板包括的3个短文本模板“theweatherin${city}is${weatherid}${origin}.”、“thehighesttemperatureis${maxtemp}degrees.”和“thelowesttemperatureis${mintemp}degrees.”中,确定这1个槽位“${city}”所属的目标短文本模板为:“theweatherin${city}is${weatherid}${origin}.”。[0172]在解码文本中包括多个槽位的情况下,可分别确定各个槽位所属的目标短文本模板,具体方法与上述类似,在此不做重复性描述。[0173]在第一条件为解码文本中包括系统动作文本中的至少一个槽位值的情况下,在解码文本满足第一条件时,可从系统动作文本包括的至少一个短文本中,确定出解码文本中包括的槽位值所属的目标短文本。[0174]例如,解码文本中包括“newyork”这1个槽位值,可从系统动作文本包括的3个短文本“theweatherinnewyorkisslightlycloudytoday.”、“thehighesttemperatureis28degrees.”和“thelowesttemperatureis9degrees.”中,确定这1个槽位值“newyork”所属的目标短文本为:“theweatherinnewyorkisslightlycloudytoday”。[0175]在解码文本中包括多个槽位值的情况下,可分别确定各个槽位值所属的目标短文本,具体方法与上述类似,在此不做重复性描述。[0176]步骤s3024,判断解码文本是否满足第二条件,其中,所述第二条件为:所述解码文本中包括所述目标短文本模板中的所有槽位,或者所述解码文本中包括所述目标短文本中的所有槽位值。[0177]在一种可能的实现方式中,在第二条件为所述解码文本中包括所述目标短文本模板中的所有槽位的情况下,判断解码文本是否满足第二条件时,可分别确定目标短文本模板中包括的所有槽位以及解码文本中包括的所有槽位,然后通过槽位查找、比对等方式,确定解码文本中是否包括目标短文本模板中的所有槽位。[0178]例如,目标短文本模板“theweatherin${city}is${weatherid}${origin}.”中的所有槽位为“${city}”、“${weatherid}”和“${origin}”这3个槽位;解码文本中包括“${city}”这1个槽位;通过槽位比对,可确定解码文本中未包括目标短文本模板中的槽位“${weatherid}”和“${origin}”,可认为解码文本不满足第二条件。[0179]再例如,目标短文本模板包括2个,第1个目标短文本模板“theweatherin${city}is${weatherid}${origin}.”中的所有槽位为“${city}”、“${weatherid}”和“${origin}”这3个槽位,第2个目标短文本模板“thelowesttemperatureis${mintemp}degrees.”中的所有槽位为“${mintemp}”这1个槽位,则目标段文本模板中的所有槽位为“${city}”、“${weatherid}”、“${origin}”和“${mintemp}”这4个槽位;解码文本中包括“${city}”、“${weatherid}”、“${origin}”和“${mintemp}”这4个槽位;通过槽位比对,可确定解码文本中包括目标短文本模板中的所有槽位,可认为解码文本满足第二条件。[0180]在一种可能的实现方式中,在第二条件为所述解码文本中包括所述目标短文本中的所有槽位值的情况下,判断解码文本是否满足第二条件时,可分别确定目标短文本中包括的所有槽位值以及解码文本中包括的所有槽位值,然后通过槽位值查找、比对等方式,确定解码文本中是否包括目标短文本中的所有槽位值。[0181]例如,目标短文本“theweatherinnewyorkisslightlycloudytoday.”中的所有槽位值为“newyork”、“slightlycloudy”和“today”这3个槽位值;解码文本中包括“newyork”这1个槽位值;通过槽位值比对,可确定解码文本中未包括目标短文本中的槽位值“slightlycloudy”和“today”,可认为解码文本不满足第二条件。[0182]再例如,目标短文本包括2个,第1个目标短文本“theweatherinnewyorkisslightlycloudytoday.”中的所有槽位值为“newyork”、“slightlycloudy”和“today”这3个槽位值,第2个目标短文本“thehighesttemperatureis28degrees.”中的所有槽位为“28”这1个槽位值,则目标段文本中的所有槽位为“newyork”、“slightlycloudy”、“today”和“28”这4个槽位值;解码文本中包括“newyork”、“slightlycloudy”、“today”和“28”这4个槽位值;通过槽位值比对,可确定解码文本中包括目标短文本中的所有槽位值,可认为解码文本满足第二条件。[0183]应当理解,以上仅对判断解码文本是否满足第二条件进行了示例性地说明,本领域技术人员还可通过其他方式进行判断,本技术对此不作限制。[0184]若解码文本不满足第二条件,则返回执行步骤s3021,继续对编码向量进行解码;[0185]若解码文本满足第二条件,则执行步骤s3025。[0186]步骤s3025,判断解码文本是否满足第三条件,其中,所述第三条件为:所述解码文本中包括所述系统动作文本模板中的所有预设的所述槽位,或者所述解码文本中包括所述系统动作文本中的所有所述槽位值。[0187]可选地,图7所示实施例中的步骤s3025中判断解码文本是否满足第三条件的具体方式,与图4所示实施例中的步骤s302中判断解码文本是否满足解码结束条件的具体方式类似,在此不做重复性描述。[0188]在一种可能的实现方式中,在解码文本满足第二条件,在执行步骤s3025之前,还可根据预设的语句休止符(即句号)生成条件,判断解码文本是否满足语句休止符生成条件。若解码文本满足语句休止符生成条件,则生成语句休止符后,执行步骤s3025;若解码文本不满足语句休止符生成条件,则不生成语句休止符,直接执行步骤s3025。[0189]若解码文本不满足第三条件,则返回执行步骤s3021,继续对编码向量进行解码;[0190]若解码文本满足第三条件,则执行步骤s303。[0191]步骤303,确定所述解码文本为用于回复所述用户查询信息的自然语言文本。[0192]可选地,图7所示实施例中的步骤s303与图4所示实施例中的步骤s303类似,在此不做重复性描述。[0193]本技术的实施例,能够对根据用户查询信息和预设的系统动作文本模板生成的系统动作文本进行编码,得到编码向量,并对编码向量进行解码,在解码过程中,依次判断解码文本是否满足第一条件、第二条件及第三条件,在解码文本均满足上述条件的情况下,确定解码文本满足解码结束条件,并确定解码文本为用于回复用户查询信息的自然语言文本。从而本技术实施例能够在解码过程中,通过对解码文本是否包括目标短文本模块中的所有槽位的判断,或者通过对解码文本是否包括目标短文本中的所有槽位值的判断,能够在解码过程中防止槽位信息错位,使得生成的用于回复用户查询信息的自然语言文本的表达更为紧凑;通过对解码文本是否包括系统动作文本模板中的所有槽位的判断,或者通过对解码文本是否包括系统动作文本中的所有槽位值的判断,能够使得系统动作文本中的所有短文本都参与解码,从而能够提高系统动作文本的关键语义信息在生成的自然语言文字中的表达的准确性,进而提高自然语言生成的准确性及稳定性。[0194]本技术实施例的自然语言生成方法,能够根据系统动作文本(根据用户查询信息和预设的系统动作文本模板生成)自适应地生成短语向量,不仅可以在不增加额外学习参数的前提下,使得注意力模块可以更好地关注到编码向量中的关键语义信息,提升注意力模块的效率,还可得到包括多粒度的向量的编码向量,在对编码向量进行解码的过程中,可根据系统动作文本中隐含的约束信息(例如包括的槽位)对编码向量的解码过程进行指导,使得系统动作文本中的关键信息在解码过程中得到充分的表达,从而可以解决自然语言生成过程中可能造成的语义信息丢失及表达不准确等问题,能够提高自然语言生成的准确性及稳定性。[0195]本技术实施例的自然语言生成方法,通过在编码向量中增加短语向量,使得自然语言生成过程中关键语义信息的表达更为准确,从而不仅可提高生成的自然语言文本的多样性及准确性,还可在一定程度上降低编码-解码模型对训练数据的依赖,提高编码-解码模型的稳定性,也使得编码-解码模型对新的输入数据具备一定程度的泛化能力,进而更好地提升对话系统(例如任务型对话系统)中自然语言生成的效果。[0196]本技术实施例的自然语言生成方法,不仅适用于各种类型的对话系统,也适用于其他领域中需要进行自然语言生成的场景,例如摘要生成、评论生成、机器翻译等。本技术对此不作限制。[0197]在一种可能的实现方式中,还可通过槽位在生成的自然语言文本中的准确度等指标,来对本技术实施例生成的自然语言文本进行评价。其中,槽位在生成的自然语言文本中的准确度可以是自然语言文本包括输入文本中的所有槽位;槽位在生成的自然语言文本中的准确度也可以是在输入文本中处于同一短文本中的槽位,在生成的自然语言文本中也处于同一句子中。本领域技术人员可根据实际情况设置生成的自然语言文本的评价指标,本技术对此不作限制。[0198]本技术的实施例提供了一种自然语言生成装置,包括:处理器以及用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现上述方法。[0199]本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。[0200]本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。[0201]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器(electricallyprogrammableread-only-memory,eprom或闪存)、静态随机存取存储器(staticrandom-accessmemory,sram)、便携式压缩盘只读存储器(compactdiscread-onlymemory,cd-rom)、数字多功能盘(digitalvideodisc,dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。[0202]这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。[0203]用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(instructionsetarchitecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(field-programmablegatearray,fpga)或可编程逻辑阵列(programmablelogicarray,pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。[0204]这里参照根据本技术实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。[0205]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。[0206]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。[0207]附图中的流程图和框图显示了根据本技术的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。[0208]也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或asic(applicationspecificintegratedcircuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。[0209]尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。[0210]以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本
技术领域
:的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本
技术领域
:的其它普通技术人员能理解本文披露的各实施例。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1