基于双向LSTM神经网络的语句识别方法及装置转让专利

申请号 : CN201610394281.2

文献号 : CN106126492B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 安超黄志杰曾琰陈俊良屈银川

申请人 : 北京高地信息技术有限公司

摘要 :

本发明公开了一种基于双向LSTM神经网络的语句识别方法及装置,属于模式识别与自然语言理解技术领域。该方法包括:获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m};建立两个双向LSTM神经网络模型;将第一切词序列和第二切词序列分别作为两个双向LSTM神经网络模型的第一输入序列和第二输入序列;通过双向LSTM神经网络模型的参数对第一输入序列和第二输入序列进行标准化,以获得标准化后的第一输出和第二输出;比较第一输出y1和第二输出y2,以实现语义识别。该装置通过切词获取单元获取语句切词序列,网络模型建立单元建立模型,并输入选取单元、计算单元、比较单元以实现语义理解。

权利要求 :

1.一种基于双向LSTM神经网络的语句识别方法,其特征在于,所述方法包括:获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m};

建立两个双向LSTM神经网络模型;

将所述第一切词序列和所述第二切词序列分别作为所述两个双向LSTM神经网络模型的第一输入序列和第二输入序列;

通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,以获得标准化后的第一输出y1和第二输出y2;

比较所述第一输出y1和第二输出y2,以实现语义识别;

其中,n为所述第一切词序列的元素数量,m为所述第二切词序列的元素数量;

所述建立两个双向LSTM神经网络模型,其中,每个双向LSTM神经网络模型包括:输入、输入门、遗忘门、记忆细胞、tanh函数、隐藏层、反馈部、输出门;其中,在输入的序列为t时,参数的计算公式如下:Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+Wfh2ht+1+Wfm2mt+1+ef);

Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);

Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);

mt=Gdisremember(t)×mt-1+Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+Wmh2ht+1+em);

Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+Woh2ht+1+Wom2mt+1+eo);

ht=Goutput(t)×mt;

yt=softmaxk(Wyhht+ey);

其中,

Gfeedback(t)为序列为t时反馈门的输出;

Wfx1为序列为t时反馈门与序列为t时输入xt的权值;

Wfh1为序列为t时反馈门与序列为t-1时隐藏层输入ht-1之间的权值;

Wfh2为序列为t时反馈门与序列为t+1时隐藏层输入ht+1之间的权值;

Wfm1为序列为t时反馈门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wfm2为序列为t时反馈门与序列为t+1时记忆细胞输入mt+1之间的权值;

Ginput(t)为序列为t时输入门的输出;

Wih1为序列为t时输入门与序列为t-1时隐藏层输入ht-1之间的权值;

Wih2为序列为t时输入门与序列为t+1时隐藏层输入ht+1之间的权值;

Wim1为序列为t时输入门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wim2为序列为t时输入门与序列为t+1时记忆细胞输入mt+1之间的权值;

Wif为序列为t时输入门与序列为t时反馈门之间的权值;

Gdisremember(t)为序列为t时遗忘门的输出;

Wdh1为序列为t时遗忘门与序列为t-1时隐藏层输入ht-1之间的权值;

Wdh2为序列为t时遗忘门与序列为t+1时隐藏层输入ht+1之间的权值;

Wdm1为序列为t时遗忘门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wdm2为序列为t时遗忘门与序列为t+1时记忆细胞输入mt+1之间的权值;

Wmf为序列为t时记忆细胞与序列为t时反馈门之间的权值;

Wmh1为序列为t时记忆细胞与序列为t-1时隐藏层输入ht-1之间的权值;

Wmh2为序列为t时记忆细胞与序列为t+1时隐藏层输入ht+1之间的权值;

Wof为序列为t时输出门与序列为t时反馈门之间的权值;

Woh1为序列为t时输出门与序列为t-1时隐藏层输入ht-1之间的权值;

Woh2为序列为t时输出门与序列为t+1时隐藏层输入ht+1之间的权值;

Wom1为序列为t时输出门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wom2为序列为t时输出门与序列为t+1时记忆细胞输入mt+1之间的权值;

Wyh为序列为t时输出与序列为t时隐藏层输入ht之间的权值;

sigmoid(x)函数为

tanh(x)函数为

softmaxk(x)函数为 其中,xk为第k个softmax函数的输入,k大于1,且小于K;

xt为序列为t时的输入;

yt为序列为t时的输出;

ht为序列为t时隐藏层的输入;

mt为序列为t时记忆细胞的输出;

ef为序列为t时反馈门的偏差值;

ei为序列为t时输入门的偏差值;

ed为序列为t时遗忘门的偏差值;

em为序列为t时记忆细胞的偏差值;

eo为序列为t时输出门的偏差值;

ey为序列为t时输出的偏差值。

2.如权利要求1所述的语句识别方法,其特征在于,当t为1时,参数的计算公式如下:

Gfeedback(t)=sigmoid(Wfx1xt+Wfh2ht+1+Wfm2mt+1+ef);

Ginput(t)=sigmoid(Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);

Gdisremember(t)=sigmoid(Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);

mt=Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh2ht+1+em);

Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh2ht+1+Wom2mt+1+eo);

ht=Goutput(t)×mt;

yt=softmaxk(Wyhht+ey);

当t为输入x中的最后一个序列时,上述参数的计算公式如下:Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+ef);

Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+ei);

Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+ed);

mt=Gdisremember(t)×mt-1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+em);

Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+eo);

ht=Goutput(t)×mt;

yt=softmaxk(Wyhht+ey)。

3.如权利要求2所述的语句识别方法,其特征在于,计算输入的第一切词序列中最后一个序列x1n时,参数的计算公式如下:Gfeedback(1_n)=sigmoid(Wfx1x1_n+Wfh1h1_n-1+Wfm1m1_n-1+Wfh2h2_1+Wfm2m2_1+ef);

Ginput(1_n)=sigmoid(Wih1h1_n-1+Wim1m1_n-1+Wif Gfeedback(1_n)+Wih2h2_1+Wim2m2_1+ei);

Gdisremember(1_n)=sigmoid(Wdh1h1_n-1+Wdm1m1_n-1+Wdf Gfeedback(1_n)+Wdh2h2_1+Wdm2m2_1+ed);

m1_n=Gdisremember(1_n)×m1_n-1+Gdisremember(1_n)×m2_1+Ginput(1_n)×tanh(Wmf Gfeedback(1_n)+Wmh1h1_n-1+Wmh2h2_1+em);

Goutput(1_n)=sigmoid(Wof Gfeedback(1_n)+Woh1h1_n-1+Wom1m1_n-1+Woh2h2_1+Wom2m2_1+eo);

h1_n=Goutput(1_n)×m1_n;

y1_n=softmaxk(Wyhh1_n+ey);

其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21;

计算输入的第二切词序列中第一个序列x21时,参数的计算公式如下:Gfeedback(2_1)=sigmoid(Wfx1x2_1+Wfh1h1_n+Wfm1m1_n+Wfh2h2_2+Wfm2m2_2+ef);

Ginput(2_1)=sigmoid(Wih1h1_n+Wim1m1_n+Wif Gfeedback(2_1)+Wih2h2_2+Wim2m2_2+ei);

Gdisremember(2_1)=sigmoid(Wdh1h1_n+Wdm1m1_n+Wdf Gfeedback(2_1)+Wdh2h2_2+Wdm2m2_2+ed);

mt=Gdisremember(2_1)×m1_n+Gdisremember(2_1)×m2_2+Ginput(2_1)×tanh(Wmf Gfeedback(2_1)+Wmh1h1_n+Wmh2h2_2+em);

Goutput(2_1)=sigmoid(Wof Gfeedback(2_1)+Woh1h1_n+Wom1m1_n+Woh2h2_2+Wom2m2_2+eo);

h2_1=Goutput(2_1)×m2_1;

y2_1=softmaxk(Wyhh2_1+ey);

其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21,2_2表示的是第二切词序列x2中第二序列x22。

4.如权利要求1至3任一所述的语句识别方法,其特征在于,所述比较所述第一输出y1和所述第二输出y2是通过计算所述第一输出y1和所述第二输出y2的相似性;

