发明内容
本申请提供一种文本语义匹配的方法及装置,有机结合多种文本表示以及文本语义匹配的方法,以解决传统文本语义匹配方法缺少序列信息、梯度消失或者梯度***的问题。
本申请提供的方法包括:
一种文本语义匹配的方法,其特征在于,包括:
获取基础文本中的基础词和基础字符,所述基础文本包括至少一个基础词,每个基础词包括至少一个基础字符;
根据所述基础词和基础字符获取基础输入向量;
对所述基础输入向量进行卷积处理,获得至少一个基础局部信息向量;
根据所述基础局部信息向量获取基础局部信息平均向量;
对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理,得到基础池化向量;
获取目标文本中的目标词和目标字符,所述目标文本包括至少一个目标词,每个目标词包括至少一个目标字符;
根据所述目标词和目标字符获取目标输入向量;
对所述目标输入向量进行卷积处理,获得至少一个目标局部信息向量;
根据所述目标局部信息向量获取目标局部信息平均向量;
使用所述基础池化向量对所述目标局部信息平均向量进行具有注意力机制的双向LSTM处理,获得目标池化向量;
计算所述基础池化向量和所述目标池化向量的相似度;
如果所述相似度大于预设值,则确定所述目标文本的语义与所述基础文本的语义匹配。
本申请提供的文本语义匹配的方法不仅考虑了文本中词之间的语义联系,还考虑了字之间的语义联系,不仅考虑了字、词之间正向的语义联系,还考虑了字、词之间反向的语义联系,并且综合应用了多种文本匹配模型,使文本上下文之间的特征信息表达得更为全面、准确和充分,增加了文本匹配的准确度。
在一种可实现的方式中,所述根据所述基础词和基础字符获取基础输入向量包括:
获取所有所述基础词对应的基础词向量和所有所述基础字符对应的基础字向量;
拼接所有所述基础词向量和所有所述基础字向量,得到基础输入向量。
在一种可实现的方式中,所述根据所述基础局部信息向量获取基础局部信息平均向量包括:
拼接所有所述基础局部信息向量生成基础局部信息总向量;
均分所述基础局部信息总向量,得到基础局部信息平均向量。
在一种可实现的方式中,所述对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理,得到基础池化向量包括:
按照所述基础局部信息平均向量的正向顺序,根据不具有注意力机制的LSTM模型依次获取每个所述基础局部信息平均向量的基础正向隐向量;
按照所述基础局部信息平均向量的反向顺序,根据不具有注意力机制的LSTM模型依次获取每个所述基础局部信息平均向量的基础反向隐向量;
拼接每个所述基础局部信息平均向量的所述基础正向隐向量和所述基础反向隐向量,得到每个所述基础局部信息平均向量的基础拼接隐向量;
对所有所述基础拼接隐向量进行Max-pooling处理,得到所述基础池化向量。
在一种可实现的方式中,所述使用所述基础池化向量对所述目标局部信息平均向量进行具有注意力机制的双向LSTM处理,获得目标池化向量包括:
按照所述目标局部信息平均向量的正向顺序,根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标正向隐向量;
按照所述目标局部信息平均向量的反向顺序,使用所述基础池化向量根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标反向隐向量;
拼接每个所述目标局部信息平均向量的所述目标正向隐向量和所述目标反向隐向量,得到每个目标局部信息平均向量的目标拼接隐向量;
根据所述基础池化向量对每个所述目标局部信息平均向量的目标拼接隐向量进行注意力机制操作,得到每个目标局部信息平均向量的权重;
使用所述目标局部信息平均向量的权重与对应的所述目标拼接隐向量得到具有注意力机制的目标拼接隐向量;
对所述具有注意力机制的目标拼接隐向量进行Max-pooling处理,获得所述目标池化向量。
在一种可实现的方式中,所述按照所述目标局部信息向量的正向顺序,根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量对应的目标正向隐向量包括:
根据首个目标局部信息平均向量的预设隐向量和所述基础池化向量生成首个目标局部信息平均向量的目标正向隐向量;
生成第(i-1)个目标局部信息平均向量的目标正向隐向量后,根据第(i-1)个目标正向隐向量和所述基础池化向量生成第i个目标正向隐向量,所述i=2,3,……n,其中n为所述目标局部信息平均向量的个数。
本申请提供的方法使用由待处理文本中词和字对应的词向量和字向量获得总向量,再对所述总向量进行卷积处理、平均化处理以及双向LSTM处理,其中,在处理基础文本时采用不具有注意力机制的LSTM方法,而处理目标文本时,采用具有注意力机制的LSTM方法,分别获得池化向量,再用两个池化向量的相似度作为两篇文本的相似度,再利用所述相似度判断两篇文本是否匹配。该方法不仅考虑了文本中词之间的语义联系,还考虑了字之间的语义联系,不仅考虑了字、词之间正向的语义联系,还考虑了字、词之间反向的语义联系,并且,本申请提供的方法使用多尺度卷积神经网络进行卷积处理,能够以不同尺度提取总向量的局部信息,而且,所用的LSTM方法能够通过记忆单元控制文本中前序字符对后续字符的信息传递阈值,即控制信息在文本中的流动,从而解决文本长短时依赖的问题。此外,采用的双向LSTM模型能够从文本的正向和逆向两个方向提取信息,减少了从单一方向提取信息带来的误差。而且,本方法还融合了CNN和LSTM的优点,既能提取多个不同尺度的局部信息,又能够提取正反方向的序列全局信息,使用注意力机制,更好地利用文本中的语义信息,增加文本中相近词的权重。本申请提供的方法综合应用了多种文本匹配模型,使文本上下文之间的特征信息表达得更为全面、准确和充分,增加了文本匹配的准确度。
本申请还提供一种文本语义匹配装置,所述装置包括:
文本获取模块,用于获取基础文本中的基础词和基础字符,所述基础文本包括至少一个基础词,每个基础词包括至少一个基础字符;
输入向量获取模块,用于根据所述基础词和基础字符获取基础输入向量;卷积处理模块,用于对所述基础输入向量进行卷积处理,获得至少一个基础局部信息向量;
局部信息平均向量获取模块,用于根据所述基础局部信息向量获取基础局部信息平均向量;基础池化向量获取模块,用于对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理,得到基础池化向量;
文本获取模块,还用于获取目标文本中的目标词和目标字符,所述目标文本包括至少一个目标词,每个目标词包括至少一个目标字符;
输入向量获取模块,还用于根据所述目标词和目标字符获取目标输入向量;卷积处理模块,还用于对所述目标输入向量进行卷积处理,获得至少一个目标局部信息向量;
局部信息平均向量获取模块,还用于根据所述目标局部信息向量获取目标局部信息平均向量;目标池化向量获取模块,用于使用所述基础池化向量对所述目标局部信息平均向量进行具有注意力机制的双向LSTM处理,获得目标池化向量;
相似度获取模块,用于计算所述基础池化向量和所述目标池化向量的相似度;
语义匹配模块,用于如果所述相似度大于或者等于预设值,则确定所述目标文本的语义与所述基础文本的语义匹配。
在一种可实现的方式中,所述基础池化向量获取模块包括:
基础正向隐向量获取子模块,用于按照所述基础局部信息平均向量的正向顺序,根据不具有注意力机制的LSTM模型依次获取每个基础局部信息平均向量的基础正向隐向量;
基础反向隐向量获取子模块,用于按照所述基础局部信息平均向量的反向顺序,根据不具有注意力机制的LSTM模型依次获取每个基础局部信息平均向量的基础反向隐向量;
基础拼接隐向量获取子模块,用于拼接每个所述基础局部信息平均向量的所述基础正向隐向量和所述基础反向隐向量,得到每个基础局部信息平均向量的基础拼接隐向量;
基础池化向量获取子模块,用于对所有所述基础拼接隐向量进行Max-pooling处理,得到所述基础池化向量。
在一种可实现的方式中,目标池化向量获取模块包括:
目标正向隐向量获取子模块,用于按照所述目标局部信息平均向量的正向顺序,根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标正向隐向量;
目标反向隐向量获取子模块,用于按照所述目标局部信息平均向量的反向顺序,使用所述基础池化向量根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标反向隐向量;
向量拼接子模块,用于拼接每个所述目标局部信息平均向量的所述目标正向隐向量和所述目标反向隐向量,得到每个目标局部信息平均向量的目标拼接隐向量;
权重获取子模块,用于根据基础池化向量对每个目标局部信息平均向量的目标拼接隐向量进行注意力机制操作,得到每个目标局部信息平均向量的权重;
目标拼接隐向量获取子模块,用于使用所述目标局部信息平均向量的权重与对应的目标拼接隐向量得到具有注意力机制的目标拼接隐向量;
目标池化向量获取子模块,用于对所述具有注意力机制的目标拼接隐向量进行Max-pooling处理,获得所述目标池化向量;
语义匹配模块,用于如果所述相似度大于或者等于预设值,则确定所述目标文本的语义与所述基础文本的语义匹配。
在一种可实现的方式中,所述目标正向隐向量获取子模块包括:
首个目标正向隐向量获取单元,用于根据首个目标局部信息平均向量的预设隐向量和所述基础池化向量生成首个目标局部信息平均向量的目标正向隐向量;
第i个目标正向隐向量获取单元,用于生成第(i-1)个目标局部信息平均向量的目标正向隐向量后,根据第(i-1)个目标正向隐向量和所述基础池化向量生成第i个目标正向隐向量,所述i=2,3,……n,其中n为所述目标局部信息平均向量的个数。
本申请还提供一种存储设备,所述存储设备存储有多条指令,所述指令用于由处理器加载并执行:
获取基础文本中的基础词和基础字符,所述基础文本包括至少一个基础词,每个基础词包括至少一个基础字符;
根据所述基础词和基础字符获取基础输入向量;
对所述基础输入向量进行卷积处理,获得至少一个基础局部信息向量;
根据所述基础局部信息向量获取基础局部信息平均向量;
对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理,得到基础池化向量;
获取目标文本中的目标词和目标字符,所述目标文本包括至少一个目标词,每个目标词包括至少一个目标字符;
根据所述目标词和目标字符获取目标输入向量;
对所述目标输入向量进行卷积处理,获得至少一个目标局部信息向量;
根据所述目标局部信息向量获取目标局部信息平均向量;
使用所述基础池化向量对所述目标局部信息平均向量进行具有注意力机制的双向LSTM处理,获得目标池化向量;
计算所述基础池化向量和所述目标池化向量的相似度;
如果所述相似度大于或者等于预设值,则确定所述目标文本的语义与所述基础文本的语义匹配。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明的保护范围。
本申请的方案部分基于CNN、RNN或者LSTM文本相似度的计算模型来计算两篇相似文本的相似度。
在本申请中,作为标准的文本为基础文本,用于与基础文本进行比较的文本为目标文本。
图1为本申请提供的一种文本语义匹配方法的模型示意图,图2为本申请提供的一种文本语义匹配方法的一种实施例的流程图,结合图1和图2,本申请提供一种文本语义匹配的方法,包括:
S101,获取基础文本中的基础词和基础字符,所述基础文本包括至少一个基础词,每个基础词包括至少一个基础字符。
在一种可实现的方式中,可以通过现有技术中任意一种分词处理方法对基础文本进行分词处理来获得具有顺序的多个基础词,例如:CRF、HMM等方法。
在一种可实现的方式中,可以通过现有技术中任意一种分字处理方法对基础文本进行分字处理来获得具有顺序的多个基础字符。
S102,根据所述基础词和基础字符获取基础输入向量。
图3为本申请提供的一种获取基础输入向量的流程图,结合图3,在一种可实现的方式中,所述根据所述基础词和基础字符获取基础输入向量包括:
S121,获取所有所述基础词对应的基础词向量和所有所述基础字符对应的基础字向量。
在一种可实现的方式中,所述基础词对应的基础词向量可以是预设的。不同的基础词对应的基础词向量可以相同,也可以不同。
所述基础字的字向量也可以是预设的。不同基础字对应的基础字向量可以相同,也可以不同。
S122,由拼接所有所述基础词向量和所有所述基础字向量,得到基础输入向量。
在一种可能的实现方式中,可以按照步骤S101中的顺序来拼接所述基础词向量和所述基础字向量,获得基础输入向量A。
具体地,可以先分别拼接所有基础词向量和所有基础字向量,获得基础词总向量和基础字总向量,再按照基础词总向量-基础字总向量的顺序进行拼接,或者按照基础字总向量-基础词总向量的顺序进行拼接,本实施例对于基础词向量的拼接、基础字向量的拼接,以及基础词总向量和基础字总向量的拼接中的拼接顺序不做具体限定,所有拼接顺序均在本申请保护范围内。
其中,基础词总向量通过将所有基础词向量按照S101中所有基础词的顺序依次拼接而得,基础字总向量通过将所有基础字向量按照S101中所有基础字符的顺序依次拼接而得。
例如,基础文本为“姚明的身高是2.26m”,对其进行分词处理,得到的基础词为:“姚明”、“的”、“身高”、“是”、“2.26m”,再对所述基础文本进行分字处理,得到的基础字符为:“姚”、“明”、“的”、“身”、“高”、“是”、“2.26m”。分别找出所述基础词对应的基础词向量和所述基础字符对应的基础字向量,“姚明”-(0.1,0.2,0.1,0.2,0.1)、“的”-(0.3,0.4,0.3,0.4,0.3)、“身高”-(0.5,0.6,0.5,0.6,0.5)、“是”-(0.7,0.8,0.7,0.8,0.7)、“2.26m”-(0.9,0.8,0.9,0.8,0.9);“姚”-(0.01,0.01,0.01,0.01,0.01)、“明”-(0.02,0.02,0.02,0.02,0.02)、“的”-(0.03,0.03,0.03,0.03,0.03)、“身”-(0.04,0.04,0.04,0.04,0.04)、“高”-(0.05,0.05,0.05,0.05,0.05)、“是”-(0.06,0.06,0.06,0.06,0.06)、“2.26m”-(0.07,0.07,0.07,0.07,0.07),则基础词总向量为(0.1,0.2,0.1,0.2,0.1,0.3,0.4,0.3,0.4,0.3,0.5,0.6,0.5,0.6,0.5,0.7,0.8,0.7,0.8,0.7,0.9,0.8,0.9,0.8,0.9),基础字总向量为(0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07),进一步地,基础输入向量可以为(0.1,0.2,0.1,0.2,0.1,0.3,0.4,0.3,0.4,0.3,0.5,0.6,0.5,0.6,0.5,0.7,0.8,0.7,0.8,0.7,0.9,0.8,0.9,0.8,0.9,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07)。以上仅为示例性说明。
S103,对所述基础输入向量进行卷积处理,获得至少一个基础局部信息向量。
在本申请中,可以使用现有技术中任意一种对向量进行卷积处理的方法对所述基础输入向量进行卷积处理。
在一种可能的实现方式中,对所述基础输入向量进行卷积处理后获得的基础局部信息向量C中元素的个数与基础输入向量中元素的个数相等,并且,所述基础局部信息向量C为一维向量。
图4为本申请提供的一种卷积处理流程示意图,具体描述对所述基础输入向量进行卷积处理的一种可实现方式,结合图4,所述基础输入向量A也可以为矩阵式向量,例如图4中所示的6行5列的矩阵式向量,或者,示例性地,所述基础输入向量A具体可以为:
图5为本申请提供的一种卷积处理流程图,具体描述对基础输入向量进行卷积处理的流程,如图4所示,所述基础输入向量为五维六元素的矩阵式向量。结合图4和图5,在一种可实现的方式中,对所述基础输入向量进行卷积处理,获得至少一个基础局部信息向量包括S131和S132,具体如下:
S131,获取至少一个卷积核。
在本申请中,卷积核B用于获取所述基础输入向量的局部信息,所述卷积核B为包括至少一行的多维向量,即,所述卷积核B可以为m行×p列的矩阵式向量,其中,m≥1,p>1,所述卷积核B为根据卷积的需求而选取的,例如:文本中的nGram信息。
在一种可实现的方式中,所述卷积核B的维度与所述基础输入向量A的维度相同。
在一种可实现的方式中,不同的卷积核中元素的数量可以相同也可以不同。不同卷积核中参数不同。
例如,第一个卷积核可以为如图4所示的第一个卷积核,为4行5列的矩阵式向量,或者,示例性地,所述第一个卷积核具体可以为:
第二个卷积核可以为如图4所示的第二个卷积核,为2行5列的矩阵式向量。
S132,用所述卷积核依次与所述基础输入向量进行卷积处理,获得基础局部信息向量。
在一种可能的实现方式中,所述卷积操作包括:
将所述卷积核覆盖于所述基础输入向量上,所述卷积核的第一行与所述基础输入向量重合;
将所述基础输入向量中第一行第一个元素与所述卷积核中相应位置的元素相乘,所有乘积之和为所述局部信息向量的第一个元素;
将所述卷积核向下移动一行,将所述基础输入向量中第二行第一个元素与所述卷积核中相应位置的元素相乘,所有乘积之和为所述局部信息向量的第二个元素;
依次计算所述基础局部信息向量中的元素;
如果所述卷积核的最后一行与所述基础输入向量的最后一行重合,则输出基础局部信息向量,所述基础局部信息向量中最后一个元素为将所述卷积核覆盖于所述基础输入向量上,所述卷积核的最后一行与所述基础输入向量的最后一行重合,将所述基础输入向量中与所述卷积核中相应位置的元素相乘的乘积之和。
请结合图4,以图4中第一个卷积核为例,用该卷积核进行卷积处理获得的局部信息向量为(c11,c12,c13),其中,
c11=a11*b11+a12*b12+a13*b13+a14*b14+a15*b15+a21*b21+a22*b22+a23*b23+a24*b24+a25*b25+a31*b31+a32*b32+a33*b33+a34*b34+a35*b35+a41*b41+a42*b42+a43*b43+a44*b44+a45*b45
c12=a21*b11+a22*b12+a23*b13+a24*b14+a25*b15+a31*b21+a32*b22+a33*b23+a34*b24+a35*b25+a41*b31+a42*b32+a43*b33+a44*b34+a45*b35+a51*b41+a52*b42+a53*b43+a54*b44+a55*b45
c13=a31*b11+a32*b12+a33*b13+a34*b14+a35*b15+a41*b21+a42*b22+a43*b23+a44*b24+a45*b25+a51*b31+a52*b32+a53*b33+a54*b34+a55*b35+a61*b41+a62*b42+a63*b43+a64*b44+a65*b45
S104,根据所述基础局部信息向量获取基础局部信息平均向量。
图6为本申请提供的一种获取局部信息流程示意图,具体描述根据所述基础局部信息向量获取基础局部信息平均向量,结合图6,在一种可实现的方式中,所述根据所述基础局部信息向量获取基础局部信息平均向量包括S141和S142,具体如下:
S141,拼接所述基础局部信息向量,生成基础局部信息总向量。
请结合图4,图4所示的卷积处理使用两个卷积核,第一个卷积核为四维卷积核,获得的基础局部信息向量为三维向量(c11,c12,c13),第二个卷积核为二维卷积核(参数未示出),获得的基础局部信息向量为五维向量(c21,c22,c23,c24,c25)。
本步骤的具体实现方式可以参见本申请步骤S103,在图4所示的示例中,获得的基础局部信息总向量为(c11,c12,c13,c21,c22,c23,c24,c25)。
S142,均分所述基础局部信息总向量,得到基础局部信息平均向量C’。
根据需求,将所述基础局部信息总向量均分为多个基础局部信息平均向量,所述均分是指平均拆分,而拆分是拼接的逆操作,而平均拆分是指拆分得到的各个向量中元素的个数相等,例如,将步骤S141获得的基础信息总向量均分为两个基础局部信息平均向量,则这两个基础局部信息平均向量分别为(c11,c12,c13,c21)和(c22,c23,c24,c25)。
S105,对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理,得到基础池化向量。
LSTM是在RNN的基础上增加了记忆门,遗忘门等机制的神经网络,该神经网络能够控制LSTM两侧信息流的比例,从而能够消除RNN中存在的梯度消失或者梯度***的问题,对所述基础局部信息平均向量进行双向LSTM处理后,获得的基础池化向量能够更为全面地表征所述基础文本中的特征信息。
图7为本申请提供的一种双向LSTM处理的流程图,具体描述对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理的一种可实现方式,结合图7,在一种可实现的方式中,对所述基础局部信息平均向量C’进行不具有注意力机制的双向LSTM处理包括:
S151,按照所述基础局部信息平均向量C’的正向顺序,根据不具有注意力机制的LSTM模型依次获取每个所述所述基础局部信息平均向量C’的基础正向隐向量c+。
在一种可实现的方式中,所述按照所述基础局部信息平均向量C’的正向顺序,根据不具有注意力机制的LSTM模型依次获取每个所述基础局部信息平均向量C’的基础正向隐向量包括:
根据首个基础局部信息平均向量的预设隐向量生成首个基础局部信息平均向量的基础正向隐向量;
生成第(k-1)个基础局部信息平均向量的基础正向隐向量后,根据第(k-1)个基础正向隐向量和第(k-1)个基础局部信息平均向量生成第k个基础正向隐向量,所述k=2,3,……,m,其中m为所述基础局部信息平均向量的个数。
图8为本申请提供的一种文本特征表示的流程示意图,具体描述对图4中各个基础局部信息平均向量进行文本特征表示的一种可实现方式,结合图8,所述基础局部信息平均向量的基础正向隐向量为c1 +,c2 +。
S152,按照所述基础局部信息平均向量的反向顺序,根据不具有注意力机制的LSTM模型依次获取每个所述基础局部信息平均向量的基础反向隐向量c-。
在一种可实现的方式中,所述按照所述基础局部信息平均向量的反向顺序,根据不具有注意力机制的LSTM模型依次获取每个所述基础局部信息平均向量的基础反向隐向量的具体方法可以参见S151,区别仅在于本步骤是按照所述基础局部信息平均向量的反向顺序依次生成所述基础局部信息平均向量的基础反向隐向量,即,从所述基础局部信息平均向量中最末一个开始,根据末个基础局部信息平均向量对应的预设隐向量生成末个基础局部信息平均向量对应的第一基础反向隐向量,再根据所述第一基础反向隐向量生成倒数第二基础局部信息平均向量对应的第二基础反向隐向量,依次类推,直至生成首个基础局部信息平均向量对应的第m基础反向隐向量。
结合图8,所述基础局部信息平均向量的基础反向隐向量为c1 -和c2 -。
S153,拼接每个所述基础局部信息平均向量的所述基础正向隐向量和所述基础反向隐向量,得到每个所述基础局部信息平均向量的基础拼接隐向量c&。
在一种可实现的方式中,所述拼接每个所述基础局部信息平均向量的所述基础正向隐向量和所述基础反向隐向量为将所述基础正向隐向量中的元素和所述基础反向隐向量中的元素连接在一起,例如,所述基础正向隐向量c+为(0.1,0.2,0.3),所述基础反向隐向量c-为(0.4,0.5,0.6),则所述基础拼接隐向量c&为(0.1,0.2,0.3,0.4,0.5,0.6)。
在本实施例中,所述拼接每个所述基础局部信息平均向量的所述基础正向隐向量和所述基础反向隐向量可以按照基础正向隐向量-基础反向隐向量的顺序进行拼接,也可以按照基础反向隐向量-基础正向隐向量的顺序进行拼接,但是在处理同一个文本时,对所有基础局部信息平均向量来说要按照相同的顺序进行拼接。
S154,对所有所述基础拼接隐向量c&进行Max-pooling处理,得到所述基础局部信息平均向量的基础池化向量D。在本步骤中,Max-pooling处理是指从每个所述基础拼接隐向量c&中选取一个数值最大的元素,拼接这些元素获得一个向量,所获得的向量即为基础池化向量D。
在一种可实现的方式中,每个基础局部信息平均向量C都存在一个对应的基础拼接隐向量c&,而且,所述基础拼接向量c&包括多个元素。
对所有所述基础拼接隐向量c&进行Max-pooling处理,能够防止过拟合,提高模型泛化能力。
在本申请中,所述对所有所述基础拼接隐向量c&进行Max-pooling处理是从每个所述基础拼接隐向量c&的多个元素中选取一个最大的元素,再将这些最大的元素拼接成一个新的向量—基础池化向量D。例如:
所述所有基础拼接隐向量为(0.1,0.2,0.3,0.4,0.5,0.6)、(0.3,0.2,0.5,0.4,0.8,0.1),则基础池化向量为(0.6,0.8)。
S106,获取目标文本中的目标词和目标字符,所述目标文本包括至少一个目标词,每个目标词包括至少一个目标字符。
本步骤的具体实现方式可以参见本申请步骤S101中的相关描述,处理过程类似。
S107,根据所述目标词和目标字符获取目标输入向量。
本步骤的具体实现方式可以参见本申请步骤S102中的相关描述,处理过程类似。
需要说明的是,本步骤中目标词向量与目标字向量的拼接顺序与步骤S102中基础词向量与基础字向量的拼接顺序相同。
S108,对所述目标输入向量进行卷积处理,获得至少一个目标局部信息向量。
本步骤的具体实现方式可以参见本申请步骤S103。
S109,根据所述目标局部信息向量获取目标局部信息平均向量E。
本步骤的具体实现方式可以参见本申请步骤S104。
S110,使用所述基础池化向量对所述目标局部信息平均向量进行具有注意力机制的双向LSTM处理,获得目标池化向量。
图9为本申请提供的另一种双向LSTM处理流程图,具体描述使用所述基础池化向量对所述目标局部信息向量进行具有注意力机制的双向LSTM处理的一种可实现方式,结合图9,在一种可实现的方式中,所述使用所述基础池化向量对所述目标局部信息向量进行具有注意力机制的双向LSTM处理包括:
S1101,按照所述目标局部信息平均向量的正向顺序,根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标正向隐向量e+。
具体地,请结合图8,所述按照所述目标局部信息平均向量的正向顺序,根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标正向隐向量包括:
根据首个目标局部信息平均向量的预设隐向量和所述基础池化向量D生成首个目标局部信息平均向量的目标正向隐向量e1 +;
生成第(i-1)个目标局部信息平均向量的目标正向隐向量后,根据第(i-1)个目标正向隐向量ei +和所述基础池化向量D生成第i个目标正向隐向量,所述i=2,3,……,n,其中n为所述目标局部信息平均向量的个数。
请结合图8,所述目标局部信息平均向量的基础正向隐向量为e1 +,e2 +。
S1102,按照所述目标局部信息平均向量的反向顺序,使用所述基础池化向量根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标反向隐向量。
在一种可实现的方式中,本步骤的具体实现方式可以参见本申请步骤S1101,区别仅在于本步骤是按照所述目标局部信息平均向量的反向顺序依次生成所述目标局部信息平均向量的目标反向隐向量,即,从所述目标局部信息平均向量中最末一个开始,根据第m个目标局部信息平均向量的预设隐向量生成第m个目标局部信息平均向量对应的第m目标反向隐向量,再根据所述第m目标反向隐向量生成倒数第二个目标局部信息平均向量对应的第(m-1)目标反向隐向量,依次类推,直至生成首个目标局部信息平均向量对应的第1目标反向隐向量。
请结合图8,所述目标局部信息平均向量的基础反向隐向量为e1 -,e2 -。
S1103,拼接每个所述目标局部信息平均向量的所述目标正向隐向量和所述目标反向隐向量,得到每个目标局部信息平均向量的目标拼接隐向量。
在一种可实现的方式中,本步骤的具体实现方式可以参见本申请步骤S153。
S1104,根据所述基础池化向量对每个所述目标局部信息平均向量的目标拼接隐向量进行注意力机制操作,得到每个目标局部信息平均向量的权重。
在一种可实现的方式中,所述根据基础池化向量对每个目标局部信息平均向量的目标拼接隐向量进行注意力机制操作可以加大相似词的权值,降低不相似词的权值,从而加强匹配效果。
S1105,使用所述目标局部信息平均向量的权重与对应的目标拼接隐向量得到具有注意力机制的目标拼接隐向量。
在一种可实现的方式中,所述使用所述目标局部信息平均向量的权重与对应的目标拼接隐向量得到具有注意力机制的目标拼接隐向量可以为使用所述目标局部信息平均向量的权重与对应的目标拼接隐向量相乘得到具有注意力机制的目标拼接隐向量。
S1106,对所述具有注意力机制的目标拼接隐向量进行Max-pooling处理,获得所述目标池化向量。
在一种可实现的方式中,所述对所述具有注意力机制的目标拼接隐向量进行Max-pooling处理可以为从每个所述具有注意力机制的目标拼接隐向量的多个元素中选取数值最大的一个组成新的向量—目标池化向量。
S111,计算所述基础输出向量和所述目标输出向量的相似度。
在一种可实现的方式中,所述计算所述基础输出向量和所述目标输出向量的相似度的方法可以使用现有技术中任意一种计算两个向量相似度的方法,如余弦相似度,欧式距离等。
S112,如果所述相似度大于或者等于预设值,则确定所述目标文本的语义与所述基础文本的语义匹配。
在一种可实现的方式中,如果步骤S111获得的相似度大于或者等于预设值,则判断所述目标文本的语义与所述基础文本的语义是匹配的,否则判断所述目标文本的语义与所述基础文本的语义是不匹配的。
在本申请的实施例中,所述预设值可以为根据经验人为设定的预设值,也可以为根据其它条件设定的预设值。
本申请提供的文本语义匹配的方法不仅考虑了词之间的语义联系,还考虑了字之间的语义联系,不仅考虑了字、词之间正向的语义联系,还考虑了字、词之间反向的语义联系,并且综合应用了多种文本匹配模型,使文本上下文之间的特征信息表达得更为全面、准确和充分,增加了文本匹配的准确度。
本申请还提供一种文本语义匹配装置,图10为本申请提供的一种文本语义匹配装置的结构示意图,结合图10,所述装置包括:
文本获取模块101,用于获取基础文本中的基础词和基础字符,所述基础文本包括至少一个基础词,每个基础词包括至少一个基础字符;
输入向量获取模块102,用于根据所述基础词和基础字符获取基础输入向量
卷积处理模块103,用于对所述基础输入向量进行卷积处理,获得至少一个基础局部信息向量;
局部信息平均向量获取模块104,用于根据所述基础局部信息向量获取基础局部信息平均向量;
基础池化向量获取模块105,用于对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理,得到基础池化向量;
文本获取模块101,还用于获取目标文本中的目标词和目标字符,所述目标文本包括至少一个目标词,每个目标词包括至少一个目标字符;
输入向量获取模块102,还用于根据所述目标词和目标字符获取目标输入向量
卷积处理模块103,还用于对所述目标输入向量进行卷积处理,获得至少一个目标局部信息向量;
局部信息平均向量获取模块104,还用于根据所述目标局部信息向量获取目标局部信息平均向量;
目标池化向量获取模块106,用于使用所述基础池化向量对所述目标局部信息平均向量进行具有注意力机制的双向LSTM处理,获得目标池化向量;
相似度获取模块107,用于计算所述基础池化向量和所述目标池化向量的相似度;
语义匹配模块108,用于如果所述相似度大于或者等于预设值,则确定所述目标文本的语义与所述基础文本的语义匹配。
在一种可实现的方式中,所述装置还包括:
子向量获取模块,用于获取所有所述基础词对应的基础词向量和所有所述基础字符对应的基础字向量;
向量拼接模块,用于拼接所有所述基础词向量和所有所述基础字向量,获得基础输入向量;
向量拼接模块,还用于拼接所述基础局部信息向量,获得基础局部信息总向量;
向量均分模块,用于将所述基础局部信息总向量均分为多个基础局部信息平均向量;
子向量获取模块,还用于获取所有所述目标词对应的目标词向量和所有所述目标字符对应的目标字向量;
向量拼接模块,还用于拼接所有所述目标词向量和所有所述目标字向量,获得目标输入向量;
向量拼接模块,还用于拼接所述目标局部信息向量,获得目标局部信息总向量;
向量均分模块,还用于将所述目标局部信息总向量均分为多个目标局部信息平均向量。
在一种可能的实现方式中,所述基础池化向量获取模块105包括:
基础正向隐向量获取子模块,用于按照所述基础局部信息平均向量的正向顺序,根据不具有注意力机制的LSTM模型依次获取每个基础局部信息平均向量的基础正向隐向量;
基础反向隐向量获取子模块,用于按照所述基础局部信息平均向量的反向顺序,根据不具有注意力机制的LSTM模型依次获取每个基础局部信息平均向量的基础反向隐向量;
基础拼接隐向量获取子模块,用于拼接每个所述基础局部信息平均向量的所述基础正向隐向量和所述基础反向隐向量,得到每个基础局部信息平均向量的基础拼接隐向量;
基础池化向量获取子模块,用于对所有所述基础拼接隐向量进行Max-pooling处理,得到所述基础池化向量。
在一种可能的实现方式中,目标池化向量获取模块106包括:
目标正向隐向量获取子模块,用于按照所述目标局部信息平均向量的正向顺序,根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标正向隐向量;
目标反向隐向量获取子模块,用于按照所述目标局部信息平均向量的反向顺序,使用所述基础池化向量根据具有注意力机制的LSTM模型获取每个所述目标局部信息平均向量的目标反向隐向量;
向量拼接子模块,用于拼接每个所述目标局部信息平均向量的所述目标正向隐向量和所述目标反向隐向量,得到每个目标局部信息平均向量的目标拼接隐向量;
权重获取子模块,用于根据基础池化向量对每个目标局部信息平均向量的目标拼接隐向量进行注意力机制操作,得到每个目标局部信息平均向量的权重;
目标拼接隐向量获取子模块,用于使用所述目标局部信息平均向量的权重与对应的目标拼接隐向量得到具有注意力机制的目标拼接隐向量;
目标池化向量获取子模块,用于对所述具有注意力机制的目标拼接隐向量进行Max-pooling处理,获得所述目标池化向量。在一种可能的实现方式中,所述目标正向隐向量获取子模块包括:
首个目标正向隐向量获取单元,用于根据首个目标局部信息平均向量的预设隐向量和所述基础池化向量生成首个目标局部信息平均向量的目标正向隐向量;
第i个目标正向隐向量获取单元,用于生成第(i-1)个目标局部信息平均向量的目标正向隐向量后,根据第(i-1)个目标正向隐向量和所述基础池化向量生成第i个目标正向隐向量,所述i=2,3,……,n,其中n为所述目标局部信息平均向量的个数。
本申请还提供一种存储设备,其特征在于,所述存储设备存储有多条指令,所述指令用于由处理器加载并执行:
获取基础文本,所述基础文本包括至少一个基础词,每个基础词包括至少一个基础字符;
获取所有所述基础词对应的基础词向量和所述基础文本中所有所述基础字符对应的基础字向量;
拼接所有所述基础词向量和所有所述基础字向量,获得基础输入向量;
对所述基础输入向量进行卷积处理,获得至少一个基础局部信息向量;
拼接所述基础局部信息向量,获得基础局部信息总向量;
将所述基础局部信息总向量均分为多个基础局部信息平均向量;
对所述基础局部信息平均向量进行不具有注意力机制的双向LSTM处理,得到基础池化向量;
获取目标文本,所述目标文本包括至少一个目标词,每个目标词包括至少一个目标字符;
获取所有所述目标词对应的目标词向量和所有待处理文本中所有所述目标字符对应的目标字向量;
拼接所有所述目标词向量和所有所述目标字向量,获得目标输入向量;
对所述目标输入向量进行卷积处理,获得至少一个目标局部信息向量;
拼接所述目标局部信息向量,获得目标局部信息总向量;
将所述目标局部信息总向量均分为多个目标局部信息平均向量;
使用所述基础池化向量对所述目标局部信息平均向量进行具有注意力机制的双向LSTM处理,获得目标池化向量;
计算所述基础池化向量和所述目标池化向量的相似度;
如果所述相似度大于或者等于预设值,则确定所述目标文本的语义与所述基础文本的语义匹配。
本申请还提供一种移动终端,其特征在于,包括:
处理器,用于执行各条指令;
前述存储设备。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。