技术领域
[0001] 本
发明涉及对话系统技术领域,特别是涉及一种对话系统中的融合句子语法结构的句子多样性生成方法及系统。
背景技术
[0002] 对话系统是
自然语言处理的一个研究方向,它的研究目的是根据用户与对话
机器人的对话历史,生成对话历史的下一句话。在对话系统领域,已有大量相关的技术产生,主要包括检索式对话系统、生成式对话系统、检索式与生成式混合的对话系统。
[0003] 在现实中,对于同一个对话历史,存在多个不同的回答,这是对话系统中的句子多样性生成问题。然而,
现有技术的对话系统中,其句子的生成都没有利用回答句子的语法结构信息,导致有时候生成的句子关联性不强,不能实现很好的对话效果。
发明内容
[0004] 为克服上述现有技术存在的不足,本发明之目的在于提供一种对话系统中的句子多样性生成方法及系统,以提高对话系统中句子生成的多样性。
[0005] 为达上述及其它目的,本发明提出一种对话系统中的句子多样性生成方法,包括如下步骤:
[0006] 步骤S1,提取回答句子的依存树,并将所述依存树转为无向图;
[0007] 步骤S2,将所述回答句子和步骤S1获得的无向图输入图结构转换器,得到所述回答句子的
特征向量;
[0008] 步骤S3,使用所述序列结构转换器提取所述回答句子的对话历史的特征向量;
[0009] 步骤S4,将步骤S2获得的所述回答句子的特征向量和步骤S3获得的对话历史的特征向量输入条件变分自动
编码器,得到所述对话历史的新的回答句子。
[0010] 优选地,步骤S1进一步包括:
[0011] 步骤S100,利用开源的自然语言处理工具提取所述回答句子的依存树;
[0012] 步骤S101,将所述依存树用
有向图表示,所述依存树中的
节点是句子的词语,依存树中的有向边代表词语间的句法关系;
[0013] 步骤S102,将所述有向图中的有向边改为无向边,得到所述回答句子的无向图。
[0014] 优选地,于步骤S1中,所述无向图用邻接矩阵表示。
[0015] 优选地,若所述回答句子有n个单词,则回答句子的邻接矩阵为维度为n*n的矩阵M,所述邻接矩阵M中第i行第j列的值Mij由以下条件决定:
[0016]
[0017] 优选地,步骤S2进一步包括
[0018] 步骤S200,对所述回答句子的特征V和无向图的邻接矩阵M进行Graph Attention操作;
[0019] 步骤S201,将Graph Attention操作的结果与特征V相加,进行层归一化操作;
[0020] 步骤S202,将步骤S201的结 输入一层
前馈神经网络,并再进行层归一化操作,进而得到所述回答句子的特征向量。
[0021] 优选地,于步骤S3中,获取所述对话历史的m个句子,将m个句子按照顺序排列,将m个句子按照顺序首位相连地拼接成一个句子C,并且将该句子C输入到所述序列结构转换器,得到所述对话历史的特征向量。
[0022] 优选地,所述条件变分自动编码器由编码器和
解码器构成,将步骤S3获得的所述对话历史的特征向量E’输入条件变分自动编码器的编码器,得到一个正态分布z’,从该正态分布z’
采样多个样本,然后分别输入解码器,得到多个不同的回答句子。
[0023] 为达到上述目的,本发明还提供一种对话系统中的句子多样性生成系统,包括:
[0024] 回答句子处理单元,用于提取回答句子的依存树,并将所述依存树转为无向图;
[0025] 回答句子特征向量提取单元,用于将所述回答句子和所述回答句子处理单元获得的所述回答句子的无向图输入图结构转换器,以获得所述回答句子的特征向量;
[0026] 对话历史特征提取单元,用于使用序列结构转换器提取所述回答句子的对话历史的特征向量;
[0027] 多样性句子生成单元,用于将所述回答句子特征向量提取单元的回答句子的特征向量和所述对话历史特征提取单元的对话历史的特征向量输入条件变分自动编码器,得到所述对话历史的新的回答句子。
[0028] 优选地,于所述回答句子处理单元中,所述依存树转为无向图的转换方法为将有向边改为无向边,所述无向图用邻接矩阵表示。
[0029] 优选地,于所述对话历史特征提取单元中,获取对话历史的m个句子,将m个句子按照顺序排列,将m个句子按照顺序首位相连地拼接成一个句子C,并且将该句子C输入到所述序列结构转换器,得到对话历史的特征向量。
[0030] 与现有技术相比,本发明一种对话系统中的句子多样性生成方法及系统通过提取回答句子的依存树,将依存树转为无向图,然后将回答句子和无向图输入图结构转换器得到所述回答句子的特征向量,并使用序列结构转换器提取所述回答句子的对话历史的特征向量,最后将获得的所述回答句子的特征向量和获得的对话历史的特征向量输入条件变分自动编码器,得到所述对话历史的新的回答句子,实现了提高对话系统中句子生成的多样性的目的。
附图说明
[0031] 图1为本发明一种对话系统中的句子多样性生成方法的步骤
流程图;
[0032] 图2为本发明具体
实施例中依存树的示意图;
[0033] 图3为本发明具体实施例中依存树用有向图表示的示意图;
[0034] 图4为本发明具体实施例中依存树转为无向图示意图;
[0035] 图5为本发明具体实施例中回答句子的邻接矩阵示意图;
[0036] 图6为本发明具体实施例中图结构转换器(Graph Transformer)的结构图;
[0037] 图7为本发明具体实施例中条件变分自动编码器的结构图;
[0038] 图8为本发明一种对话系统中的句子多样性生成系统的系统架构图。
具体实施方式
[0039] 以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本
说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
[0040] 图1为本发明一种对话系统中的句子多样性生成方法的步骤流程图。如图1所示,本发明一种对话系统中的句子多样性生成方法,包括如下步骤:
[0041] 步骤S1,提取回答句子的依存树,并将依存树转为无向图,无向图用邻接矩阵M表示。
[0042] 具体地,所述回答句子为对话系统中对问题的回答句子,回答句子的依存树可以利用开源的自然语言处理工具,例如Stanford CoreNLP、AllenNLP等,提取。依存树是一个有向图,依存树中的节点是句子的词语,依存树中的有向边代表词语间的句法关系。若词语与词语之间存在某种句法关系,则有向图中这两个词语代表的节点间会有一条有向边。
[0043] 在本发明中,依存树转为无向图的转换方法为将依存树的有向边改为无向边。
[0044] 具体地,假设回答句子有n个单词,则回答句子的邻接矩阵是维度为n*n的矩阵M,邻接矩阵M中第i行第j列的值Mij由以下条件决定:
[0045]
[0046] 如下为提取句子依存树和计算邻接矩阵的实例:例如有一个句子“在句子特征提取中融合句法结构。”
[0047] 首先,利用开源的自然语言处理工具提取该句子的依存树,如图2所示;
[0048] 然后,将以上依存树用有向图表示,依存树中的节点是句子的词语,依存树中的有向边代表词语间的句法关系,如图3所示。
[0049] 并将上述有向图中的有向边改为无向边即可得到该句子的无向图,如图4所示。
[0050] 最后将该实例句子“在句子特征提取中融合句法结构。”的无向图转换为邻接矩阵M,如图5所示。
[0051] 步骤S2,将回答句子和步骤S1的无向图的邻接矩阵M输入图结构转换器(Graph Transformer),得到回答句子的特征向量;
[0052] 图6为本发明具体实施例中图结构转换器(Graph Transformer)的的结构图,以下配合图6说明本发明图结构转换器(Graph Transformer)的特征提取过程:
[0053] 具体地,假设回答句子由n个单词组成,第i个单词由一个k维的特征向量Vi表示,则回答句子的特征表示为V=(V1,...,Vn)。把回答句子的特征V和无向图的邻接矩阵M输入所述图结构转换器(Graph Transformer)。
[0054] 所述图结构转换器的特征提取过程如下:
[0055] 1、对回答句子的特征V和无向图的邻接矩阵M进行Graph Attention操作。具体地,对于第i个单词的特征向量Vi,Graph Attention对其进行如下计算:
[0056]
[0057]
[0058] 其中Mij是步骤S1中的邻接矩阵M的第i行第j列的值。
[0059] 2、将 与Vi相加,并且进行层归一化操作,具体操作如下:
[0060]
[0061] 其中LayerNorm是层归一化操作,由于层归一化操作为现有技术,在此不予赘述。
[0062] 3、将 输入一层前馈神经网络,然后再进行层归一化操作,具体操作如下:
[0063]
[0064] 其中FFN为一层前馈神经网络。
[0065] 从而对于第i个单词的特征向量Vi,经过Graph Transformer处理后会得到变换后的特征向量 从而得到经过Graph Transformer变换后的回答句子的特征
[0066] 最后对回答句子的特征 进行如下操作,得到最终的回答句子的特征V′:
[0067]
[0068] 步骤S3,使用序列结构转换器(Transformer)提取所述回答句子的对话历史的特征;
[0069] 具体地,在对话系统中,一个对话样本通常由对话历史和回答句子组成,一个实例如下所示:
[0070] 对话历史(m个句子):
[0071] 1、今天天气如何?
[0072] 2、今天天气很好,阳光明媚。
[0073] ……
[0074] M、你觉得下周会不会下暴雨?
[0075] 回答句子则为对话历史的下一句话,例如:
[0076] 我觉得下周会下暴雨。
[0077] 假设在该对话系统中,该回答句子的对话历史由m个句子组成,且m个句子按照顺序排列,将m个句子按照顺序拼接成一个句子C,并且将该句子C输入到序列结构转换器(Transformer),得到对话历史的特征向量。
[0078] 具体地,假设句子C由r个单词组成,句子C中第i个单词由一个k维的特征向量Ei表示,则句子C的特征表示为E=(E1,...,Er),将E输入Transformer后,便能得到变换后的句子C的特征 对句子C的特征 进行如下操作,得到最终的对话历史的特征E′:
[0079]
[0080] 步骤S4,将步骤S2的回答句子的特征向量V′和步骤S3的对话历史的特征向量E′输入条件变分自动编码器,生成回答句子。
[0081] 条件变分自动编码器的结构图如图7所示,所述条件变分自动编码器由编码器和解码器组成,对话历史的特征E’输入条件变分自动编码器的编码器,得到一个正态分布z’,只需要从该正态分布z’采样多个样本,然后分别输入解码器,则可以得到多个不同的回答句子。具体地,将对话历史的特征向量E′输入条件变分自动编码器中的编码器后,可以得到一个正态分布Z′,然后从正态分布Z′中多次采样,并且分别输入至解码器,然后解码器分别生成不同的回答句子,从而实现回答句子的多样性生成。
[0082] 图8为本发明一种对话系统中的句子多样性生成系统的系统架构图。如图8所示,本发明一种对话系统中的句子多样性生成系统,包括:
[0083] 回答句子处理单元201,用于提取回答句子的依存树,并将依存树转为无向图,无向图用邻接矩阵表示;
[0084] 具体地,所述回答句子为对话系统中对问题的回答句子,回答句子的依存树可以利用开源的自然语言处理工具,例如Stanford CoreNLP、AllenNLP等,提取。依存树是一个有向图,依存树中的节点是句子的词语,依存树中的有向边代表词语间的句法关系。若词语与词语之间存在某种句法关系,则有向图中这两个词语代表的节点间会有一条有向边。
[0085] 在本发明中,回答句子提取单元201将依存树转为无向图的转换方法为将依存树的有向边改为无向边。
[0086] 具体地,假设回答句子有n个单词,则回答句子的邻接矩阵是维度为n*n的矩阵M,邻接矩阵M中第i行第j列的值Mij由以下条件决定:
[0087]
[0088] 回答句子特征向量提取单元202,用于将所述回答句子和回答句子处理单元201获得的所述回答句子的无向图输入图结构转换器(Graph Transformer),以获得所述回答句子的特征向量。
[0089] 假设所述回答句子由n个单词组成,第i个单词由一个k维的特征向量Vi表示,则回答句子的特征表示为V=(V1,...,Vn)。把回答句子的特征V和无向图的邻接矩阵M输入所述图结构转换器(Graph Transformer)。
[0090] 所述图结构转换器的特征提取过程如下:
[0091] 1、对回答句子的特征V和无向图的邻接矩阵M进行Graph Attention操作。具体地,对于第i个单词的特征向量Vi,Graph Attention对其进行如下计算:
[0092]
[0093]
[0094] 其中Mij是步骤S1中的邻接矩阵M的第i行第j列的值。
[0095] 2、将 与Vi相加,并且进行层归一化操作,具体操作如下:
[0096]
[0097] 其中LayerNorm是层归一化操作,由于层归一化操作为现有技术,在此不予赘述。
[0098] 3、将 输入一层前馈神经网络,然后再进行层归一化操作,具体操作如下:
[0099]
[0100] 其中FFN为一层前馈神经网络。
[0101] 从而对于第i个单词的特征向量Vi,经过图结构转换器(Graph Transformer)处理后会得到变换后的特征向量 从而得到经过图结构转换器(Graph Transformer)变换后的回答句子的特征
[0102] 最后对回答句子的特征 进行如下操作,得到最终的回答句子的特征V′:
[0103]
[0104] 对话历史特征提取单元203,用于获取所述回答句子的回答历史,使用序列结构转换器(Transformer)提取对话历史的特征向量;
[0105] 具体地,假设所述对话系统中,所述回答句子的对话历史由m个句子组成,且m个句子按照顺序排列,将m个句子按照顺序拼接成一个句子C,并且将该句子C输入到序列结构转换器(Transformer),以得到对话历史的特征向量。
[0106] 具体地,假设句子C由r个单词组成,句子C中第i个单词由一个k维的特征向量Ei表示,则句子C的特征表示为E=(E1,...,Er),将E输入序列结构转换器(Transformer)后,便能得到变换后的句子C的特征 对句子C的特征 进行如下操作,得到最终的对话历史的特征E′:
[0107]
[0108] 多样性句子生成单元204,将所述回答句子特征向量提取单元202的回答句子的特征向量和对话历史特征提取单元203的对话历史的特征向量输入条件变分自动编码器,得到所述对话历史的回答句子。
[0109] 所述条件变分自动编码器由编码器和解码器组成,对话历史的特征E’输入条件变分自动编码器的编码器,得到一个正态分布z’,只需要从该正态分布z’采样多个样本,然后分别输入解码器,则可以得到多个不同的回答句子
[0110] 综上所述,本发明一种对话系统中的句子多样性生成方法及系统通过提取回答句子的依存树,将依存树转为无向图,然后将回答句子和无向图输入图结钩转换器得到所述回答句子的特征向量,并使用序列结构转换器提取所述回答句子的对话历史的特征向量,最后将获得的所述回答句子的特征向量和获得的对话历史的特征向量输入条件变分自动编码器,得到所述对话历史的新的回答句子,实现了提高对话系统中句子生成的多样性的目的。
[0111] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如
权利要求书所列。