作为优选,所述比较所述第一输出y1和所述第二输出y2是通过余弦相似性来计算相似性,计算公式为 cosθ余弦值的范围在[-1,1]之间,值越趋近于

1,第一输出y1和第二输出y2相应的相似度也越高。

5.一种基于LSTM神经网络的语句识别装置,其特征在于,所述装置包括:切词获取单元,用于获取语句的切词序列,获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m};

网络模型建立单元,用于建立双向LSTM神经网络模型,建立两个双向LSTM神经网络模型;

输入选取单元,用于将所述切词获取单元获取的切词序列选择作为所述网络模型建立单元的输入,将所述第一切词序列和所述第二切词序列分别作为所述两个双向LSTM神经网络模型的第一输入序列和第二输入序列;

计算单元,用于将输入选取单元选取的输入引入所述网络模型建立单元建立的双向LSTM神经网络模型的参数计算中计算,使得所述切词序列标准化,以获得标准化后的输出,通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,以获得标准化后的第一输出y1和第二输出y2;

比较单元,用于比较所述计算单元的输出,比较所述第一输出y1和第二输出y2,以实现语义识别;

所述网络模型建立单元中的每个双向LSTM神经网络模型包括:输入、输入门、遗忘门、记忆细胞、tanh函数、隐藏层、反馈部、输出门;其中,在输入的序列为t时,参数的计算公式如下:Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+Wfh2ht+1+Wfm2mt+1+ef);

Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);

Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);

mt=Gdisremember(t)×mt-1+Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+Wmh2ht+1+em);

Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+Woh2ht+1+Wom2mt+1+eo);

ht=Goutput(t)×mt;

yt=softmaxk(Wyhht+ey);

其中,

Gfeedback(t)为序列为t时反馈门的输出;

Wfx1为序列为t时反馈门与序列为t时输入xt的权值;

Wfh1为序列为t时反馈门与序列为t-1时隐藏层输入ht-1之间的权值;

Wfh2为序列为t时反馈门与序列为t+1时隐藏层输入ht+1之间的权值;

Wfm1为序列为t时反馈门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wfm2为序列为t时反馈门与序列为t+1时记忆细胞输入mt+1之间的权值;

Ginput(t)为序列为t时输入门的输出;

Wih1为序列为t时输入门与序列为t-1时隐藏层输入ht-1之间的权值;

Wih2为序列为t时输入门与序列为t+1时隐藏层输入ht+1之间的权值;

Wim1为序列为t时输入门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wim2为序列为t时输入门与序列为t+1时记忆细胞输入mt+1之间的权值;

Wif为序列为t时输入门与序列为t时反馈门之间的权值;

Gdisremember(t)为序列为t时遗忘门的输出;

Wdh1为序列为t时遗忘门与序列为t-1时隐藏层输入ht-1之间的权值;

Wdh2为序列为t时遗忘门与序列为t+1时隐藏层输入ht+1之间的权值;

Wdm1为序列为t时遗忘门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wdm2为序列为t时遗忘门与序列为t+1时记忆细胞输入mt+1之间的权值;

Wmf为序列为t时记忆细胞与序列为t时反馈门之间的权值;

Wmh1为序列为t时记忆细胞与序列为t-1时隐藏层输入ht-1之间的权值;

Wmh2为序列为t时记忆细胞与序列为t+1时隐藏层输入ht+1之间的权值;

Wof为序列为t时输出门与序列为t时反馈门之间的权值;

Woh1为序列为t时输出门与序列为t-1时隐藏层输入ht-1之间的权值;

Woh2为序列为t时输出门与序列为t+1时隐藏层输入ht+1之间的权值;

Wom1为序列为t时输出门与序列为t-1时记忆细胞输入mt-1之间的权值;

Wom2为序列为t时输出门与序列为t+1时记忆细胞输入mt+1之间的权值;

Wyh为序列为t时输出与序列为t时隐藏层输入ht之间的权值;

sigmoid(x)函数为

tanh(x)函数为

softmaxk(x)函数为 其中,xk为第k个softmax函数的输入,k大于1,且小于K;

xt为序列为t时的输入;

yt为序列为t时的输出;

ht为序列为t时隐藏层的输入;

mt为序列为t时记忆细胞的输出;

ef为序列为t时反馈门的偏差值;

ei为序列为t时输入门的偏差值;

ed为序列为t时遗忘门的偏差值;

em为序列为t时记忆细胞的偏差值;

eo为序列为t时输出门的偏差值;

ey为序列为t时输出的偏差值。

6.如权利要求5所述的语句识别装置,其特征在于,所述网络模型建立单元中参数计算时,当t为1时,参数的计算公式如下:

Gfeedback(t)=sigmoid(Wfx1xt+Wfh2ht+1+Wfm2mt+1+ef);

Ginput(t)=sigmoid(Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);

Gdisremember(t)=sigmoid(Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);

mt=Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh2ht+1+em);

Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh2ht+1+Wom2mt+1+eo);

ht=Goutput(t)×mt;

yt=softmaxk(Wyhht+ey);

当t为输入x中的最后一个序列时,上述参数的计算公式如下:Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+ef);

Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+ei);

Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+ed);

mt=Gdisremember(t)×mt-1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+em);

Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+eo);

ht=Goutput(t)×mt;

yt=softmaxk(Wyhht+ey)。

7.如权利要求6所述的语句识别装置,其特征在于,所述网络模型建立单元中参数计算时,计算输入的第一切词序列中最后一个序列x1n时,参数的计算公式如下:Gfeedback(1_n)=sigmoid(Wfx1x1_n+Wfh1h1_n-1+Wfm1m1_n-1+Wfh2h2_1+Wfm2m2_1+ef);

Ginput(1_n)=sigmoid(Wih1h1_n-1+Wim1m1_n-1+Wif Gfeedback(1_n)+Wih2h2_1+Wim2m2_1+ei);

Gdisremember(1_n)=sigmoid(Wdh1h1_n-1+Wdm1m1_n-1+Wdf Gfeedback(1_n)+Wdh2h2_1+Wdm2m2_1+ed);

m1_n=Gdisremember(1_n)×m1_n-1+Gdisremember(1_n)×m2_1+Ginput(1_n)×tanh(Wmf Gfeedback(1_n)+Wmh1h1_n-1+Wmh2h2_1+em);

Goutput(1_n)=sigmoid(Wof Gfeedback(1_n)+Woh1h1_n-1+Wom1m1_n-1+Woh2h2_1+Wom2m2_1+eo);

h1_n=Goutput(1_n)×m1_n;

y1_n=softmaxk(Wyhh1_n+ey);

其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21;

计算输入的第二切词序列中第一个序列x21时,参数的计算公式如下:Gfeedback(2_1)=sigmoid(Wfx1x2_1+Wfh1h1_n+Wfm1m1_n+Wfh2h2_2+Wfm2m2_2+ef);

Ginput(2_1)=sigmoid(Wih1h1_n+Wim1m1_n+Wif Gfeedback(2_1)+Wih2h2_2+Wim2m2_2+ei);

Gdisremember(2_1)=sigmoid(Wdh1h1_n+Wdm1m1_n+Wdf Gfeedback(2_1)+Wdh2h2_2+Wdm2m2_2+ed);

mt=Gdisremember(2_1)×m1_n+Gdisremember(2_1)×m2_2+Ginput(2_1)×tanh(Wmf Gfeedback(2_1)+Wmh1h1_n+Wmh2h2_2+em);

Goutput(2_1)=sigmoid(Wof Gfeedback(2_1)+Woh1h1_n+Wom1m1_n+Woh2h2_2+Wom2m2_2+eo);

h2_1=Goutput(2_1)×m2_1;

y2_1=softmaxk(Wyhh2_1+ey);

其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21,2_2表示的是第二切词序列x2中第二序列x22。

8.如权利要求5至7任一所述的的语句识别装置,其特征在于,所述比较单元中比较所述第一输出y1和所述第二输出y2是通过计算所述第一输出y1和所述第二输出y2的相似性;

作为优选,所述比较单元中比较所述第一输出y1和所述第二输出y2是通过余弦相似性来计算相似性,计算公式为 cosθ余弦值的范围在[-1,1]之间,值越趋近于1,第一输出y1和第二输出y2相应的相似度也越高。

说明书 :

基于双向LSTM神经网络的语句识别方法及装置

技术领域

[0001] 本发明涉及模式识别与自然语言理解技术领域,特别涉及基于双向LSTM神经网络的语句识别方法及装置。

背景技术

[0002] 随着互联网信息的爆炸式增长,社区问答(CQA)门户网站,如雅虎问答、 Quora的和百度知道,正在快速发展。作为一个分享知识和经验的平台,CQA门户网站已经积累了多个领域的形式多样的数据,并以问题和候选答案的形式组织着。用户通过CQA网站获得答案知识主要包括两个步骤。首先,检索已发布的相似的问题,收集类似问题的候选答案。然后,根据对候选答案进行质量评估,获得与用户查询相比最相关的答案。在用户和CQA网站的交互过程中,句子相似度计算,具体地说是问题相似度计算起着关键性的作用。文本检索会议 TREC下的实时问答比赛正是为该研究而发起的一项国际性赛事。
[0003] TREC全称Text REtrieval Conference,即文本检索会议。它由一系列有关信息检索的研讨会构成,并包含多个子任务。例如,实时问答比赛针对推送的问题流,要求参赛系统实时地给出相应的答案。我们参赛的基本流程包括以下三个部分:用户意图理解、相似问题检索以及答案质量评估和排序。由于强制的实时性和问题的开放性,相似度计算起着举足轻重的作用。然而,由于词的多义性和句子结构的多样性,评估两个句子之间的语义关联度是一个非常复杂的任务。

发明内容

[0004] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于双向LSTM神经网络的语句识别方法及装置。
[0005] 本发明提供一种基于双向LSTM神经网络的语句识别方法,所述方法包括:
[0006] 获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……, x1n}和第二切词序列x2={x21,x22,……,x2m};
[0007] 建立两个双向LSTM神经网络模型;
[0008] 将所述第一切词序列和所述第二切词序列分别作为所述两个双向LSTM神经网络模型的第一输入序列和第二输入序列;
[0009] 通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,以获得标准化后的第一输出y1和第二输出y2;
[0010] 比较所述第一输出y1和第二输出y2,以实现语义识别;
[0011] 其中,n为所述第一切词序列的元素数量,m为所述第二切词序列的元素数量。
[0012] 优选的,所述建立两个双向LSTM神经网络模型,其中,每个双向LSTM神经网络模型包括:输入、输入门、遗忘门、记忆细胞、tanh函数、隐藏层、反馈部、输出门;其中,在输入的序列为t时,参数的计算公式如下:
[0013] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+Wfh2ht+1+Wfm2mt+1+ef);
[0014] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0015] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0016] mt=Gdisremember(t)×mt-1+Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t) +Wmh1ht-1+Wmh2ht+1+em);
[0017] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+Woh2ht+1+Wom2mt+1+eo);
[0018] ht=Goutput(t)×mt;
[0019] yt=softmaxk(Wyhht+ey);
[0020] 其中,
[0021] Gfeedback(t)为序列为t时反馈门的输出;
[0022] Wfx1为序列为t时反馈门与序列为t时输入xt的权值;
[0023] Wfh1为序列为t时反馈门与序列为t-1时隐藏层输入ht-1之间的权值;
[0024] Wfh2为序列为t时反馈门与序列为t+1时隐藏层输入ht+1之间的权值;
[0025] Wfm1为序列为t时反馈门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0026] Wfm2为序列为t时反馈门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0027] Ginput(t)为序列为t时输入门的输出;
[0028] Wih1为序列为t时输入门与序列为t-1时隐藏层输入ht-1之间的权值;
[0029] Wih2为序列为t时输入门与序列为t+1时隐藏层输入ht+1之间的权值;
[0030] Wim1为序列为t时输入门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0031] Wim2为序列为t时输入门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0032] Wif为序列为t时输入门与序列为t时反馈门之间的权值;
[0033] Gdisremember(t)为序列为t时遗忘门的输出;
[0034] Wdh1为序列为t时遗忘门与序列为t-1时隐藏层输入ht-1之间的权值;
[0035] Wdh2为序列为t时遗忘门与序列为t+1时隐藏层输入ht+1之间的权值;
[0036] Wdm1为序列为t时遗忘门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0037] Wdm2为序列为t时遗忘门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0038] Wmf为序列为t时记忆细胞与序列为t时反馈门之间的权值;
[0039] Wmh1为序列为t时记忆细胞与序列为t-1时隐藏层输入ht-1之间的权值;
[0040] Wmh2为序列为t时记忆细胞与序列为t+1时隐藏层输入ht+1之间的权值;
[0041] Wof为序列为t时输出门与序列为t时反馈门之间的权值;
[0042] Woh1为序列为t时输出门与序列为t-1时隐藏层输入ht-1之间的权值;
[0043] Woh2为序列为t时输出门与序列为t+1时隐藏层输入ht+1之间的权值;
[0044] Wom1为序列为t时输出门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0045] Wom2为序列为t时输出门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0046] Wyh为序列为t时输出与序列为t时隐藏层输入ht之间的权值;
[0047] sigmoid(x)函数为
[0048] tanh(x)函数为
[0049] softmaxk(x)函数为 其中,xk为第k个softmax函数的输入,k 大于1,且小于K;
[0050] xt为序列为t时的输入;
[0051] yt为序列为t时的输出;
[0052] ht为序列为t时隐藏层的输入;
[0053] mt为序列为t时记忆细胞的输出;
[0054] ef为序列为t时反馈门的偏差值;
[0055] ei为序列为t时输入门的偏差值;
[0056] ed为序列为t时遗忘门的偏差值;
[0057] em为序列为t时记忆细胞的偏差值;
[0058] eo为序列为t时输出门的偏差值;
[0059] ey为序列为t时输出的偏差值。
[0060] 优选的,
[0061] 当t为1时,参数的计算公式如下:
[0062] Gfeedback(t)=sigmoid(Wfx1xt+Wfh2ht+1+Wfm2mt+1+ef);
[0063] Ginput(t)=sigmoid(Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0064] Gdisremember(t)=sigmoid(Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0065] mt=Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh2ht+1+em);
[0066] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh2ht+1+Wom2mt+1+eo);
[0067] ht=Goutput(t)×mt;
[0068] yt=softmaxk(Wyhht+ey);
[0069] 当t为输入x中的最后一个序列时,上述参数的计算公式如下:
[0070] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+ef);
[0071] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+ei);
[0072] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+ed);
[0073] mt=Gdisremember(t)×mt-1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+em);
[0074] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+eo);
[0075] ht=Goutput(t)×mt;
[0076] yt=softmaxk(Wyhht+ey)。
[0077] 优选的,
[0078] 计算输入的第一切词序列中最后一个序列x1n时,参数的计算公式如下:
[0079] Gfeedback(1_n)=sigmoid(Wfx1x1_n+Wfh1h1_n-1+Wfm1m1_n-1+Wfh2h2_1+Wfm2m2_1+ef);
[0080] Ginput(1_n)=sigmoid(Wih1h1_n-1+Wim1m1_n-1+Wif Gfeedback(1_n)+Wih2h2_1+Wim2m2_1+ei);
[0081] Gdisremember(1_n)=sigmoid(Wdh1h1_n-1+Wdm1m1_n-1+Wdf Gfeedback(1_n)+Wdh2h2_1+Wdm2m2_1+ed);
[0082] m1_n=Gdisremember(1_n)×m1_n-1+Gdisremember(1_n)× m2_1+Ginput(1_n)×tanh(Wmf Gfeedback (1_n)+Wmh1h1_n-1+Wmh2h2_1+em);
[0083] Goutput(1_n)=sigmoid(Wof Gfeedback(1_n)+Woh1h1_n-1+Wom1m1_n-1+Woh2h2_1+Wom2m2_1+eo);
[0084] h1_n=Goutput(1_n)×m1_n;
[0085] y1_n=softmaxk(Wyhh1_n+ey);
[0086] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21;
[0087] 计算输入的第二切词序列中第一个序列x21时,参数的计算公式如下:
[0088] Gfeedback(2_1)=sigmoid(Wfx1x2_1+Wfh1h1_n+Wfm1m1_n+Wfh2h2_2+Wfm2m2_2+ef);
[0089] Ginput(2_1)=sigmoid(Wih1h1_n+Wim1m1_n+Wif Gfeedback(2_1)+Wih2h2_2+Wim2m2_2+ei);
[0090] Gdisremember(2_1)=sigmoid(Wdh1h1_n+Wdm1m1_n+Wdf Gfeedback(2_1)+Wdh2h2_2+Wdm2m2_2+ed);
[0091] mt=Gdisremember(2_1)×m1_n+Gdisremember(2_1)×m2_2+Ginput(2_1)×tanh(Wmf Gfeedback (2_1)+Wmh1h1_n+Wmh2h2_2+em);
[0092] Goutput(2_1)=sigmoid(Wof Gfeedback(2_1)+Woh1h1_n+Wom1m1_n+Woh2h2_2+Wom2m2_2+eo);
[0093] h2_1=Goutput(2_1)×m2_1;
[0094] y2_1=softmaxk(Wyhh2_1+ey);
[0095] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21,2_2表示的是第二切词序列x2中第二序列x22。
[0096] 优选的,所述比较所述第一输出y1和所述第二输出y2是通过计算所述第一输出y1和所述第二输出y2的相似性。
[0097] 优选的,所述比较所述第一输出y1和所述第二输出y2是通过余弦相似性来计算相似性,计算公式为 cosθ余弦值的范围在[-1,1] 之间,值越趋近于1,第一输出y1和第二输出y2相应的相似度也越高。
[0098] 基于同样的发明构思,本发明还提供一种基于LSTM神经网络的语句识别装置,所述装置包括:
[0099] 切词获取单元,用于获取语句的切词序列,获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……,x1n}和第二切词序列 x2={x21,x22,……,x2m};
[0100] 网络模型建立单元,用于建立双向LSTM神经网络模型,建立两个双向LSTM 神经网络模型;
[0101] 输入选取单元,用于将所述切词获取单元获取的切词序列选择作为所述网络模型建立单元的输入,将所述第一切词序列和所述第二切词序列分别作为所述两个双向LSTM神经网络模型的第一输入序列和第二输入序列;
[0102] 计算单元,用于将输入选取单元选取的输入引入所述网络模型建立单元建立的双向LSTM神经网络模型的参数计算中计算,使得所述切词序列标准化,以获得标准化后的输出,通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,以获得标准化后的第一输出y1和第二输出y2;
[0103] 比较单元,用于比较所述计算单元的输出,比较所述第一输出y1和第二输出y2,以实现语义识别;
[0104] 优选的,所述网络模型建立单元中的每个双向LSTM神经网络模型包括:输入、输入门、遗忘门、记忆细胞、tanh函数、隐藏层、反馈部、输出门;其中,在输入的序列为t时,参数的计算公式如下:
[0105] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+Wfh2ht+1+Wfm2mt+1+ef);
[0106] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0107] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0108] mt=Gdisremember(t)×mt-1+Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback (t)+Wmh1ht-1+Wmh2ht+1+em);
[0109] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+Woh2ht+1+Wom2mt+1+eo);
[0110] ht=Goutput(t)×mt;
[0111] yt=softmaxk(Wyhht+ey);
[0112] 其中,
[0113] Gfeedback(t)为序列为t时反馈门的输出;
[0114] Wfx1为序列为t时反馈门与序列为t时输入xt的权值;
[0115] Wfh1为序列为t时反馈门与序列为t-1时隐藏层输入ht-1之间的权值;
[0116] Wfh2为序列为t时反馈门与序列为t+1时隐藏层输入ht+1之间的权值;
[0117] Wfm1为序列为t时反馈门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0118] Wfm2为序列为t时反馈门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0119] Ginput(t)为序列为t时输入门的输出;
[0120] Wih1为序列为t时输入门与序列为t-1时隐藏层输入ht-1之间的权值;
[0121] Wih2为序列为t时输入门与序列为t+1时隐藏层输入ht+1之间的权值;
[0122] Wim1为序列为t时输入门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0123] Wim2为序列为t时输入门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0124] Wif为序列为t时输入门与序列为t时反馈门之间的权值;
[0125] Gdisremember(t)为序列为t时遗忘门的输出;
[0126] Wdh1为序列为t时遗忘门与序列为t-1时隐藏层输入ht-1之间的权值;
[0127] Wdh2为序列为t时遗忘门与序列为t+1时隐藏层输入ht+1之间的权值;
[0128] Wdm1为序列为t时遗忘门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0129] Wdm2为序列为t时遗忘门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0130] Wmf为序列为t时记忆细胞与序列为t时反馈门之间的权值;
[0131] Wmh1为序列为t时记忆细胞与序列为t-1时隐藏层输入ht-1之间的权值;
[0132] Wmh2为序列为t时记忆细胞与序列为t+1时隐藏层输入ht+1之间的权值;
[0133] Wof为序列为t时输出门与序列为t时反馈门之间的权值;
[0134] Woh1为序列为t时输出门与序列为t-1时隐藏层输入ht-1之间的权值;
[0135] Woh2为序列为t时输出门与序列为t+1时隐藏层输入ht+1之间的权值;
[0136] Wom1为序列为t时输出门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0137] Wom2为序列为t时输出门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0138] Wyh为序列为t时输出与序列为t时隐藏层输入ht之间的权值;
[0139] sigmoid(x)函数为
[0140] tanh(x)函数为
[0141] softmaxk(x)函数为 其中,xk为第k个softmax函数的输入,k 大于1,且小于K;
[0142] xt为序列为t时的输入;
[0143] yt为序列为t时的输出;
[0144] ht为序列为t时隐藏层的输入;
[0145] mt为序列为t时记忆细胞的输出;
[0146] ef为序列为t时反馈门的偏差值;
[0147] ei为序列为t时输入门的偏差值;
[0148] ed为序列为t时遗忘门的偏差值;
[0149] em为序列为t时记忆细胞的偏差值;
[0150] eo为序列为t时输出门的偏差值;
[0151] ey为序列为t时输出的偏差值。
[0152] 优选的,所述网络模型建立单元中参数计算时,
[0153] 当t为1时,参数的计算公式如下:
[0154] Gfeedback(t)=sigmoid(Wfx1xt+Wfh2ht+1+Wfm2mt+1+ef);
[0155] Ginput(t)=sigmoid(WifGfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0156] Gdisremember(t)=sigmoid(Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0157] mt=Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh2ht+1+em);
[0158] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh2ht+1+Wom2mt+1+eo);
[0159] ht=Goutput(t)×mt;
[0160] yt=softmaxk(Wyhht+ey);
[0161] 当t为输入x中的最后一个序列时,上述参数的计算公式如下:
[0162] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+ef);
[0163] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+ei);
[0164] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+ed);
[0165] mt=Gdisremember(t)×mt-1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+em);
[0166] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+eo);
[0167] ht=Goutput(t)×mt;
[0168] yt=softmaxk(Wyhht+ey)。
[0169] 优选的,所述网络模型建立单元中参数计算时,
[0170] 计算输入的第一切词序列中最后一个序列x1n时,参数的计算公式如下:
[0171] Gfeedback(1_n)=sigmoid(Wfx1x1_n+Wfh1h1_n-1+Wfm1m1_n-1+Wfh2h2_1+Wfm2m2_1+ef);
[0172] Ginput(1_n)=sigmoid(Wih1h1_n-1+Wim1m1_n-1+Wif Gfeedback(1_n)+Wih2h2_1+Wim2m2_1+ei);
[0173] Gdisremember(1_n)=sigmoid(Wdh1h1_n-1+Wdm1m1_n-1+Wdf Gfeedback(1_n)+Wdh2h2_1+Wdm2m2_1+ed);
[0174] m1_n=Gdisremember(1_n)×m1_n-1+Gdisremember(1_n)×m2_1+Ginput(1_n)×tanh(Wmf Gfeedback (1_n)+Wmh1h1_n-1+Wmh2h2_1+em);
[0175] Goutput(1_n)=sigmoid(Wof Gfeedback(1_n)+Woh1h1_n-1+Wom1m1_n-1+Woh2h2_1+Wom2m2_1+eo);
[0176] h1_n=Goutput(1_n)×m1_n;
[0177] y1_n=softmaxk(Wyhh1_n+ey);
[0178] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21;
[0179] 计算输入的第二切词序列中第一个序列x21时,参数的计算公式如下:
[0180] Gfeedback(2_1)=sigmoid(Wfx1x2_1+Wfh1h1_n+Wfm1m1_n+Wfh2h2_2+Wfm2m2_2+ef);
[0181] Ginput(2_1)=sigmoid(Wih1h1_n+Wim1m1_n+Wif Gfeedback(2_1)+Wih2h2_2+Wim2m2_2+ei);
[0182] Gdisremember(2_1)=sigmoid(Wdh1h1_n+Wdm1m1_n+Wdf Gfeedback(2_1)+Wdh2h2_2+Wdm2m2_2+ed);
[0183] mt=Gdisremember(2_1)×m1_n+Gdisremember(2_1)×m2_2+Ginput(2_1)×tanh(Wmf Gfeedback(2_1)+Wmh1h1_n+Wmh2h2_2+em);
[0184] Goutput(2_1)=sigmoid(Wof Gfeedback(2_1)+Woh1h1_n+Wom1m1_n+Woh2h2_2+Wom2m2_2+eo);
[0185] h2_1=Goutput(2_1)×m2_1;
[0186] y2_1=softmaxk(Wyhh2_1+ey);
[0187] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21,2_2表示的是第二切词序列x2中第二序列x22。
[0188] 优选的,所述比较单元中比较所述第一输出y1和所述第二输出y2是通过计算所述第一输出y1和所述第二输出y2的相似性。
[0189] 优选的,所述比较单元中比较所述第一输出y1和所述第二输出y2是通过余弦相似性来计算相似性,计算公式为 cosθ余弦值的范围在[-1,1]之间,值越趋近于1,第一输出y1和第二输出y2相应的相似度也越高。
[0190] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0191] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0192] 图1示出了本发明一较佳实施方式的基于双向LSTM神经网络的语句识别方法的流程图;
[0193] 图2示出了本发明一个实施例的双向LSTM神经网络的模型结构示意图;
[0194] 图3示出了图2中双向LSTM神经网络的模型的流程图;
[0195] 图4示出了图2中一实施例的结构图;
[0196] 图5示出了图2中又一实施例的结构图;
[0197] 图6示出了本发明又一较佳实施方式的基于双向LSTM神经网络的语句识别装置的流程图。

