一种基于知识图谱与语义图技术的口语理解方法转让专利

申请号 : CN201910315854.1

文献号 : CN110188342B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姜明滕海滨张旻汤景凡戚铖杰张雯

申请人 : 杭州电子科技大学

摘要 :

本发明公开了一种基于知识图谱与语义图技术进行口语理解的方法。本发明步骤:1.训练序列到动作序列神经网络模型,训练基于句子和句子逻辑表达式的口语理解神经网络;2.读取需要被解析的自然语言句子;3.使用文本映射算法扫描并替换句子中与知识图谱中语义资源相匹配的部分;4.使用序列到动作序列神经网络模型读取替换了语义资源后的句子,然后执行对应的动作序列生成与句子语义相符的语义图,然后使用深度优先算法遍历语义图得到句子的逻辑表达式;5.使用口语理解神经网络读入句子和逻辑表达式,生成意图信息和槽位信息。本发明提出结合知识图谱和理解句子语义的方法进行口语解析。

权利要求 :

1.一种基于知识图谱与语义图技术的口语理解方法,其特征在于包括以下步骤:步骤1、训练序列到动作序列神经网络模型,训练基于句子和句子逻辑表达式的口语理解神经网络;

步骤2、读取需要被解析的自然语言句子;

步骤3、使用文本映射算法扫描并替换句子中与知识图谱中语义资源相匹配的部分;

步骤4、使用序列到动作序列神经网络模型读取替换了语义资源后的句子,然后执行对应的动作序列生成与替换了语义资源后的句子语义相符的语义图,然后使用深度优先算法遍历语义图得到替换了语义资源后的句子的逻辑表达式;

步骤5、使用口语理解神经网络读入替换了语义资源后的句子和逻辑表达式,生成意图信息和槽位信息。

2.根据权利要求1所述的一种基于知识图谱与语义图技术的口语理解方法,其特征在于步骤1中训练的序列到动作序列神经网络模型,包括如下步骤:

1-1.整理出已有的句子与逻辑表达式的关系作为样本集;

1-2.解析句子逻辑表达式生成语义图,对语义图进行深度优先搜索生成构造语义图的动作序列;

1-3.将句子本身与逻辑表达式生成的动作序列做对应,生成一个新的样本集;

1-4.将句子与动作序列的样本集,分割为比例为9:1作为训练集与测试集;训练集送入一个序列到动作序列的神经网络模型中,通过梯度下降算法调整模型参数,使得模型在测试集中的测试结果达到最优;

步骤1中所述的口语理解神经网络,包括如下步骤:

1-1整理已有句子的逻辑表达式与句子的意图信息和槽位信息做对应,整理为样本集;

1-2同样将样本集分割为9∶1作为训练集与测试集;

1-3使用口语理解神经网络在训练集中进行学习,然后在测试集中测试结果;调整参数使用梯度下降法,使得最终槽位信息和意图信息更加准确。

3.根据权利要求1或2所述的一种基于知识图谱与语义图技术的口语理解方法,步骤1或5中的口语理解神经网络,其特征在于,构建一个编码器、解码器结构的循环神经网络,具体如下:①使用LSTM作为神经网络中的单元;

②编码器结构满足:

hi=LSTM(φ(x)(xi),hi-1)    (1)其中,hi表示对应于输入词语xi的隐藏层状态,LSTM指长短时记忆网络的状态转移方程;φ(x)(xi)表示对于输入词语xi映射到词向量;

③解码器结构满足:

P(yj=w|x,y1:j-1)∝exp(Uw[sj,cj])   (6)sj+1=LSTM([φ(y)(yj),cj],sj)    (7)其中,sj表示输出步骤为j时的隐藏层状态; 表示在序列长度为m的序列上,取正向RNN序列的第m个隐藏层数据,与反向RNN序列中第1个隐藏层的数据拼接,通过解码器隐藏层转换函数 计算得到第一个解码器隐藏层状态s1;

eij表示在输出步骤为j时,输入序列第i个单词的注意力评分;其计算过程需要用到输出状态sj的转置 以及经过注意力转换函数 转换输入词语序列中词语xi的隐藏层状态bi;

aij指输出步骤为i时的词语xj的注意力权重;其中exp指指数函数;yj为输出步骤j的输出结果。

