CN111737417B - 修正自然语言生成结果的方法和装置 - Google Patents

修正自然语言生成结果的方法和装置 Download PDF

Info

Publication number
CN111737417B
CN111737417B CN202010631294.3A CN202010631294A CN111737417B CN 111737417 B CN111737417 B CN 111737417B CN 202010631294 A CN202010631294 A CN 202010631294A CN 111737417 B CN111737417 B CN 111737417B
Authority
CN
China
Prior art keywords
template
sentence
determining
template sentence
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010631294.3A
Other languages
English (en)
Other versions
CN111737417A (zh
Inventor
李扬名
姚开盛
李小龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202010631294.3A priority Critical patent/CN111737417B/zh
Publication of CN111737417A publication Critical patent/CN111737417A/zh
Application granted granted Critical
Publication of CN111737417B publication Critical patent/CN111737417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis

Abstract

本说明书实施例提供一种修正自然语言生成结果的方法和装置。方法包括:首先获取本轮迭代中待修正的第一模板句子,该句子是针对对话动作而生成,该对话动作包括若干词槽。将第一模板句子输入指针改写器,指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子。然后对第二模板句子进行词槽提取,并判断所提取的词槽与若干词槽是否一致。若不一致,将第二模板句子确定为下一轮迭代的输入,并基于对话动作和该第二模板句子生成一条训练样本,添加到样本缓存器中。样本缓存器用于收集训练样本,所收集的训练样本用以训练指针改写器。

Description

修正自然语言生成结果的方法和装置
技术领域
本说明书一个或多个实施例涉及机器学习领域,尤其涉及自然语言生成,以及修改自然语言生成结果的方法和装置。
背景技术
随着人工智能和机器学习的快速发展,各种自然语言处理任务已广泛应用于多种业务实施场景。在例如智能客服,自动播报等多种业务场景中,会使用自动对话系统,生成自然语言的对话语句。
自动对话系统中的核心部件为自然语言生成NLG(Natural LanguageGeneration)系统,用于将一种意思表征,也就是对话动作DA(Dialogue Act)转换为自然语言的句子。一般地,对话动作DA中包含动作类型(act type)和一些词槽-槽值对,其中词槽(slot)表示信息类型,槽值表示对应类型的信息内容,而动作类型控制输出句子的句子风格。例如,一个对话动作DA可以是:
Inform(name=ZZ hotel, phone=6788888)
在以上DA中,inform为动作类型,name为一个词槽,槽值为ZZhotel;phone为另一个词槽,槽值为6788888。
而NLG系统则用于根据输入的对话动作DA,输出自然语言句子,表达输入DA中的核心意思。
已经通过多种方式构建了一些NLG系统。然而,现有的NLG系统仍然常常出现转换错误的情况,例如,遗漏一些词槽,或者词槽错位放置等,并且生成的句子也往往不够自然流畅。因此,希望能有改进的方案,可以对有瑕疵的自然语言生成结果进行修正,从而为对话系统提供更好的自然语句。
发明内容
本说明书一个或多个实施例描述了一种修正自然语言生成结果的方法和装置,通过对有误的模板句子迭代进行修正,获取到满足词槽一致性的更为准确的自然语言生成结果。
根据第一方面,提供了一种修正自然语言生成结果的方法,包括:
获取本轮迭代中待修正的第一模板句子,所述第一模板句子是针对第一对话动作而生成,所述第一对话动作包括若干词槽;
将所述第一模板句子输入指针改写器,所述指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子;其中,对于所述各个输出位置中任意的第一位置,通过从所述第一模板句子中进行复制的第一方式,或者通过重新生成的第二方式,得到该第一位置的字符;
对所述第二模板句子进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;
在不一致的情况下,将所述第二模板句子确定为下一轮迭代的输入,并基于所述第一对话动作和所述第二模板句子生成一条训练样本,添加到样本缓存器中,所述样本缓存器用于收集训练样本,所收集的训练样本用以训练所述指针改写器。
在一个实施例中,获取本轮迭代中待修正的第一模板句子,具体包括:从自然语言生成NLG系统获取其针对所述第一对话动作而生成的模板结果;对所述模板结果进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;在不一致的情况下,将所述模板结果作为所述本轮迭代中待修正的第一模板句子。
在不同例子中,所述NLG系统可以为基于K最近邻的KNN-NLG系统,或者,通过神经网络实现的NLG系统。
进一步的,在上述实施例中,还可以基于所述第一对话动作和所述第一模板句子生成一条训练样本,添加到所述样本缓存器中。
在另一实施例中,待修正的第一模板句子为上一轮迭代输出的模板句子。
根据一种实施方式,指针改写器得到该第一位置的字符的过程具体包括:确定用于表征该第一位置的第一状态向量;根据所述第一状态向量,分别确定采取第一方式的第一指针值,和采取第二方式的第二指针值;根据所述第一模板句子中各个输入位置的字符的嵌入向量以及所述第一状态向量,确定从所述各个输入位置复制字符到第一位置的第一概率分布;根据所述第一状态向量,确定从预定词集生成各个字符的第二概率分布;将所述第一指针值与所述第一概率分布结合,得到字符复制概率分布;以及将所述第二指针值与所述第二概率分布结合,得到字符生成概率分布;根据所述字符复制概率分布和所述字符生成概率分布,确定该第一位置的字符。
进一步的,在上述实施方式的一个实施例中,第一状态向量通过以下方式确定:利用时间递归网络,根据所述第一位置的前一位置对应的第二状态向量以及当前输入向量,确定所述第一状态向量,其中所述当前输入向量至少基于所述第一对话动作,以及所述前一位置的输出字符而确定。
更进一步的,在一个例子中,上述当前输入向量还基于所述第一模板句子的当前句子向量而确定,所述当前句子向量通过对所述第一模板句子中各个输入位置的字符的嵌入向量加权求和得到,所述加权求和的权重分布对应于从所述各个输入位置复制字符到所述前一位置的概率分布。
根据一种实施方式,基于所述第一对话动作和所述第二模板句子生成一条训练样本,具体包括:确定所述第一对话动作的第一参考模板;生成第一训练样本,其中包括,所述第一对话动作,所述第二模板句子,以及所述第一参考模板。
在一种实施方式中,以上方法还可以包括:通过采样方式生成伪训练样本;将所述伪训练样本添加到所述样本缓存器中。
进一步的,生成伪训练样本的过程可以包括:获取第二对话动作和与其对应的第二参考模板;从预定的模板数据库中随机采样第三模板句子;确定所述第三模板句子与所述第二参考模板在提取的词槽上的差异度;在所述差异度不为0且小于预设阈值的情况下,生成第一伪训练样本,所述第一伪训练样本包括,所述第二对话动作,所述第三模板句子,以及所述第二参考模板。
根据一种实施方式,上述方法还包括:从所述样本缓存器中提取多条训练样本,基于所述多条训练样本,通过强化学习方式训练所述指针改写器。
进一步的,上述多条训练样本包括任意的第三训练样本,所述第三训练样本包括第三对话动作,第三模板句子,第三参考模板;基于所述多条训练样本,训练所述指针改写器,具体包括:基于所述第三模板句子与所述第三对话动作在提取的词槽上的差异,确定第一奖励分数;基于所述第三模板句子的语言流畅度,确定第二奖励分数;基于所述第三模板句子和所述第三参考模板,确定所述第三训练样本对应的动作标签序列,并确定所述指针改写器在当前策略参数下,执行所述动作标签序列的概率,根据该概率,确定第三奖励分数;根据所述第一奖励分数,所述第二奖励分数和所述第三奖励分数,确定所述第三训练样本对应的总奖励分数;至少根据所述总奖励分数,更新所述指针改写器的所述当前策略参数。
在一个例子中,上述动作标签序列通过以下方式确定:对所述第三参考模板中的任意的第二位置,该第二位置对应第二字符,确定所述第三模板句子中是否存在所述第二字符;如果存在,确定第三模板句子中出现该第二字符的第三位置,将复制操作以及该第三位置作为该第二位置对应的动作标签;如果不存在,将生成操作和第二字符本身作为该第二位置对应的动作标签;基于所述第三参考模板中各个位置对应的动作标签,形成所述动作标签序列。
根据第二方面,提供了一种修正自然语言生成结果的装置,包括:
获取单元,配置为获取本轮迭代中待修正的第一模板句子,所述第一模板句子是针对第一对话动作而生成,所述第一对话动作包括若干词槽;
修正单元,配置为将所述第一模板句子输入指针改写器,所述指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子;其中,对于所述各个输出位置中任意的第一位置,通过从所述第一模板句子中进行复制的第一方式,或者通过重新生成的第二方式,得到该第一位置的字符;
判断单元,配置为对所述第二模板句子进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;
添加单元,配置为在不一致的情况下,将所述第二模板句子确定为下一轮迭代的输入,并基于所述第一对话动作和所述第二模板句子生成一条训练样本,添加到样本缓存器中,所述样本缓存器用于收集训练样本,所收集的训练样本用以训练所述指针改写器。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的迭代修正方式,通过反复迭代,一方面指针改写器反复修正错误的模板,直到纠正其错误。另一方面,可以在样本缓存器中逐步积累更多的训练样本,这些训练样本又可以用来训练和更新指针改写器,使其改写性能更加优异。通过以上的反复迭代和反复训练,最终可以得到有效的指针改写器,利用该指针改写器,可以快速准确地对NLG系统输出的有误的模板句子进行修正,得到更好的自然语言生成结果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的迭代修正系统的示意图;
图2示出根据一个实施例的修正自然语言生成结果的方法流程图;
图3示出根据一个实施例的修正自然语言生成结果的过程示意图;
图4示出在一个实施例中确定第一位置的字符的过程流程图;
图5示出在一个实施例中生成伪训练样本的方法流程图;
图6示出根据一个实施例训练指针改写器的方法流程图;
图7示出确定动作标签序列的一个示例;
图8示出根据一个实施例的修正自然语言生成结果的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,NLG系统用于将输入的对话动作DA转换为自然语言句子。为了提高NLG系统对DA的生成能力,可以采用去词汇化方式,将输入DA中的槽值隐去,将参考句子中相应的词汇槽值替换为DA中的词槽,由此生成与输入DA对应的输出模板。因此,NLG过程中很重要的一个步骤,就是在给定输入DA的情况下,正确地生成一个模板句子。然而,已有NLG系统对于模板句子的生成,常常出现各种错误和瑕疵。
为此,根据本说明书的实施例,提供一种迭代修正系统,可以利用该迭代修正系统,对NLG系统生成的模板句子进行修正,从而提供更好的自然语言生成结果。
图1为本说明书披露的一个实施例的迭代修正系统的示意图。如图1所示,以已有NLG系统100作为基准系统,在该基准系统之上,构建迭代修正系统200。迭代修正系统200包括样本缓存器210和指针改写器220,其中,样本缓存器210用于收集错误的模板句子作为训练样本,这些训练样本用于训练指针改写器220。指针改写器220用于对输入的有瑕疵的模板句子进行改写和修正,输出经过改进的模板句子。
当NLG系统100针对输入DA输出一个模板句子,而该模板句子被认为有误时(例如相对于输入DA词槽缺失,错位等等),迭代修正系统200就可以获取该错误的模板句子,一方面将其存入样本缓存器210,一方面将其输入指针改写器220。指针改写器220可以利用指针生成网络的方式,对该错误的模板句子进行改写,输出修正的模板句子。如果该修正的模板句子仍然有错误,则类似的一方面将其存入样本缓存器210,一方面再次输入指针改写器220,进行进一步修正。
如此,通过反复迭代,一方面指针改写器220可以反复修正错误的模板,直到纠正其错误。另一方面,可以在样本缓存器210中逐步积累更多的训练样本,这些训练样本又可以用来训练和更新指针改写器220,使其改写性能更加优异。通过以上的反复迭代和反复训练,最终可以得到有效的指针改写器220,利用该指针改写器,可以快速准确地对NLG系统输出的有误的模板句子进行修正,得到更好的自然语言生成结果。
下面具体描述以上构思的实施过程。
图2示出根据一个实施例的修正自然语言生成结果的方法流程图。可以理解,该方法流程可以由图1所示的迭代修正系统执行,该迭代修正系统可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来实现。需要理解,迭代修正系统可以通过多次迭代进行自然语言生成结果的修正,图2中示出了其中一轮迭代的实施过程。如图2所示,该修正过程至少包括以下步骤:步骤21,获取本轮迭代中待修正的第一模板句子,所述第一模板句子是针对第一对话动作而生成,所述第一对话动作包括若干词槽;步骤22,将第一模板句子输入指针改写器,所述指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子;步骤23,对第二模板句子进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;步骤24,在不一致的情况下,将第二模板句子确定为下一轮迭代的输入,并基于第一对话动作和第二模板句子生成一条训练样本,添加到样本缓存器中。下面描述以上各个步骤的具体实施方式。
首先,在步骤21,获取本轮迭代中待修正的模板句子,称为第一模板句子。假定当前迭代为第k轮迭代,则第一模板句子可记为y(k)。如上所述,第一模板句子是针对第一对话动作DA而生成的,第一对话动作DA可以是去词汇化后的对话动作,记为x。如此,第一对话动作DA=x中包括若干词槽。
如果本轮迭代是针对第一对话动作DA的首轮迭代,那么,第一模板句子来自于NLG系统。如果本轮迭代不是首轮迭代,第一模板句子来自于迭代修正系统中指针改写器的上一轮迭代的输出。下面分别进行描述。
在一个实施例中,本轮迭代为针对第一对话动作DA的首轮迭代,即k=1。在这样的情况下,步骤21具体可以包括以下过程。
首先,从自然语言生成NLG系统获取其针对第一对话动作DA而生成的模板结果。这里的NLG系统可以是各种已有的或将有的自然语言生成系统。例如,可以是基于K最近邻的KNN-NLG系统。在一个例子中,NLG系统可以是通过神经网络利用大量数据训练实现的NLG系统。假定NLG系统的生成逻辑可以表示为f,第一对话动作DA表示为x,则f(x)表示NLG系统生成的模板结果。
然后,对NLG系统输出的模板结果进行词槽提取,并判断所提取的词槽与第一对话动作DA中包含的词槽是否一致。
可以定义词槽提取函数g。则g(x)表示从输入的第一对话动作DA中提取的词槽,g(f(x))表示从NLG系统输出的模板结果进行词槽提取的结果。
如果以上二者不一致,即,g(f(x))≠ g(x),则说明该模板结果是有错误的模板,于是将该模板结果作为本轮迭代中待修正的第一模板句子。
在一个实施例中,还基于第一对话动作和该第一模板句子(即NLG输出的模板结果)生成一条训练样本,添加到样本缓存器中。
结合具体例子进行描述。
图3示出根据一个实施例的修正自然语言生成结果的过程示意图。图3左侧示出作为基准系统的NLG系统,右侧为迭代修正系统。
假定当前输入的对话动作DA具体为:Inform(name=ZZ hotel, phone=6788888)。在对其进行去词汇化后,得到的第一对话动作可表示为:
DA={inform,$NAME$,$PHONE$} (1)
其中,去除了具体的槽值,并用特定符号标示出词槽NAME和PHONE。
将这样的第一对话动作DA输入NLG系统,假定NLG为此生成的模板结果为:“$NAME$is a nice hotel”。对该模板结果进行词槽提取,仅可以提取出词槽NAME。相比于式(1)示出的词槽,二者不一致,该模板结果遗漏了词槽PHONE。于是,迭代修正系统可以将该模板结果作为错误样例,生成一条训练样本,添加到样本缓存器中,并且将该模板结果作为本轮待修正的模板句子。
另一方面,如果本轮迭代k不是首轮迭代,那么第一模板句子来自于指针改写器的上一轮迭代的输出。
通过以上方式,获取到本轮有待修正的第一模板句子y(k)。接下来,在步骤22,将第一模板句子y(k)输入指针改写器,指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子,记为y(k+1)。指针改写器的执行过程可以表示为:
Figure 147244DEST_PATH_IMAGE001
(2)
其中,x为第一对话动作DA,φPR表示指针改写器的策略函数。
在一种实施方式中,指针改写器可以采用指针生成网络的思路,对于每个输出位置,通过从第一模板句子中进行复制的第一方式,或者通过重新生成的第二方式,确定该输出位置的字符。下面结合任意输出位置,称为第一位置,描述确定字符的过程。
图4示出在一个实施例中确定第一位置的字符的过程流程图。如图4所示,首先在步骤41,确定用于表征第一位置的第一状态向量。将该第一位置记为位置j,则在该步骤中,确定表征该位置j的状态向量hj
需要说明的是,指针改写器采用强化学习的思路进行预测和训练,因此,针对每个输出位置进行预测的过程,可以理解为,首先确定该输出位置对应的环境状态(state),然后针对该环境状态确定动作(action)的过程。如此,针对位置j确定的状态向量hj即作为环境状态的表征。
在一个实施例中,利用时间递归网络,例如循环神经网络RNN,长短期记忆网络LSTM,递归地确定位置j的状态向量。具体的,可以根据网络前一时刻的状态向量,即该位置j的前一位置j-1对应的状态向量hj-1,以及当前输入向量,确定当前位置j的状态向量hj,其中当前输入向量可以基于第一对话动作x,以及前一位置的输出字符而确定。更具体的,在一个例子中,通过以下公式(3)确定位置j的状态向量hj
Figure 533226DEST_PATH_IMAGE002
) (3)
其中,
Figure 703176DEST_PATH_IMAGE003
表示前一输出位置的输出字符对应的向量。
基于以上的状态向量,接下来确定对该位置j采取的动作aj。可选动作首先划分为两种动作方式:进行复制操作的第一方式,和进行生成操作的第二方式。因此接下来需要分别确定每种方式的执行概率,以及进一步的每种方式下具体操作的概率分布。
于是,在步骤42,根据上述第一状态向量hj,分别确定采取第一方式的第一指针值,和采取第二方式的第二指针值,其中,第一指针值表示采取第一方式的概率,第二指针值表示采取第二方式的概率。
在一个具体例子中,通过以下公式(4)确定第一指针值:
Figure 567227DEST_PATH_IMAGE004
(4)
其中,
Figure 647178DEST_PATH_IMAGE005
为sigmoid函数,vh为可训练的参数。
相应的,将第二指针值确定为1-λj
此外,在步骤43,根据第一模板句子y(k)中各个输入位置i的字符的嵌入向量以及上述第一状态向量,确定从各个输入位置i复制字符到第一位置j的第一概率分布。具体的,可以通过以下公式组(5)和(6)计算上述第一概率分布。
Figure 672903DEST_PATH_IMAGE006
(5)+(6)
其中,
Figure 205515DEST_PATH_IMAGE007
表示第一模板句子y(k)中输入位置i的字符的嵌入向量,
Figure 607678DEST_PATH_IMAGE008
表示从第一模板句子中的输入位置i复制字符到当前输出位置j的概率,遍历各个输入位置i得到的
Figure 246863DEST_PATH_IMAGE008
构成上述第一概率分布。Wh,Wy,va均为可训练的参数。
另一方面,在步骤44,根据第一状态向量,确定从预定词集生成各个字符的第二概率分布。在一个例子中,可以通过以下公式(7),计算第二概率分布:
Figure 505806DEST_PATH_IMAGE009
(7)
其中,Wv是可训练的参数,并且对应于上述预定词集Vocab。
接着,在步骤45,将第一指针值与第一概率分布结合,得到字符复制概率分布;以及将第二指针值与第二概率分布结合,得到字符生成概率分布。具体的,得到的各个概率分布可以例如以下公式(8)所示:
Figure 463398DEST_PATH_IMAGE010
(8)
可以理解,公式(8)中第一个式子,表示执行c(i)操作的概率,c(i)操作即为从第一模板句子的输入位置i复制字符到当前输出位置j的操作。第二个式子表示针对当前输出位置j,从预定词集中生成词w的概率。
于是,在步骤46,根据上述字符复制概率分布和字符生成概率分布,确定该第一位置的字符。具体的,可以采取贪心算法,从以上公式(8)得到的各个概率分布中确定出最高的概率值,根据该最高概率值对应的复制操作或生成操作,确定第一位置j的字符。
以上描述了确定第一位置的字符的典型实施过程。然而,还可以对以上过程中的多个步骤进行修改或调整,得到更多的实施方式。
在一个例子中,可以在表征第一位置j的状态向量hj时,在当前输入向量中进一步引入输入的第一模板句子y(k)的信息。例如,可以将以上公式(3)修改为公式(9):
Figure 465989DEST_PATH_IMAGE011
) (9)
其中,c表示第一模板句子的句子表征向量,
Figure 192636DEST_PATH_IMAGE012
中的“;”表示向量之间的拼接。
在一个实施例中,句子表征向量c可以通过对第一模板句子中各个字符的嵌入向量的融合而得到。
进一步的,在一个例子中,该句子表征向量通过对第一模板句子y(k)中各个输入位置i的字符的嵌入向量加权求和得到,该加权求和的权重分布对应于从各个输入位置i复制字符到前一位置j-1的概率分布。在这样的情况下,该句子表征向量c可以记为cj-1,并通过以下公式(10)确定:
Figure 888060DEST_PATH_IMAGE013
(10)
其中,
Figure 598527DEST_PATH_IMAGE014
表示第一模板句子y(k)中输入位置i的字符的嵌入向量,
Figure 76913DEST_PATH_IMAGE015
表示从输入位置i复制字符到输出位置j-1的概率,可通过针对位置j-1按照公式(5)进行运算得到。
在其他例子中,还可以对以上公式(4)到公式(8)中的公式进行调整和修改,例如,添加或删除一些系数,修改非线性函数的形式等等,从而得到更多种具体实施例。
通过以上各种实施例,针对位置j,通过字符复制或字符生成的方式,确定出该输出位置的字符。如此,依次逐个地针对各个输出位置进行确定,得到的字符序列即构成修正的模板句子,即第二模板句子y(k+1)
延续图3的例子进行说明。在图3中,假定当前有待修正的第一模板句子为:“$NAME$ is a nice hotel”。指针改写器针对该第一模板句子,正在生成第二模板句子,假定已经确定了“the phone number for”4个输出位置的字符,正在确定第5个输出位置的字符,即当前输出位置j=5。
按照图4的方式,指针改写器根据上一位置的状态向量h4,输入DA,上一位置的输出字符“for”,共同确定当前输出位置的状态向量h5。然后,根据该状态向量h5,确定从第一模板句子的各个输入位置(共5个输入位置)复制字符的概率分布,以及从词集中重新生成各个词的概率分布,根据两方面的概率分布,确定最终执行的操作。假定对于该位置,指针改写器最终确定的动作为,从第一模板句子的第1个位置进行复制。于是,该输出位置输出的字符即为,词槽$NAME$。指针改写器逐个位置进行确定,最终生成修正后的第二模板句子,例如为“the phone number for $NAME$ is $PHONE$”。
回到图2,在步骤22指针改写器生成修正的第二模板句子之后,在步骤23,对该第二模板句子进行词槽提取,并判断所提取的词槽与基于第一对话动作DA提取的词槽是否一致。如果一致,则认为当前的第二模板句子为正确的模板句子,可以结束本次迭代流程。
如果不一致,则在步骤24,将第二模板句子确定为下一轮迭代的输入,并基于第一对话动作和该第二模板句子生成一条训练样本,添加到样本缓存器中。
可以理解,如果提取的词槽与输入DA中的词槽不一致,则说明第二模板句子仍然有误,需要进行进一步修正,因此,将其作为下一轮迭代的输入,继续进行改写修正。并且,在第二模板句子有误的情况下,该模板句子可作为错误样例,形成训练样本。具体的,可以基于第一对话动作和该第二模板句子,生成一条训练样本,添加到样本缓存器中。
为了便于模型训练,训练样本可以组织成(x,y,z)三元组的形式,其中,x为对话动作DA,y为针对对话动作x产生的错误的模板句子,z为该对话动作x的正确的参考模板。
因此,对于上述第二模板句子,为了生成训练样本,可以确定出第一对话动作对应的第一参考模板,该第一参考模板被认为是针对第一对话动作的正确的模板句子。第一参考模板可以通过人工标注而确定,也可以是从模板句子库中基于词槽提取比对结果而选择的模板,等等。如此,可以生成一条训练样本S,其中包括,第一对话动作,第二模板句子,以及第一参考模板。然后,将该条训练样本S添加到样本缓存器中。
根据以上描述,可以理解,样本缓存器中的训练样本至少可以有两部分来源,其一来自于NLG系统生成的错误模板(例如在首轮迭代之前添加到样本缓存器),其二来自于迭代修正系统自身在迭代修正过程中产生的错误模板。以上两种都是真实产生的错误模板。
根据一种实施方式,为了进一步丰富训练样本,避免真实产生的错误模板数量不足而导致的样本稀疏,还通过采样方式生成伪训练样本,并将这样的伪训练样本也添加到样本缓存器中。
图5示出在一个实施例中生成伪训练样本的方法流程图。如图5所示,在步骤51,获取第二对话动作x和与其对应的第二参考模板z。第二对话动作和第二参考模板构成的(x,z)对,可以从用于训练NLG系统的训练语料中获取。
在步骤52,从预定的模板数据库T中随机采样第三模板句子z’。
在步骤53,确定第三模板句子z’与第二参考模板z在提取的词槽上的差异度。例如,可以将该差异度d定义为d=∣g(z)-g(z’)∣,其中g为词槽提取函数。
在上述差异度不为0且小于预设阈值的情况下,可以认为,第三模板句子z’与第二参考模板相似但不同,可以视为针对第二对话动作x的错误模板。于是,在步骤54,生成第一伪训练样本,所述第一伪训练样本包括,第二对话动作x,第三模板句子z’,以及第二参考模板z。
如此,通过采样方式生成了伪训练样本,添加到样本缓存器中,以丰富其中的训练样本。
在一个实施例中,样本缓存器具有固定容量大小,例如可以存储500条训练样本。当添加的训练样本达到其容量后,当采集到新的训练样本时,则将已有训练样本中添加时间最早的样本删除,再将该新的训练样本加入。
样本缓存器中收集的训练样本可以用于对指针改写器进行训练和更新。实践中,可以在每个训练周期,对指针改写器进行一次再训练。该训练周期可以根据需要设定,例如,指针改写器每执行若干次迭代改写为一个训练周期,或者,指针改写器每针对若干条输入DA完成模板修正为一个训练周期,或者,样本缓存器中每新增若干条训练样本为一个训练周期,等等。下面描述对指针改写器进行训练的过程。
为了训练指针改写器,在每个训练周期,从样本缓存器中提取多条训练样本。在一个实施例中,可以按照一定比例,从样本缓存器中随机抽取多条训练样本。在另一实施例中,可以按照一定概率分布进行样本抽取,其中较新的训练样本具有更高的被选中概率。然后,基于上述提取出的多条训练样本,通过强化学习方式训练指针改写器。
下面以任意一条训练样本为例,描述训练指针改写器的方式。简单起见,该任意训练样本表示为(x,y,z),其中x为对话动作DA,y为错误模板句子,z为参考模板句子。
图6示出根据一个实施例训练指针改写器的方法流程图。如图6所示,针对以上的训练样本(x,y,z),执行以下步骤。
在步骤61,基于错误模板句子y与对话动作x在提取的词槽上的差异度,确定第一奖励分数。根据强化学习中设定奖励分数的作用,第一奖励分数可设置为与上述差异负相关,差异越大,第一奖励分数越低。
具体的,在一个例子中,第一奖励分数可表示为rSC,并通过以下公式(11)确定:
Figure 985963DEST_PATH_IMAGE016
(11)
其中,g为词槽提取函数。
在步骤62,基于错误模板句子y的语言流畅度,确定第二奖励分数rLM
实践中,语言流畅度可通过多种方式衡量,例如可以预先训练一个流畅度评估模型,通过将上述句子y输入流畅度评估模型,得到句子y的流畅度。
在一个实施例中,还可以采用已有的困惑度PPL评估,得到句子y的语言流畅度,PPL值越高,流畅度越低,第二奖励分数越低。在一个例子中,第二奖励分数rLM可通过以下公式(12)确定:
Figure 524392DEST_PATH_IMAGE017
(12)
此外,在步骤63,基于错误模板句子y和参考模板句子z,确定该条训练样本对应的动作标签dπ序列,即正确的动作序列。该动作标签序列用于反映,假定从错误模板句子y转换到参考模板句子z,在每个输出位置应该执行的操作动作。然后,确定指针改写器在当前策略参数下,执行该动作标签序列的概率,根据该概率,确定第三奖励分数rDS。在一个例子中,第三奖励分数rDS可通过以下公式(13)确定:
Figure 518893DEST_PATH_IMAGE018
(13)
其中,
Figure 800969DEST_PATH_IMAGE019
是第j输出位置对应的动作标签,L为参考模板句子z的长度。
下面结合一个例子,描述确定动作标签序列的过程。图7示出确定动作标签序列的一个示例。具体的,图7上侧示出错误模板y的一个例子,下侧示出参考模板z的一个例子。为了表述的清楚,将错误模板y中各个位置称为输入位置,将参考模板z中各个位置称为输出位置。为了确定出从模板y到模板z进行修正的动作标签,对于参考模板z中的每个输出位置j,读取该输出位置j的字符,判断错误模板句子y中是否存在该字符。图7下侧列表中dc一行即示出,参考模板中对应位置的字符是否存在于错误模板y中,其中1表示存在,0表示不存在。
对于每个输出位置j,如果错误模板中存在对应字符,则确定错误模板句子中出现该字符的输入位置i,将复制操作c以及该输入位置i作为输出位置j对应的动作标签c(i)。如果错误模板中不存在该字符,则将生成操作g和该字符本身作为该输出位置j对应的动作标签。
可以看到,在图7下侧列表中,在dc值为1的情况下,对应的dl值表示输入位置i的值;在dc值为0的情况下,dl值统一表示为-1,以区别于输入位置i取值范围。综合dc和dl行的信息,可以得到最后一行的动作标签dπ。例如,c(3)表示从错误模板y的第3个位置复制字符,g(of)表示生成“of”这个字符。
如此,基于参考模板z中各个位置对应的动作标签dπ,可以形成上述动作标签序列。基于这样的动作标签序列,按照公式(13)进行计算,可以得到该条训练样本对应的第三奖励分数rDS
回到图6,需要理解,针对训练样本(x,y,z)分别确定出第一奖励分数,第二奖励分数,第三奖励分数的步骤61-63,可以以任何相对顺序执行。
在确定出以上第一至第三奖励分数的基础上,在步骤64,根据第一奖励分数rSC,第二奖励分数rLM和第三奖励分数rDS,确定该训练样本对应的总奖励分数r(a)。具体的,在一个例子中可对以上三种奖励分数进行加权求和,得到总奖励分数。这可以表示为:
Figure 767788DEST_PATH_IMAGE020
(14)
其中,
Figure 805014DEST_PATH_IMAGE021
Figure 457450DEST_PATH_IMAGE022
Figure 605535DEST_PATH_IMAGE023
为对应的权重因子。
于是,在步骤65,至少根据上述总奖励分数r(a),更新指针改写器的当前策略参数。总体来说,根据强化学习的训练目标和构思,以使得总奖励分数增大为目标,来更新指针改写器。
在一个具体例子中,可以通过以下公式(15),确定指针改写器中策略参数的梯度:
Figure 161281DEST_PATH_IMAGE024
(15)
其中,θ为指针改写器中的策略参数,r(a)为上述总奖励分数,b为与训练样本有关的参数,aj是指针改写器在输出位置j实际执行的动作。
如此,根据以上确定的梯度,以及学习步长,可以调整指针改写器中的策略参数,从而实现对指针改写器的更新和再训练。
回顾以上过程,在迭代修正系统中,指针改写器不断针对错误模板进行迭代修正,同时积累训练样本,再利用积累的训练样本反复对指针改写器进行训练和更新,最终可以得到有效的指针改写器。利用该指针改写器,可以快速准确地对NLG系统输出的有误的模板句子进行修正,得到更好的自然语言生成结果。
根据另一方面的实施例,提供了一种修正自然语言生成结果的装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图8示出根据一个实施例的修正自然语言生成结果的装置的示意性框图。如图8所示,该装置800包括:
获取单元81,配置为获取本轮迭代中待修正的第一模板句子,所述第一模板句子是针对第一对话动作而生成,所述第一对话动作包括若干词槽;
修正单元82,配置为将所述第一模板句子输入指针改写器,所述指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子;其中,对于所述各个输出位置中任意的第一位置,通过从所述第一模板句子中进行复制的第一方式,或者通过重新生成的第二方式,得到该第一位置的字符;
判断单元83,配置为对所述第二模板句子进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;
添加单元84,配置为在不一致的情况下,将所述第二模板句子确定为下一轮迭代的输入,并基于所述第一对话动作和所述第二模板句子生成一条训练样本,添加到样本缓存器中,所述样本缓存器用于收集训练样本,所收集的训练样本用以训练所述指针改写器。
在一个实施例中,获取单元81配置为:从自然语言生成NLG系统获取其针对所述第一对话动作而生成的模板结果;对所述模板结果进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;在不一致的情况下,将所述模板结果作为所述本轮迭代中待修正的第一模板句子。
上述NLG系统可以是基于K最近邻的KNN-NLG系统,或者,通过神经网络实现的NLG系统。
在一个实施例中,所述添加单元84还配置为,基于所述第一对话动作和所述第一模板句子生成一条训练样本,添加到所述样本缓存器中。
根据一个实施例,待修正的第一模板句子可以为上一轮迭代输出的模板句子。
根据一种实施方式,上述指针改写器具体用于:确定用于表征该第一位置的第一状态向量;根据所述第一状态向量,分别确定采取第一方式的第一指针值,和采取第二方式的第二指针值;根据所述第一模板句子中各个输入位置的字符的嵌入向量以及所述第一状态向量,确定从所述各个输入位置复制字符到第一位置的第一概率分布;根据所述第一状态向量,确定从预定词集生成各个字符的第二概率分布;将所述第一指针值与所述第一概率分布结合,得到字符复制概率分布;以及将所述第二指针值与所述第二概率分布结合,得到字符生成概率分布;根据所述字符复制概率分布和所述字符生成概率分布,确定该第一位置的字符。
进一步的,在一个实施例中,指针改写器确定用于表征该第一位置的第一状态向量,具体包括:利用时间递归网络,根据所述第一位置的前一位置对应的第二状态向量以及当前输入向量,确定所述第一状态向量,其中所述当前输入向量至少基于所述第一对话动作,以及所述前一位置的输出字符而确定。
更进一步的,在一个例子中,当前输入向量还基于所述第一模板句子的当前句子表征向量而确定,所述当前句子表征向量通过对所述第一模板句子中各个输入位置的字符的嵌入向量加权求和得到,所述加权求和的权重分布对应于从所述各个输入位置复制字符到所述前一位置的概率分布。
根据一种实施方式,添加单元84具体配置为:确定所述第一对话动作的第一参考模板;生成第一训练样本,其中包括,所述第一对话动作,所述第二模板句子,以及所述第一参考模板。
根据一种实施方式,装置800还包括伪样本生成单元85,配置为:通过采样方式生成伪训练样本;将所述伪训练样本添加到所述样本缓存器中。
在一个实施例中,伪样本生成单元85具体配置为:获取第二对话动作和与其对应的第二参考模板;从预定的模板数据库中随机采样第三模板句子;确定所述第三模板句子与所述第二参考模板在提取的词槽上的差异度;在所述差异度不为0且小于预设阈值的情况下,生成第一伪训练样本,所述第一伪训练样本包括,所述第二对话动作,所述第三模板句子,以及所述第二参考模板。
根据一种实施方式,装置800还包括训练单元86,配置为:从所述样本缓存器中提取多条训练样本,基于所述多条训练样本,通过强化学习方式训练所述指针改写器。
在一个实施例中,所述多条训练样本包括任意的第三训练样本,所述第三训练样本包括第三对话动作,第三模板句子,第三参考模板;所述训练单元86具体配置为:基于所述第三模板句子与所述第三对话动作在提取的词槽上的差异,确定第一奖励分数;基于所述第三模板句子的语言流畅度,确定第二奖励分数;基于所述第三模板句子和所述第三参考模板,确定所述第三训练样本对应的动作标签序列,并确定所述指针改写器在当前策略参数下,执行所述动作标签序列的概率,根据该概率,确定第三奖励分数;根据所述第一奖励分数,所述第二奖励分数和所述第三奖励分数,确定所述第三训练样本对应的总奖励分数;至少根据所述总奖励分数,更新所述指针改写器的所述当前策略参数。
进一步的,在一个实施例中,上述动作标签序列通过以下方式确定:对所述第三参考模板中的任意的第二位置,该第二位置对应第二字符,确定所述第三模板句子中是否存在所述第二字符;如果存在,确定第三模板句子中出现该第二字符的第三位置,将复制操作以及该第三位置作为该第二位置对应的动作标签;如果不存在,将生成操作和第二字符本身作为该第二位置对应的动作标签;基于所述第三参考模板中各个位置对应的动作标签,形成所述动作标签序列。
通过以上装置,实现对自然语言生成结果的修正。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (30)