具体实施方式

[0198] 本申请提供基于双向LSTM神经网络的语句识别方法及装置,解决了现有技术中的技术问题。
[0199] 本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:
[0200] 实施例一
[0201] 本申请提供的基于双向LSTM神经网络的语句识别方法,请参阅图1,具体包括如下步骤:
[0202] 步骤100,获取第一输入系统和第二输入系统中语句的第一切词序列 x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m};n≥1且n为整数,m≥1且m为整数。
[0203] 其中,所述步骤100中获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m},即为对第一输入系统和第二输入系统中的语句进行切词后,获得第一切词序列 x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m}。
[0204] 所述对第一输入系统和第二输入系统中的语句进行切词,主要是以词语为一个单位进行切词,例如“语言的识别”切词包括“语/言/的/识/别”、“语言/ 的/识别”、“语言的/识别”等,本申请中切词主要是以词语为单位,同时对词语的词性(例如动词、介词、名词等)及位置作标记。
[0205] 步骤200,建立两个双向LSTM神经网络模型;
[0206] 其中,所述步骤200中所述两个双向LSTM神经网络模型包括输入、输出、向前迭代层、向后迭代层。请参阅图2,所述两个双向LSTM神经网络模型中向前迭代层与向后迭代层共同得到的结果为输出结果。具体的,请参阅图3,从输入到隐藏层定义为一个双向LSTM神经网络,在每个双向LSTM神经网络中定义 xt-1为输入的第t-1个序列,xt为输入的第t个序列,xt+1为输入的第t+1个序列,……;第t个序列的双向LSTM神经网络包括反馈门、输入门、输出门、遗忘门、记忆细胞、tanh函数、隐藏层、乘法器。定义隐藏层输出yt-1为输出的第 t-1个序列,yt为输出的第t个序列,yt+1为输出的第t+1个序列,……。
[0207] 在输入的序列为t时,参数的计算公式如下:
[0208] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+Wfh2ht+1+Wfm2mt+1+ef);
[0209] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0210] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0211] mt=Gdisremember(t)×mt-1+Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback (t)+Wmh1ht-1+Wmh2ht+1+em);
[0212] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+Woh2ht+1+Wom2mt+1+eo);
[0213] ht=Goutput(t)×mt;
[0214] yt=softmaxk(Wyhht+ey);
[0215] 其中,
[0216] Gfeedback(t)为序列为t时反馈门102的输出;
[0217] Wfx1为序列为t时反馈门102与序列为t时输入xt的权值;
[0218] Wfh1为序列为t时反馈门102与序列为t-1时隐藏层输入ht-1之间的权值;
[0219] Wfh2为序列为t时反馈门102与序列为t+1时隐藏层输入ht+1之间的权值;
[0220] Wfm1为序列为t时反馈门102与序列为t-1时记忆细胞输入mt-1之间的权值;
[0221] Wfm2为序列为t时反馈门102与序列为t+1时记忆细胞输入mt+1之间的权值;
[0222] Ginput(t)为序列为t时输入门110的输出;
[0223] Wih1为序列为t时输入门110与序列为t-1时隐藏层输入ht-1之间的权值;
[0224] Wih2为序列为t时输入门110与序列为t+1时隐藏层输入ht+1之间的权值;
[0225] Wim1为序列为t时输入门110与序列为t-1时记忆细胞输入mt-1之间的权值;
[0226] Wim2为序列为t时输入门110与序列为t+1时记忆细胞输入mt+1之间的权值;
[0227] Wif为序列为t时输入门110与序列为t时反馈门102之间的权值;
[0228] Gdisremember(t)为序列为t时遗忘门109的输出;
[0229] Wdh1为序列为t时遗忘门109与序列为t-1时隐藏层输入ht-1之间的权值;
[0230] Wdh2为序列为t时遗忘门109与序列为t+1时隐藏层输入ht+1之间的权值;
[0231] Wdm1为序列为t时遗忘门109与序列为t-1时记忆细胞输入mt-1之间的权值;
[0232] Wdm2为序列为t时遗忘门109与序列为t+1时记忆细胞输入mt+1之间的权值;
[0233] Wmf为序列为t时记忆细胞104与序列为t时反馈门102之间的权值;
[0234] Wmh1为序列为t时记忆细胞104与序列为t-1时隐藏层输入ht-1之间的权值;
[0235] Wmh2为序列为t时记忆细胞104与序列为t+1时隐藏层输入ht+1之间的权值;
[0236] Wof为序列为t时输出门108与序列为t时反馈门102之间的权值;
[0237] Woh1为序列为t时输出门108与序列为t-1时隐藏层输入ht-1之间的权值;
[0238] Woh2为序列为t时输出门108与序列为t+1时隐藏层输入ht+1之间的权值;
[0239] Wom1为序列为t时输出门108与序列为t-1时记忆细胞输入mt-1之间的权值;
[0240] Wom2为序列为t时输出门108与序列为t+1时记忆细胞输入mt+1之间的权值;
[0241] Wyh为序列为t时输出与序列为t时隐藏层106输入ht之间的权值;
[0242] sigmoid(x)函数为
[0243] tanh(x)函数为
[0244] softmaxk(x)函数为 其中,xk为第k个softmax函数的输入,k 大于1,且小于K;
[0245] xt为序列为t时的输入101;
[0246] yt为序列为t时的输出107;
[0247] ht为序列为t时隐藏层106的输入;
[0248] mt为序列为t时记忆细胞104的输出;
[0249] ef为序列为t时反馈门102的偏差值;
[0250] ei为序列为t时输入门110的偏差值;
[0251] ed为序列为t时遗忘门109的偏差值;
[0252] em为序列为t时记忆细胞104的偏差值;
[0253] eo为序列为t时输出门108的偏差值;
[0254] ey为序列为t时输出107的偏差值。
[0255] 另外,当t为1时,上述参数的计算公式如下:
[0256] Gfeedback(t)=sigmoid(Wfx1xt+Wfh2ht+1+Wfm2mt+1+ef);
[0257] Ginput(t)=sigmoid(Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0258] Gdisremember(t)=sigmoid(Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0259] mt=Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh2ht+1+em);
[0260] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh2ht+1+Wom2mt+1+eo);
[0261] ht=Goutput(t)×mt;
[0262] yt=softmaxk(Wyhht+ey)。
[0263] 当t为输入x中的最后一个序列时,上述参数的计算公式如下:
[0264] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+ef);
[0265] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+ei);
[0266] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+ed);
[0267] mt=Gdisremember(t)×mt-1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+em);
[0268] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+eo);
[0269] ht=Goutput(t)×mt;
[0270] yt=softmaxk(Wyhht+ey)。
[0271] 步骤300,将所述第一切词序列和所述第二切词序列分别作为所述两个双向 LSTM神经网络模型的第一输入序列和第二输入序列;
[0272] 其中,所述步骤300中将第一切词序列x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m}输入步骤100中建立的两个双向LSTM神经网络模型,作为双向LSTM神经网络模型中的输入。
[0273] 步骤400,通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,以获得标准化后的第一输出y1和第二输出y2;
[0274] 其中,所述步骤400中通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,具体为通过双向LSTM神经网络模型中的参数计算得出输出y1和y2。
[0275] 步骤500,比较所述第一输出y1和第二输出y2,以实现语义识别;
[0276] 其中,所述步骤500中所述比较所述第一输出y1和第二输出y2通过计算所述第一输出y1和所述第二输出y2的相似性,具体为通过余弦相似性来计算,
[0277] 计算 其中cosθ余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越趋近于0,即第一输出y1和第二输出y2相应的相似度也越高,表示第一输入系统中输入的语句和第二输入系统中输入的语句语义相似度高。
[0278] 所述比较所述第一输出y1和第二输出y2可以通过设置阀值来判断第一输入系统中语句与第二输入系统中语句的语义等同程度。
[0279] 本申请采用的余弦相似性来比较第一输出y1和第二输出y2,在其他实施方式中,也可以采用其他标准的相似性度量公式来计算。
[0280] 实施例二
[0281] 基于同样的发明构思,本申请还提供一种基于双向LSTM神经网络的语句识别方法,请参阅图4和图5,本实施例与实施例一不同的是,实施例一是将第一输入系统中的语句和第二输入系统中的语句输入双向LSTM神经网络模型中后是隔离开的,见图4;而本实施例中将第一输入系统中的语句和第二输入系统中的语句输入双向LSTM神经网络模型中后联接起来,见图5。
[0282] 本申请提供的基于双向LSTM神经网络的语句识别方法,请参阅图1,具体包括如下步骤:
[0283] 步骤100,获取第一输入系统和第二输入系统中语句的第一切词序列 x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m};n≥1且n为整数,m≥1且m为整数。
[0284] 其中,所述步骤100中获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m},即为对第一输入系统和第二输入系统中的语句进行切词后,获得第一切词序列 x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m}。
[0285] 所述对第一输入系统和第二输入系统中的语句进行切词,主要是以词语为一个单位进行切词,例如“语言的识别”切词包括“语/言/的/识/别”、“语言/ 的/识别”、“语言的/识别”等,本申请中切词主要是以词语为单位,同时对词语的词性(例如动词、介词、名词等)及位置作标记。
[0286] 步骤200,建立两个双向LSTM神经网络模型;
[0287] 其中,所述步骤100中所述两个双向LSTM神经网络模型包括输入、输出、向前迭代层、向后迭代层。请参阅图2,所述两个双向LSTM神经网络模型中向前迭代层与向后迭代层共同得到的结果为输出结果。具体的,请参阅图3,从输入到隐藏层定义为一个双向LSTM神经网络,在每个双向LSTM神经网络中定义 xt-1为输入的第t-1个序列,xt为输入的第t个序列,xt+1为输入的第t+1个序列,……;第t个序列的双向LSTM神经网络包括反馈门、输入门、输出门、遗忘门、记忆细胞、tanh函数、隐藏层、乘法器。定义隐藏层输出yt-1为输出的第 t-1个序列,yt为输出的第t个序列,yt+1为输出的第t+1个序列,……。
[0288] 在输入的序列为t时,参数的计算公式如下:
[0289] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+Wfh2ht+1+Wfm2mt+1+ef);
[0290] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0291] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0292] mt=Gdisremember(t)×mt-1+Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t) +Wmh1ht-1+Wmh2ht+1+em);
[0293] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+Woh2ht+1+Wom2mt+1+eo);
[0294] ht=Goutput(t)×mt;
[0295] yt=softmaxk(Wyhht+ey);
[0296] 其中,
[0297] Gfeedback(t)为序列为t时反馈门102的输出;
[0298] Wfx1为序列为t时反馈门102与序列为t时输入xt的权值;
[0299] Wfh1为序列为t时反馈门102与序列为t-1时隐藏层输入ht-1之间的权值;
[0300] Wfh2为序列为t时反馈门102与序列为t+1时隐藏层输入ht+1之间的权值;
[0301] Wfm1为序列为t时反馈门102与序列为t-1时记忆细胞输入mt-1之间的权值;
[0302] Wfm2为序列为t时反馈门102与序列为t+1时记忆细胞输入mt+1之间的权值;
[0303] Ginput(t)为序列为t时输入门110的输出;
[0304] Wih1为序列为t时输入门110与序列为t-1时隐藏层输入ht-1之间的权值;
[0305] Wih2为序列为t时输入门110与序列为t+1时隐藏层输入ht+1之间的权值;
[0306] Wim1为序列为t时输入门110与序列为t-1时记忆细胞输入mt-1之间的权值;
[0307] Wim2为序列为t时输入门110与序列为t+1时记忆细胞输入mt+1之间的权值;
[0308] Wif为序列为t时输入门110与序列为t时反馈门102之间的权值;
[0309] Gdisremember(t)为序列为t时遗忘门109的输出;
[0310] Wdh1为序列为t时遗忘门109与序列为t-1时隐藏层输入ht-1之间的权值;
[0311] Wdh2为序列为t时遗忘门109与序列为t+1时隐藏层输入ht+1之间的权值;
[0312] Wdm1为序列为t时遗忘门109与序列为t-1时记忆细胞输入mt-1之间的权值;
[0313] Wdm2为序列为t时遗忘门109与序列为t+1时记忆细胞输入mt+1之间的权值;
[0314] Wmf为序列为t时记忆细胞104与序列为t时反馈门102之间的权值;
[0315] Wmh1为序列为t时记忆细胞104与序列为t-1时隐藏层输入ht-1之间的权值;
[0316] Wmh2为序列为t时记忆细胞104与序列为t+1时隐藏层输入ht+1之间的权值;
[0317] Wof为序列为t时输出门108与序列为t时反馈门102之间的权值;
[0318] Woh1为序列为t时输出门108与序列为t-1时隐藏层输入ht-1之间的权值;
[0319] Woh2为序列为t时输出门108与序列为t+1时隐藏层输入ht+1之间的权值;
[0320] Wom1为序列为t时输出门108与序列为t-1时记忆细胞输入mt-1之间的权值;
[0321] Wom2为序列为t时输出门108与序列为t+1时记忆细胞输入mt+1之间的权值;
[0322] Wyh为序列为t时输出与序列为t时隐藏层106输入ht之间的权值;
[0323] sigmoid(x)函数为
[0324] tanh(x)函数为
[0325] softmaxk(x)函数为 其中,xk为第k个softmax函数的输入,k 大于1,且小于K;
[0326] xt为序列为t时的输入101;
[0327] yt为序列为t时的输出107;
[0328] ht为序列为t时隐藏层106的输入;
[0329] mt为序列为t时记忆细胞104的输出;
[0330] ef为序列为t时反馈门102的偏差值;
[0331] ei为序列为t时输入门110的偏差值;
[0332] ed为序列为t时遗忘门109的偏差值;
[0333] em为序列为t时记忆细胞104的偏差值;
[0334] eo为序列为t时输出门108的偏差值;
[0335] ey为序列为t时输出107的偏差值。
[0336] 当t为1时,上述参数的计算公式如下:
[0337] Gfeedback(t)=sigmoid(Wfx1xt+Wfh2ht+1+Wfm2mt+1+ef);
[0338] Ginput(t)=sigmoid(Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0339] Gdisremember(t)=sigmoid(Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0340] mt=Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh2ht+1+em);
[0341] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh2ht+1+Wom2mt+1+eo);
[0342] ht=Goutput(t)×mt;
[0343] yt=softmaxk(Wyhht+ey)。
[0344] 当t为输入x中的最后一个序列时,上述参数的计算公式如下:
[0345] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+ef);
[0346] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+ei);
[0347] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+ed);
[0348] mt=Gdisremember(t)×mt-1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+em);
[0349] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+eo);
[0350] ht=Goutput(t)×mt;
[0351] yt=softmaxk(Wyhht+ey)。
[0352] 步骤300,将所述第一切词序列和所述第二切词序列分别作为所述两个双向 LSTM神经网络模型的第一输入序列和第二输入序列;
[0353] 其中,所述步骤300中将第一切词序列x1={x11,x12,……,x1n}和第二切词序列x2={x21,x22,……,x2m}输入步骤100中建立的两个双向LSTM神经网络模型,作为双向LSTM神经网络模型中的输入。
[0354] 步骤400,通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,以获得标准化后的第一输出y1和第二输出y2;
[0355] 其中,所述步骤400中通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,具体为通过双向LSTM神经网络模型中的参数对输入的第一切词序列x1={x11,x12,……,x1n}和第二切词序列 x2={x21,x22,……,x2m}计算得出输出y1和y2。
[0356] 本实施例中通过双向LSTM神经网络模型中的参数计算得出输出y1和y2时,与实施例一中不同的是计算输入的第一切词序列中最后一个序列x1n和计算输入的第二切词序列中第一个序列x21时,具体如下:
[0357] 计算输入的第一切词序列中最后一个序列x1n时,
[0358] Gfeedback(1_n)=sigmoid(Wfx1x1_n+Wfh1h1_n-1+Wfm1m1_n-1+Wfh2h2_1+Wfm2m2_1+ef);
[0359] Ginput(1_n)=sigmoid(Wih1h1_n-1+Wim1m1_n-1+Wif Gfeedback(1_n)+Wih2h2_1+Wim2m2_1+ei);
[0360] Gdisremember(1_n)=sigmoid(Wdh1h1_n-1+Wdm1m1_n-1+Wdf Gfeedback(1_n)+Wdh2h2_1+Wdm2m2_1+ed);
[0361] m1_n=Gdisremember(1_n)×m1_n-1+Gdisremember(1_n)×m2_1+Ginput(1_n)×tanh(Wmf Gfeedback (1_n)+Wmh1h1_n-1+Wmh2h2_1+em);
[0362] Goutput(1_n)=sigmoid(Wof Gfeedback(1_n)+Woh1h1_n-1+Wom1m1_n-1+Woh2h2_1+Wom2m2_1+eo);
[0363] h1_n=Goutput(1_n)×m1_n;
[0364] y1_n=softmaxk(Wyhh1_n+ey);
[0365] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21。
[0366] 计算输入的第二切词序列中第一个序列x21时,
[0367] Gfeedback(2_1)=sigmoid(Wfx1x2_1+Wfh1h1_n+Wfm1m1_n+Wfh2h2_2+Wfm2m2_2+ef);
[0368] Ginput(2_1)=sigmoid(Wih1h1_n+Wim1m1_n+Wif Gfeedback(2_1)+Wih2h2_2+Wim2m2_2+ei);
[0369] Gdisremember(2_1)=sigmoid(Wdh1h1_n+Wdm1m1_n+Wdf Gfeedback(2_1)+Wdh2h2_2+Wdm2m2_2+ed);
[0370] mt=Gdisremember(2_1)×m1_n+Gdisremember(2_1)×m2_2+Ginput(2_1)×tanh(Wmf Gfeedback (2_1)+Wmh1h1_n+Wmh2h2_2+em);
[0371] Goutput(2_1)=sigmoid(Wof Gfeedback(2_1)+Woh1h1_n+Wom1m1_n+Woh2h2_2+Wom2m2_2+eo);
[0372] h2_1=Goutput(2_1)×m2_1;
[0373] y2_1=softmaxk(Wyhh2_1+ey);
[0374] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21,2_2表示的是第二切词序列x2中第二序列x22。
[0375] 步骤500,比较所述第一输出y1和第二输出y2,以实现语义识别;
[0376] 其中,所述步骤500中所述比较所述第一输出y1和第二输出y2通过计算所述第一输出y1和所述第二输出y2的相似性,具体为通过余弦相似性来计算,
[0377] 计算 其中cosθ余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越趋近于0,即第一输出y1和第二输出y2相应的相似度也越高,表示第一输入系统中输入的语句和第二输入系统中输入的语句语义相似度高。
[0378] 所述比较所述第一输出y1和第二输出y2可以通过设置阀值来判断第一输入系统中语句与第二输入系统中语句的语义等同程度。
[0379] 实施例二中将第一输入系统和第二输入系统中的两个语句联接起来,提高了对所述两个语句相关性判断的准确性。
[0380] 基于同样的发明构思,本申请还提供一种基于LSTM神经网络的语句识别装置,请参阅图6,所述装置包括:
[0381] 切词获取单元601,用于获取语句的切词序列,获取第一输入系统和第二输入系统中语句的第一切词序列x1={x11,x12,……,x1n}和第二切词序列 x2={x21,x22,……,x2m};
[0382] 网络模型建立单元602,用于建立双向LSTM神经网络模型,建立两个双向 LSTM神经网络模型;
[0383] 所述网络模型建立单元中的每个双向LSTM神经网络模型包括:输入、输入门、遗忘门、记忆细胞、tanh函数、隐藏层、反馈部、输出门;其中,在输入的序列为t时,参数的计算公式如下:
[0384] Gfeedback(t)=sigmoid(Wfx1xt+Wfh1ht-1+Wfm1mt-1+Wfh2ht+1+Wfm2mt+1+ef);
[0385] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0386] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0387] mt=Gdisremember(t)×mt-1+Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t) +Wmh1ht-1+Wmh2ht+1+em);
[0388] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+Woh2ht+1+Wom2mt+1+eo);
[0389] ht=Goutput(t)×mt;
[0390] yt=softmaxk(Wyhht+ey);
[0391] 其中,
[0392] Gfeedback(t)为序列为t时反馈门的输出;
[0393] Wfx1为序列为t时反馈门与序列为t时输入xt的权值;
[0394] Wfh1为序列为t时反馈门与序列为t-1时隐藏层输入ht-1之间的权值;
[0395] Wfh2为序列为t时反馈门与序列为t+1时隐藏层输入ht+1之间的权值;
[0396] Wfm1为序列为t时反馈门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0397] Wfm2为序列为t时反馈门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0398] Ginput(t)为序列为t时输入门的输出;
[0399] Wih1为序列为t时输入门与序列为t-1时隐藏层输入ht-1之间的权值;
[0400] Wih2为序列为t时输入门与序列为t+1时隐藏层输入ht+1之间的权值;
[0401] Wim1为序列为t时输入门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0402] Wim2为序列为t时输入门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0403] Wif为序列为t时输入门与序列为t时反馈门之间的权值;
[0404] Gdisremember(t)为序列为t时遗忘门的输出;
[0405] Wdh1为序列为t时遗忘门与序列为t-1时隐藏层输入ht-1之间的权值;
[0406] Wdh2为序列为t时遗忘门与序列为t+1时隐藏层输入ht+1之间的权值;
[0407] Wdm1为序列为t时遗忘门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0408] Wdm2为序列为t时遗忘门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0409] Wmf为序列为t时记忆细胞与序列为t时反馈门之间的权值;
[0410] Wmh1为序列为t时记忆细胞与序列为t-1时隐藏层输入ht-1之间的权值;
[0411] Wmh2为序列为t时记忆细胞与序列为t+1时隐藏层输入ht+1之间的权值;
[0412] Wof为序列为t时输出门与序列为t时反馈门之间的权值;
[0413] Woh1为序列为t时输出门与序列为t-1时隐藏层输入ht-1之间的权值;
[0414] Woh2为序列为t时输出门与序列为t+1时隐藏层输入ht+1之间的权值;
[0415] Wom1为序列为t时输出门与序列为t-1时记忆细胞输入mt-1之间的权值;
[0416] Wom2为序列为t时输出门与序列为t+1时记忆细胞输入mt+1之间的权值;
[0417] Wyh为序列为t时输出与序列为t时隐藏层输入ht之间的权值;
[0418] sigmoid(x)函数为
[0419] tanh(x)函数为
[0420] softmaxk(x)函数为 其中,xk为第k个softmax函数的输入,k 大于1,且小于K;
[0421] xt为序列为t时的输入;
[0422] yt为序列为t时的输出;
[0423] ht为序列为t时隐藏层的输入;
[0424] mt为序列为t时记忆细胞的输出;
[0425] ef为序列为t时反馈门的偏差值;
[0426] ei为序列为t时输入门的偏差值;
[0427] ed为序列为t时遗忘门的偏差值;
[0428] em为序列为t时记忆细胞的偏差值;
[0429] eo为序列为t时输出门的偏差值;
[0430] ey为序列为t时输出的偏差值。
[0431] 作为一方面,请参阅图4,所述网络模型建立单元的两个模型相互不联接时,所述网络模型建立单元中参数计算时,
[0432] 当t为1时,参数的计算公式如下:
[0433] Gfeedback(t)=sigmoid(Wfx1xt+Wfh2ht+1+Wfm2mt+1+ef);
[0434] Ginput(t)=sigmoid(Wif Gfeedback(t)+Wih2ht+1+Wim2mt+1+ei);
[0435] Gdisremember(t)=sigmoid(Wdf Gfeedback(t)+Wdh2ht+1+Wdm2mt+1+ed);
[0436] mt=Gdisremember(t)×mt+1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh2ht+1+em);
[0437] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh2ht+1+Wom2mt+1+eo);
[0438] ht=Goutput(t)×mt;
[0439] yt=softmaxk(Wyhht+ey);
[0440] 当t为输入x中的最后一个序列时,上述参数的计算公式如下:
[0441] Gfeedback(t)=sigmoid(Wfxxt+Wfh1ht-1+Wfm1mt-1+ef);
[0442] Ginput(t)=sigmoid(Wih1ht-1+Wim1mt-1+Wif Gfeedback(t)+ei);
[0443] Gdisremember(t)=sigmoid(Wdh1ht-1+Wdm1mt-1+Wdf Gfeedback(t)+ed);
[0444] mt=Gdisremember(t)×mt-1+Ginput(t)×tanh(Wmf Gfeedback(t)+Wmh1ht-1+em);
[0445] Goutput(t)=sigmoid(Wof Gfeedback(t)+Woh1ht-1+Wom1mt-1+eo);
[0446] ht=Goutput(t)×mt;
[0447] yt=softmaxk(Wyhht+ey)。
[0448] 作为另一方面,请参阅图5,所述网络模型建立单元的两个模型相互联接时,所述网络模型建立单元中参数计算时,计算输入的第一切词序列中最后一个序列x1n时,参数的计算公式如下:
[0449] Gfeedback(1_n)=sigmoid(Wfx1x1_n+Wfh1h1_n-1+Wfm1m1_n-1+Wfh2h2_1+Wfm2m2_1+ef);
[0450] Ginput(1_n)=sigmoid(Wih1h1_n-1+Wim1m1_n-1+Wif Gfeedback(1_n)+Wih2h2_1+Wim2m2_1+ei);
[0451] Gdisremember(1_n)=sigmoid(Wdh1h1_n-1+Wdm1m1_n-1+Wdf Gfeedback(1_n)+Wdh2h2_1+Wdm2m2_1+ed);
[0452] m1_n=Gdisremember(1_n)×m1_n-1+Gdisremember(1_n)×m2_1+Ginput(1_n)×tanh(Wmf Gfeedback (1_n)+Wmh1h1_n-1+Wmh2h2_1+em);
[0453] Goutput(1_n)=sigmoid(Wof Gfeedback(1_n)+Woh1h1_n-1+Wom1m1_n-1+Woh2h2_1+Wom2m2_1+eo);
[0454] h1_n=Goutput(1_n)×m1_n;
[0455] y1_n=softmaxk(Wyhh1_n+ey);
[0456] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21;
[0457] 计算输入的第二切词序列中第一个序列x21时,参数的计算公式如下:
[0458] Gfeedback(2_1)=sigmoid(Wfx1x2_1+Wfh1h1_n+Wfm1m1_n+Wfh2h2_2+Wfm2m2_2+ef);
[0459] Ginput(2_1)=sigmoid(Wih1h1_n+Wim1m1_n+Wif Gfeedback(2_1)+Wih2h2_2+Wim2m2_2+ei);
[0460] Gdisremember(2_1)=sigmoid(Wdh1h1_n+Wdm1m1_n+Wdf Gfeedback(2_1)+Wdh2h2_2+Wdm2m2_2+ed);
[0461] mt=Gdisremember(2_1)×m1_n+Gdisremember(2_1)×m2_2+Ginput(2_1)×tanh(Wmf Gfeedback (2_1)+Wmh1h1_n+Wmh2h2_2+em);
[0462] Goutput(2_1)=sigmoid(Wof Gfeedback(2_1)+Woh1h1_n+Wom1m1_n+Woh2h2_2+Wom2m2_2+eo);
[0463] h2_1=Goutput(2_1)×m2_1;
[0464] y2_1=softmaxk(Wyhh2_1+ey);
[0465] 其中,1_n表示的是第一切词序列x1中最后一个序列x1n;2_1表示的是第二切词序列x2中第一序列x21,2_2表示的是第二切词序列x2中第二序列x22。
[0466] 输入选取单元603,用于将所述切词获取单元获取的切词序列选择作为所述网络模型建立单元的输入,将所述第一切词序列和所述第二切词序列分别作为所述两个双向LSTM神经网络模型的第一输入序列和第二输入序列;
[0467] 计算单元604,用于将输入选取单元选取的输入引入所述网络模型建立单元建立的双向LSTM神经网络模型的参数计算中计算,使得所述切词序列标准化,以获得标准化后的输出,通过所述双向LSTM神经网络模型的参数对所述第一输入序列和所述第二输入序列进行标准化,以获得标准化后的第一输出y1和第二输出y2;
[0468] 比较单元605,用于比较所述计算单元的输出,比较所述第一输出y1和第二输出y2,以实现语义识别;
[0469] 所述比较单元中比较所述第一输出y1和所述第二输出y2是通过计算所述第一输出y1和所述第二输出y2的相似性。所述比较单元中比较所述第一输出y1和所述第二输出y2是通过余弦相似性来计算相似性,计算公式为 cosθ余弦值的范围在[-1,1]之间,值越趋近于1,第一输出y1和第二输出y2相应的相似度也越高。
[0470] 最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。