4.根据权利要求3所述的一种基于知识图谱与语义图技术的口语理解方法,步骤1或5中的口语理解神经网络,其特征在于构建一个同时读入句子本身与其逻辑表达式的神经网络,进行意图猜测和槽位解析,具体包括:(1)逻辑表达式信息提取,逻辑表达式序列对应的前向隐藏层状态lfh=[lfh1,lfh2,lfh3,…,lfh|L|]满足:类似的,反向隐藏层状态lbh=[lbh1,lbh2,lbh3,…,lbh|L|]同样满足:逻辑表达式的最终描述结果sL=[lfh|L|,lbh1]LSTM表示长短时记忆网络的状态转移方程,φl(li)表示逻辑表达式序列单元li在映射方程φl计算下得到对应向量;

(2)进行槽位填充时,更新过程满足:

s0=tanh(W(s)(sL))

                         (4.17)si=f(s)(si-1,yi-1,hi,ci)                         (4.18)ei,k=g(si-1,hk)

                          (4.21)其中yi-1表示生成的标签序列的第i-1个值;在输出时刻i,ci表示注意力机制下的输入,si表示当前隐藏层状态;W(s)表示隐藏层状态初始化方程,参数sL来自上述步骤(1)中的计算结果;ci表示当前注意力机制下的输入值,ai,j表示当前步骤下输入词语xj的注意力得分,ei,k表示词语xk的权重,根据权重换算公式g计算上一时刻状态si-1与词语隐藏层状态hk得到;

(3)意图解析是对所有的隐藏层状态s=(s1,s2,...,s|w|)汇总,分类,输出意图信息的分类。

说明书 :

一种基于知识图谱与语义图技术的口语理解方法

技术领域

[0001] 本发明涉及文本匹配领域,具体涉及一种基于知识图谱与语义图技术进行口语理解的方法,一种指定文本中检测句子主旨与详细要点的方法。

背景技术

[0002] 人机对话系统需要识别人类语言中的信息,才能具体执行相应任务,如给问题作出回答、预定机票等等,这个过程也叫做口语解析。口语解析任务中,识别句子主旨的任务叫“意图检测”,根据意图的不同从句子中筛选要求叫“槽位填充”。
[0003] 随着人工智能技术的发展,研究者们纷纷从传统的最大熵马尔可夫模型、条件随机场等方案中转移到各种基于神经网络的模型上,取得了可喜的进步。但是这些工作往往著重于句子本身的结构信息,缺乏对句子语义的有效利用。同时,近些年来互联网的迅猛扩张,知识库和知识图谱的容量和应用场景都有许多新的发展,这为如何利用知识图谱当中的资源为自动对话系统服务带来了新的帮助。我们提出的方法结合知识图谱与语义图技术,实现口语解析。

发明内容

[0004] 本发明的目的是针对现有技术的不足,公开一种基于知识图谱与语义图技术的口语理解方法。
[0005] 本发明解决其技术问题所采用的技术方案包括以下步骤:
[0006] 步骤1、训练序列到动作序列神经网络模型,训练基于句子和句子逻辑表达式的口语理解神经网络;
[0007] 步骤2、读取需要被解析的自然语言句子;
[0008] 步骤3、使用文本映射算法扫描并替换句子中与知识图谱中语义资源相匹配的部分;
[0009] 步骤4、使用序列到动作序列神经网络模型读取替换了语义资源后的句子,然后执行对应的动作序列生成与句子语义相符的语义图,然后使用深度优先算法遍历语义图得到句子的逻辑表达式;
[0010] 步骤5、使用口语理解神经网络读入句子和逻辑表达式,生成意图信息和槽位信息。
[0011] 步骤1中训练的序列到动作序列神经网络模型,包括如下步骤:
[0012] 1-1.整理出已有的句子与逻辑表达式的关系作为样本集;
[0013] 1-2.解析句子逻辑表达式生成语义图,对语义图进行深度优先搜索生成构造语义图的动作序列;
[0014] 1-3.将句子本身与逻辑表达式生成的动作序列做对应,生成一个新的样本集;
[0015] 1-4.将句子与动作序列的样本集,分割为比例为9∶1作为训练集与测试集;训练集送入一个序列到序列的神经网络模型中,通过梯度下降算法调整模型参数,使得模型在测试集中的测试结果达到最优;
[0016] 步骤1中所述的口语理解神经网络,包括如下步骤:
[0017] (1-1)整理已有句子的逻辑表达式与句子的意图信息和槽位信息做对应,整理为样本集;
[0018] (1-2)同样将样本集分割为9∶1作为训练集与测试集;
[0019] (1-3)使用口语理解神经网络在训练集中进行学习,然后在测试集中测试结果;调整参数使用梯度下降法,使得最终槽位信息和意图信息达到尽可能准确。
[0020] 步骤1或5中的口语理解模型,其特征在于,构建一个编码器、解码器结构的循环神经网络,具体如下:
[0021] ①使用LSTM作为神经网络中的单元;
[0022] ②编码器结构满足:
[0023] hi=LSTM(φ(x)(xi),hi-1)   (1)
[0024] 其中,hi表示对应于输入词语xi的隐藏层状态,LSTM指长短时记忆网络的状态转移方程;φ(x)(xi)表示对于输入词语xi映射到词向量;
[0025] ③解码器结构满足:
[0026]
[0027]
[0028]
[0029]
[0030] P(yj=w|x,y1:j-1)∝exp(Uw[sj,cj])   (6)
[0031] sj+1=LSTM([φ(y)(yj),cj],sj)   (7)
[0032] 其中,si表示输出步骤为j时的隐藏层状态; 表示在序列长度为m的序列上,取正向RNN序列的第m个隐藏层数据,与反向RNN序列中第1个隐藏层的数据拼接,通过解码器隐藏层转换函数 计算得到第一个解码器隐藏层状态s1;
[0033] eij表示在输出步骤为j时,输入序列第i个单词的注意力评分;其计算过程需要用到输出状态sj的转置 以及经过注意力转换函数 转换输入词语序列中词语xi的隐藏层状态bi
[0034] aii指输出步骤为i时的词语xj的注意力权重;其中exp指指数函数;yj为输出步骤j的输出结果。
[0035] 步骤1或5中的口语理解神经网络,其特征在于构建一个同时读入句子本身与其逻辑表达式的神经网络,进行意图猜测和槽位解析,
[0036] 具体包括:
[0037] (1)逻辑表达式信息提取,逻辑表达式序列对应的前向隐藏层状态lfh=[lfh1lfh2lfh3,…,lfh|L|]满足:
[0038]
[0039] 类似的,反向隐藏层状态lbh=[lbh1lbh2lbh3,…,lbh|L|]同样满足:
[0040]
[0041] 逻辑表达式的最终描述结果sL=[lfh|L|,lbh1]
[0042] LSTM表示长短时记忆网络的状态转移方程,φl(li)表示逻辑表达式序列单元li在映射方程φl计算下得到对应向量;
[0043] (2)进行槽位填充时,更新过程满足:
[0044] s0=tanh(W(s)sL)   (4.17)
[0045] si=f(s)(si-1,yi-1,hi,ci)   (4.18)
[0046]
[0047]
[0048] ei,k=g(si-1,hk)   (4.21)
[0049] 其中y表示生成的标签序列;在输出时刻i,ci表示注意力机制下的输入,si表示当前隐藏层状态;W(s)表示隐藏层状态初始化方程,参数sL来自(1)中的计算结果;ci表示当前注意力机制下的输入值,ai,j表示当前步骤下输入词语xj的注意力得分,ei,k表示词语xk的权重,根据权重换算公式g计算上一时刻状态si-1与词语隐藏层状态hk得到;
[0050] (3)意图解析是对所有的隐藏层状态h=(h1,h2,...,h|w|)汇总,分类,输出意图信息的分类。
[0051] 口语理解的神经模型如图5所示。
[0052] 本发明的优点及有益效果如下:
[0053] 本发明针对当前口语理解技术存在没有利用知识图谱与句子语义的问题,提出结合知识图谱和理解句子语义的方法进行口语解析。具体而言,是提出如何使用知识图谱中的语义资源替换到句子本身;以及提出一个神经网络模型用于生成语义图,根据语义图生成句子逻辑表达式;最后提出一个神经网络模型,用于结合句子逻辑表达式与句子本身的词语进行意图检测和口语理解。

附图说明

[0054] 图1是本发明所述方法的流程框图。
[0055] 图2表示本发明的数据流动图
[0056] 图3是用于生成语义图动作序列的,序列到动作序列神经网络模型架构。
[0057] 图4为结合句子与逻辑表达式进行联合意图检测与口语理解的神经网络模型架构。
[0058] 图5是本发明中,词语与槽位标签、意图标签的对应示意图。

具体实施方式

[0059] 下面结合附图对本发明作进一步描述。
[0060] 参照图1与图2,步骤1、训练序列到动作序列神经网络模型,模型架构如图3所示,训练基于句子和句子逻辑表达式的口语理解神经网络,模型架构如图4所示;
[0061] 步骤2、读取需要被解析的自然语言句子;
[0062] 步骤3、使用文本映射算法扫描并替换句子中与知识图谱中语义资源相匹配的部分;
[0063] 步骤4、使用序列到动作序列神经网络模型读取替换了语义资源后的句子,然后执行对应的动作序列生成与句子语义相符的语义图,然后使用深度优先算法遍历语义图得到句子的逻辑表达式;
[0064] 步骤5、使用口语理解神经网络读入句子和逻辑表达式,生成意图信息和槽位信息。
[0065] 步骤1中训练的序列到动作序列神经网络模型,包括如下步骤:
[0066] 1-1.整理出已有的句子与逻辑表达式的关系作为样本集;
[0067] 1-2.解析句子逻辑表达式生成语义图,对语义图进行深度优先搜索生成构造语义图的动作序列;
[0068] 1-3.将句子本身与逻辑表达式生成的动作序列做对应,生成一个新的样本集;
[0069] 1-4.将句子与动作序列的样本集,分割为比例为9∶1作为训练集与测试集;训练集送入一个序列到序列的神经网络模型中,通过梯度下降算法调整模型参数,使得模型在测试集中的测试结果达到最优;
[0070] 步骤1中所述的口语理解神经网络,包括如下步骤:
[0071] (1-1)整理已有句子的逻辑表达式与句子的意图信息和槽位信息做对应,相应样例如图5所示,整理为样本集;
[0072] (1-2)同样将样本集分割为9∶1作为训练集与测试集;
[0073] (1-3)使用口语理解神经网络在训练集中进行学习,然后在测试集中测试结果;调整参数使用梯度下降法,使得最终槽位信息和意图信息达到尽可能准确。
[0074] 步骤1或5中的口语理解模型,其特征在于,构建一个编码器、解码器结构的循环神经网络,具体如下:
[0075] ①使用LSTM作为神经网络中的单元;
[0076] ②编码器结构满足:
[0077] hi=LSTM(φ(x)(xi),hi-1)   (1)
[0078] 其中,hi表示对应于输入词语xi的隐藏层状态,LSTM指长短时记忆网络的状态转移(x)方程;φ (xi)表示对于输入词语xi映射到词向量;
[0079] ③解码器结构满足:
[0080]
[0081]
[0082]
[0083]
[0084] P(yj=w|x,y1:j-1)∝exp(Uw[sj,cj])   (6)
[0085] sj+1=LSTM([φ(y)(yi),ci],si)   (7)
[0086] 其中,si表示输出步骤为j时的隐藏层状态; 表示在序列长度为m的序列上,取正向RNN序列的第m个隐藏层数据,与反向RNN序列中第1个隐藏层的数据拼接,通过解码器隐藏层转换函数 计算得到第一个解码器隐藏层状态s1;
[0087] eij表示在输出步骤为j时,输入序列第i个单词的注意力评分;其计算过程需要用到输出状态sj的转置 以及经过注意力转换函数 转换输入词语序列中词语xi的隐藏层状态bi
[0088] aij指输出步骤为i时的词语xj的注意力权重;其中exp指指数函数;yj为输出步骤j的输出结果。
[0089] 步骤1或5中的口语理解神经网络,其特征在于构建一个同时读入句子本身与其逻辑表达式的神经网络,进行意图猜测和槽位解析,具体包括:
[0090] (1)逻辑表达式信息提取,逻辑表达式序列对应的前向隐藏层状态lfh=[lfh1lfh2lfh3,…,lfh|L|]满足:
[0091]
[0092] 类似的,反向隐藏层状态lbh=[lbh1lbh2lbh3,…,lbh|L|]同样满足:
[0093]
[0094] 逻辑表达式的最终描述结果sL=[lfh|L|,lbh1]
[0095] LSTM表示长短时记忆网络的状态转移方程,φl(li)表示逻辑表达式序列单元li在映射方程φl计算下得到对应向量;
[0096] (2)进行槽位填充时,更新过程满足:
[0097] s0=tanh(W(s)sL)   (4.17)
[0098] si=f(s)(si-1,yi-1,hi,ci)   (4.18)
[0099]
[0100]
[0101] ei,k=g(si-1,hk)   (4.21)
[0102] 其中y表示生成的标签序列;在输出时刻i,ci表示注意力机制下的输入,si表示当前隐藏层状态;W(s)表示隐藏层状态初始化方程,参数sL来自(1)中的计算结果;ci表示当前注意力机制下的输入值,ai,j表示当前步骤下输入词语xj的注意力得分,ei,k表示词语xk的权重,根据权重换算公式g计算上一时刻状态si-1与词语隐藏层状态hk得到;
[0103] (3)意图解析是对所有的隐藏层状态h=(h1,h2,...,h|w|)汇总,分类,输出意图信息的分类。