1.一种修正自然语言生成结果的方法,包括:
获取本轮迭代中待修正的第一模板句子,所述第一模板句子是针对第一对话动作而生成,所述第一对话动作包括若干词槽;
将所述第一模板句子输入指针改写器,所述指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子;其中,对于所述各个输出位置中任意的第一位置,通过从所述第一模板句子中进行复制的第一方式,或者通过重新生成的第二方式,得到该第一位置的字符;
对所述第二模板句子进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;
在不一致的情况下,将所述第二模板句子确定为下一轮迭代的输入,并基于所述第一对话动作和所述第二模板句子生成一条训练样本,添加到样本缓存器中,所述样本缓存器用于收集训练样本,所收集的训练样本用以训练所述指针改写器。
2.根据权利要求1所述的方法,其中,获取本轮迭代中待修正的第一模板句子,包括:
从自然语言生成NLG系统获取其针对所述第一对话动作而生成的模板结果;
对所述模板结果进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;
在不一致的情况下,将所述模板结果作为所述本轮迭代中待修正的第一模板句子。
3.根据权利要求2所述的方法,其中,所述NLG系统为基于K最近邻的KNN-NLG系统,或者,通过神经网络实现的NLG系统。
4.根据权利要求2所述的方法,还包括,基于所述第一对话动作和所述第一模板句子生成一条训练样本,添加到所述样本缓存器中。
5.根据权利要求1所述的方法,其中,所述待修正的第一模板句子为上一轮迭代输出的模板句子。
6.根据权利要求1所述的方法,其中,得到该第一位置的字符,具体包括:
确定用于表征该第一位置的第一状态向量;
根据所述第一状态向量,分别确定采取所述第一方式的第一指针值,和采取所述第二方式的第二指针值;
根据所述第一模板句子中各个输入位置的字符的嵌入向量以及所述第一状态向量,确定从所述各个输入位置复制字符到第一位置的第一概率分布;
根据所述第一状态向量,确定从预定词集生成各个字符的第二概率分布;
将所述第一指针值与所述第一概率分布结合,得到字符复制概率分布;以及将所述第二指针值与所述第二概率分布结合,得到字符生成概率分布;
根据所述字符复制概率分布和所述字符生成概率分布,确定该第一位置的字符。
7.根据权利要求6所述的方法,其中,确定用于表征该第一位置的第一状态向量,包括:
利用时间递归网络,根据所述第一位置的前一位置对应的第二状态向量以及当前输入向量,确定所述第一状态向量,其中所述当前输入向量至少基于所述第一对话动作,以及所述前一位置的输出字符而确定。
8.根据权利要求7所述的方法,其中,所述当前输入向量还基于所述第一模板句子的当前句子表征向量而确定,所述当前句子表征向量通过对所述第一模板句子中各个输入位置的字符的嵌入向量加权求和得到,所述加权求和的权重分布对应于从所述各个输入位置复制字符到所述前一位置的概率分布。
9.根据权利要求1所述的方法,其中,基于所述第一对话动作和所述第二模板句子生成一条训练样本,包括:
确定所述第一对话动作的第一参考模板;
生成第一训练样本,其中包括,所述第一对话动作,所述第二模板句子,以及所述第一参考模板。
10.根据权利要求1所述的方法,还包括,
通过采样方式生成伪训练样本;
将所述伪训练样本添加到所述样本缓存器中。
11.根据权利要求10所述的方法,其中,通过采样方式生成伪训练样本,包括:
获取第二对话动作和与其对应的第二参考模板;
从预定的模板数据库中随机采样第三模板句子;
确定所述第三模板句子与所述第二参考模板在提取的词槽上的差异度;
在所述差异度不为0且小于预设阈值的情况下,生成第一伪训练样本,所述第一伪训练样本包括,所述第二对话动作,所述第三模板句子,以及所述第二参考模板。
12.根据权利要求1所述的方法,还包括:
从所述样本缓存器中提取多条训练样本,
基于所述多条训练样本,通过强化学习方式训练所述指针改写器。
13.根据权利要求12所述的方法,其中,所述多条训练样本包括任意的第三训练样本,所述第三训练样本包括第三对话动作,第三模板句子,第三参考模板;
基于所述多条训练样本,训练所述指针改写器,具体包括:
基于所述第三模板句子与所述第三对话动作在提取的词槽上的差异度,确定第一奖励分数;
基于所述第三模板句子的语言流畅度,确定第二奖励分数;
基于所述第三模板句子和所述第三参考模板,确定所述第三训练样本对应的动作标签序列,并确定所述指针改写器在当前策略参数下,执行所述动作标签序列的概率,根据该概率,确定第三奖励分数;
根据所述第一奖励分数,所述第二奖励分数和所述第三奖励分数,确定所述第三训练样本对应的总奖励分数;
至少根据所述总奖励分数,更新所述指针改写器的所述当前策略参数。
14.根据权利要求13所述的方法,其中,基于所述第三模板句子和所述第三参考模板,确定所述第三训练样本对应的动作标签序列,包括:
对所述第三参考模板中的任意的第二位置,该第二位置对应第二字符,确定所述第三模板句子中是否存在所述第二字符;
如果存在,确定第三模板句子中出现该第二字符的第三位置,将复制操作以及该第三位置作为该第二位置对应的动作标签;
如果不存在,将生成操作和第二字符本身作为该第二位置对应的动作标签;
基于所述第三参考模板中各个位置对应的动作标签,形成所述动作标签序列。
15.一种修正自然语言生成结果的装置,包括:
获取单元,配置为获取本轮迭代中待修正的第一模板句子,所述第一模板句子是针对第一对话动作而生成,所述第一对话动作包括若干词槽;
修正单元,配置为将所述第一模板句子输入指针改写器,所述指针改写器依次逐个确定待输出句子中各个输出位置的字符,从而生成修正的第二模板句子;其中,对于所述各个输出位置中任意的第一位置,通过从所述第一模板句子中进行复制的第一方式,或者通过重新生成的第二方式,得到该第一位置的字符;
判断单元,配置为对所述第二模板句子进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;
添加单元,配置为在不一致的情况下,将所述第二模板句子确定为下一轮迭代的输入,并基于所述第一对话动作和所述第二模板句子生成一条训练样本,添加到样本缓存器中,所述样本缓存器用于收集训练样本,所收集的训练样本用以训练所述指针改写器。
16.根据权利要求15所述的装置,其中,所述获取单元配置为:
从自然语言生成NLG系统获取其针对所述第一对话动作而生成的模板结果;
对所述模板结果进行词槽提取,并判断所提取的词槽与所述若干词槽是否一致;
在不一致的情况下,将所述模板结果作为所述本轮迭代中待修正的第一模板句子。
17.根据权利要求16所述的装置,其中,所述NLG系统为基于K最近邻的KNN-NLG系统,或者,通过神经网络实现的NLG系统。
18.根据权利要求16所述的装置,所述添加单元还配置为,基于所述第一对话动作和所述第一模板句子生成一条训练样本,添加到所述样本缓存器中。
19.根据权利要求15所述的装置,其中,所述待修正的第一模板句子为上一轮迭代输出的模板句子。
20.根据权利要求15所述的装置,其中,所述指针改写器具体用于:
确定用于表征该第一位置的第一状态向量;
根据所述第一状态向量,分别确定采取第一方式的第一指针值,和采取第二方式的第二指针值;
根据所述第一模板句子中各个输入位置的字符的嵌入向量以及所述第一状态向量,确定从所述各个输入位置复制字符到第一位置的第一概率分布;
根据所述第一状态向量,确定从预定词集生成各个字符的第二概率分布;
将所述第一指针值与所述第一概率分布结合,得到字符复制概率分布;以及将所述第二指针值与所述第二概率分布结合,得到字符生成概率分布;
根据所述字符复制概率分布和所述字符生成概率分布,确定该第一位置的字符。
21.根据权利要求20所述的装置,其中,所述确定用于表征该第一位置的第一状态向量,包括:
利用时间递归网络,根据所述第一位置的前一位置对应的第二状态向量以及当前输入向量,确定所述第一状态向量,其中所述当前输入向量至少基于所述第一对话动作,以及所述前一位置的输出字符而确定。
22.根据权利要求21所述的装置,其中,所述当前输入向量还基于所述第一模板句子的当前句子表征向量而确定,所述当前句子表征向量通过对所述第一模板句子中各个输入位置的字符的嵌入向量加权求和得到,所述加权求和的权重分布对应于从所述各个输入位置复制字符到所述前一位置的概率分布。
23.根据权利要求15所述的装置,其中,所述添加单元配置为:
确定所述第一对话动作的第一参考模板;
生成第一训练样本,其中包括,所述第一对话动作,所述第二模板句子,以及所述第一参考模板。
24.根据权利要求15所述的装置,还包括伪样本生成单元,配置为:
通过采样方式生成伪训练样本;
将所述伪训练样本添加到所述样本缓存器中。
25.根据权利要求24所述的装置,其中,伪样本生成单元具体配置为:
获取第二对话动作和与其对应的第二参考模板;
从预定的模板数据库中随机采样第三模板句子;
确定所述第三模板句子与所述第二参考模板在提取的词槽上的差异度;
在所述差异度不为0且小于预设阈值的情况下,生成第一伪训练样本,所述第一伪训练样本包括,所述第二对话动作,所述第三模板句子,以及所述第二参考模板。
26.根据权利要求15所述的装置,还包括训练单元,配置为:
从所述样本缓存器中提取多条训练样本,
基于所述多条训练样本,通过强化学习方式训练所述指针改写器。
27.根据权利要求26所述的装置,其中,所述多条训练样本包括任意的第三训练样本,所述第三训练样本包括第三对话动作,第三模板句子,第三参考模板;
所述训练单元具体配置为:
基于所述第三模板句子与所述第三对话动作在提取的词槽上的差异度,确定第一奖励分数;
基于所述第三模板句子的语言流畅度,确定第二奖励分数;
基于所述第三模板句子和所述第三参考模板,确定所述第三训练样本对应的动作标签序列,并确定所述指针改写器在当前策略参数下,执行所述动作标签序列的概率,根据该概率,确定第三奖励分数;
根据所述第一奖励分数,所述第二奖励分数和所述第三奖励分数,确定所述第三训练样本对应的总奖励分数;
至少根据所述总奖励分数,更新所述指针改写器的所述当前策略参数。
28.根据权利要求27所述的装置,其中,所述动作标签序列通过以下方式确定:
对所述第三参考模板中的任意的第二位置,该第二位置对应第二字符,确定所述第三模板句子中是否存在所述第二字符;
如果存在,确定第三模板句子中出现该第二字符的第三位置,将复制操作以及该第三位置作为该第二位置对应的动作标签;
如果不存在,将生成操作和第二字符本身作为该第二位置对应的动作标签;
基于所述第三参考模板中各个位置对应的动作标签,形成所述动作标签序列。
29.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-14中任一项的所述的方法。
30.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-14中任一项所述的方法。
CN202010631294.3A 2020-07-03 2020-07-03 修正自然语言生成结果的方法和装置 Active CN111737417B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010631294.3A CN111737417B (zh) 2020-07-03 2020-07-03 修正自然语言生成结果的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010631294.3A CN111737417B (zh) 2020-07-03 2020-07-03 修正自然语言生成结果的方法和装置

Publications (2)

Publication Number Publication Date
CN111737417A CN111737417A (zh) 2020-10-02
CN111737417B true CN111737417B (zh) 2020-11-17

Family

ID=72654003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010631294.3A Active CN111737417B (zh) 2020-07-03 2020-07-03 修正自然语言生成结果的方法和装置

Country Status (1)

Country Link
CN (1) CN111737417B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966520B (zh) * 2021-02-03 2023-11-14 支付宝(杭州)信息技术有限公司 自然语言生成方法及装置
CN113326367B (zh) * 2021-06-30 2023-06-16 四川启睿克科技有限公司 基于端到端文本生成的任务型对话方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9721570B1 (en) * 2013-12-17 2017-08-01 Amazon Technologies, Inc. Outcome-oriented dialogs on a speech recognition platform
US10467509B2 (en) * 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Computationally-efficient human-identifying smart assistant computer
CN111191439A (zh) * 2019-12-16 2020-05-22 浙江大搜车软件技术有限公司 自然语句生成的方法、装置、计算机设备和存储介质
CN111125309A (zh) * 2019-12-23 2020-05-08 中电云脑(天津)科技有限公司 自然语言处理方法、装置及计算设备、存储介质
CN111309915B (zh) * 2020-03-03 2022-09-13 爱驰汽车有限公司 联合学习的自然语言训练方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN111737417A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
US11972365B2 (en) Question responding apparatus, question responding method and program
CN112287670A (zh) 文本纠错方法、系统、计算机设备及可读存储介质
CN111309915A (zh) 联合学习的自然语言训练方法、系统、设备及存储介质
US20060149543A1 (en) Construction of an automaton compiling grapheme/phoneme transcription rules for a phoneticizer
CN112597063B (zh) 缺陷代码定位的方法、装置以及存储介质
CN111737417B (zh) 修正自然语言生成结果的方法和装置
CN110795938A (zh) 文本序列分词方法、装置及存储介质
CN115293138B (zh) 一种文本纠错方法及计算机设备
CN115293139B (zh) 一种语音转写文本纠错模型的训练方法和计算机设备
US20220129450A1 (en) System and method for transferable natural language interface
US20200167660A1 (en) Automated heuristic deep learning-based modelling
EP4204968A1 (en) Unit test case generation with transformers
EP3832485A1 (en) Question answering systems
CN112084301B (zh) 文本修正模型的训练方法及装置、文本修正方法及装置
JP7138467B2 (ja) 訳出完了判定装置、翻訳装置、訳出完了判定モデル学習装置、およびプログラム
WO2021001517A1 (en) Question answering systems
CN116700780A (zh) 一种基于抽象语法树代码表征的代码补全方法
CN114528387A (zh) 基于对话流自举的深度学习对话策略模型构建方法和系统
CN113806489A (zh) 用于数据集创建的方法、电子设备和计算机程序产品
CN114091414A (zh) 用于改写叙事性文本的方法、设备、装置和介质
JP2023542057A (ja) グラフベースの時間的分類を用いたニューラルネットワークの訓練
JP5635025B2 (ja) 助詞誤り訂正装置、方法、及びプログラム
CN117057414A (zh) 一种面向文本生成的多步协作式提示学习的黑盒知识蒸馏方法及系统
JP5980142B2 (ja) 学習データ選択装置、識別的音声認識精度推定装置、学習データ選択方法、識別的音声認識精度推定方法、プログラム
CN114065741B (zh) 用于验证表述的真实性的方法、设备、装置和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant