一种确定语义相似度方法及装置与流程

文档序号:20189553发布日期:2020-03-27 19:30阅读:156来源:国知局
一种确定语义相似度方法及装置与流程

本文涉及计算机技术,尤指一种确定语义相似度方法及装置。



背景技术:

随着互联网和人工智能的迅速发展,各种交互式人机对话系统都涌现了出来,与此同时,用户的搜索量也大大增加。对于以上应用而言,如何准确的从知识库或者语料库中检索到符合用户意图的句子则非常关键,直接影响用户的体验。针对这一问题,本专利提出了一种基于神经网络和注意力机制的语义相似度计算方法,来获取同一含义但不同表达方式的句子之间的语义相似度,为人机对话和搜索引擎的相关应用场景提供算法支撑。

现有主要方法有其他神经网络模型和基于预训练的模型,其他神经网络模型如matchpyramid,esim等,虽然也是基于神经网络的模型,但是仍有不足,如matchpyramid,该模型将文本数据比作图像来看,采用卷积等操作进行处理,但毕竟两者之间有所差别,并不能提出足够的特征;同时esim类模型虽然也采用了双向lstm网络进行编码,但是只计算了简单的注意力权重,并不能表示全面的语义特征。而且以上模型均为考虑句子的位置信息,特征提取不足。

基于预训练的模型,一般而言匹配的精确度比较高,但是由于模型参数太多导致一次前向计算的时间较长,这并不符合实际应用的需求。



技术实现要素:

本申请提供了一种确定语义相似度方法及装置,能够达到获得多维度的语义特征,提高语义分析的精确度的目的。

本申请提供了一种语义相似度确定方法,包括:获取第一目标文本的向量和第二目标文本的向量;分别将所述获取的第一目标文本的向量和第二目标文本的向量输入循环神经网络进行编码,得到第一目标文本的表示特征和第二目标文本的表示特征;根据所获取的第一目标文本的表示特征和第二目标文本的表示特征,获取第一目标文本相似度权重矩阵和第二目标文本的相似度权重矩阵;在所述第一目标文相似度权重矩阵中,每一行代表第一目标文本中对应的文本单元与第二目标文本所有文本单元的权重;在第二目标文本的相似度权重矩阵中,每一行代表第二目标文本中对应的文本单元与第一目标文本所有文本单元的权重;根据所获取第一目标文相似度权重矩阵和第二目标文本的相似度权重矩阵,确定出第一目标文本和第二目标文本的语义相似度。

在一个示例性实施例中,上述获取第一目标文本的向量和第二目标文本的向量,包括:采用词嵌入分别得到第一目标文本的文本向量和第二目标文本的文本向量;采用位置嵌入分别得到第一目标文本的位置向量和第二目标文本位置向量;将所述第一目标文本的文本向量和位置向量进行合并得到所述第一目标文本的向量;将所述第二目标文本的文本向量和位置向量进行合并得到所述第二目标文本的向量。

在一个示例性实施例中,上述采用词嵌入分别得到第一目标文本的文本向量和第二目标文本向量,包括:将所述第一目标文本的长度和第二目标文本的长度均调整为预定长度;分别对第一目标文本和第二目标文本中的文本单元进行编码映射,分别获取第一目标文本的文本单元的索引和第二目标文本的文本单元的索引;根据所述预定长度和所述第一目标文本中文本单元的索引得到第一目标文本的文本向量;根据所述预定长度和所述第二目标文本中文本单元的索引得到第二目标文本的文本向量。

在一个示例性实施例中,上述采用位置嵌入分别得到第一目标文本的位置向量和第二目标文本的位置向量,包括:获取第一目标文本原始长度和第二目标文本的原始长度;将所述第一目标文本的原始长度和第二目标文本的原始长度均调整为预定长度;分别对第一目标文本和第二目标文本中的文本单元进行编码映射,分别获取第一目标文本的文本单元的位置和第二目标文本的文本单元的位置;根据所述预定长度和所述第一目标文本中文本单元的位置得到第一目标文本的位置向量;根据所述预定长度和所述第二目标文本中文本单元的位置得到第二目标文本的位置向量。

在一个示例性实施例中,上述分别将所述获取的第一向量和第二向量输入循环神经网络进行编码,得到第一目标文本的表示特征和第二目标文本的表示特征,包括:分别将所述获取的第一目标文本的向量和第二目标文本的向量输入双向lstm网络进行编码;将所得的两个方向的关于所述第一目标文本的向量的输出结果进行合并得到第一目标文本的表示特征;将所得的两个方向的关于所述第二目标文本的向量的输出结果进行合并得到第二目标文本的表示特征。

在一个示例性实施例中,上述根据所述第一目标文本的表示特征和第二目标文本的表示特征,获取第一目标文本相似度权重矩阵和第二目标文本的相似度权重矩阵,包括:分别将第一目标文本的表示特征和第二目标文本的表示特征进行线性变换映射到高维度空间,获得第一目标文本的高维度特征和第二目标文本的高维度特征;将获取的第一目标文本的高维度特征和第二目标文本的高维度特征进行维度转换,得到转换后的第一目标文本的转换维度特征和第二目标文本的转换维度特征;将得到的第一目标文本的转换维度特征和转置后的第二目标文本的转换维度特征进行矩阵相乘得到第一目标文本的相似度权重矩阵对得到的第一目标文本的相似度权重矩阵进行转置得到第二目标文本的相似度权重矩阵。

在一个示例性实施例中,上述根据所获取第一目标文相似度权重矩阵和第二目标文本的相似度权重矩阵,确定出第一目标文本和第二目标文本的语义相似度,包括:对所述第一目标文本的表示特征和第二目标文本的相似度权重矩阵进行矩阵相乘后进行维度转换,得到第一目标文本的加权特征;对所述第二目标文本的表示特征和第一目标文本的相似度权重矩阵进行矩阵相乘后进行维度转换,得到第二目标文本的加权特征;根据第一目标文本的加权特征和第二目标文本的加权特征,分别采用两个隐层的特定节点数的单向lstm网络得到特征后进行池化操作,得到所述第一目标文本语义表示向量和第二目标文本的语义表示向量;对得到的第一目标文本语义表示向量矩阵表示和第二目标文本的语义表示向量矩阵表示采用余弦相似度计算确定出第一目标文本和第二目标文本的语义相似度。

在一个示例性实施例中,上述将获取的第一目标文本的高维度特征和第二目标文本的高维度特征进行维度转换,得到转换后的第一目标文本的转换维度特征和第二目标文本的转换维度特征,包括:将获取的第一目标文本的高维度特征和第二目标文本的高维度特征分别进行多维度转换,将原来的单个语义空间映射到多个语义空间,得到转换后的第一目标文本的转换维度特征和第二目标文本的转换维度特征。

在一个示例性实施例中,上述将所述第一目标文本的原始长度和第二目标文本的原始长度均调整为预定长度之前,还包括:去除所述第一目标文本和第二目标文本中指定特征。

本申请还提供一种语义相似度确认装置,包括:向量获取模块,用于获取第一目标文本的向量和第二目标文本的向量;编码模块,用于分别将所述获取的第一目标文本的向量和第二目标文本的向量输入循环神经网络进行编码,得到第一目标文本的表示特征和第二目标文本的表示特征;分析模块,用于根据所获取的第一目标文本的表示特征和第二目标文本的表示特征,获取第一目标文相似度权重矩阵和第二目标文本的相似度权重矩阵;在所述第一目标文相似度权重矩阵中,每一行代表第一目标文本中对应的每一个文本单元与第二目标文本所有文本单元的权重;在第二目标文本的相似度权重矩阵中,每一行代表第二目标文本中对应的每一个文本单元与第一目标文本所有文本单元的权重;分析模块,还用于根据所获取第一目标文相似度权重矩阵和第二目标文本的相似度权重矩阵,确定出第一目标文本和第二目标文本的语义相似度。

与相关技术相比,本申请通过对目标文本进行编码可以获取多维度的语义特征信息。

在一个示例性实施例中,本申请相比传统的注意力机制或者自注意力机制,采用多头注意力机制将目标文本的特征映射到多个语义空间,从而得到更加全面的语义特征。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。

附图说明

附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本申请实施例方法流程图;

图2为本申请实施例装置示意图。

具体实施方式

本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。

本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。

此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。

下面将结合附图及实施例对本申请的技术方案进行更详细的说明。

如图1所示,本发明实施例一种语义相似度确定方法,包括如下步骤:

s1、获取第一目标文本的向量a和第二目标文本的向量b;

示例性的,目标文本可以为句子、段落等等。

s2、分别将所述获取的第一目标文本的向量a和第二目标文本的向量b输入循环神经网络进行编码,得到第一目标文本的表示特征t11和第二目标文本的表示特征t12;

示例性的,循环神经网络可以为循环神经网络rnn、lstm、gru等等。

s3、根据所获取的第一目标文本的表示特征t11和第二目标文本的表示特征t12,获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42;在所述第一目标文相似度权重矩阵t41中,每一行代表第一目标文本中对应的每一个文本单元与第二目标文本所有文本单元的权重;在第二目标文本的相似度权重矩阵t42中,每一行代表第二目标文本中对应的每一个文本单元与第一目标文本所有文本单元的权重;

s4、根据所获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,确定出第一目标文本和第二目标文本的语义相似度。

在一个示例性实施例中文本单元可以为单个字符、字等,也可以为词语等。

在一个示例性实施例中,步骤s1中,所述获取第一目标文本的向量a和第二目标文本的向量b,包括如下步骤:

s10、采用词嵌入分别得到第一目标文本的文本向量d1和第二目标文本的文本向量d2;

s11、采用位置嵌入分别得到第一目标文本的位置向量p1和第二目标文本位置向量p2;

s12、将所述第一目标文本的文本向量d1和位置向量p1进行合并得到所述第一目标文本的向量a;将所述第二目标文本的文本向量d2和位置向量p2进行合并得到所述第二目标文本的向量b。

在一个示例性实施例中,步骤s10中,所述采用词嵌入分别得到第一目标文本的文本向量d1和第二目标文本向量d2,包括:

s101、获取第一目标文本原始长度m1和第二目标文本的原始长度m2;将所述第一目标文本的原始长度m1和第二目标文本的原始长度均调整为预定长度s;

示例性的,当第一目标文本为句子sent1,第二目标文本为句子sent2,将不同长度两个句子通过填充和裁剪的方式保持同一长度s,同时计算mask(掩膜),mask记录句子的原始长度,比如一句话原始长度为28,填充到长度s,那么前28个值为1,后s-28个值为0。在训练数据时可以对于语义相似的目标文本标记为1,语义不相似的目标文本标记为0。

s102、分别对第一目标文本和第二目标文本中的文本单元进行编码映射,分别获取第一目标文本的文本单元的索引id1和第二目标文本的文本单元的索引id2;

示例性的,如果语料库中一共有20000个字,那么就生成一个id从0至19999的一个字典数据,每个字对应一个不同的id,同理每一个id对应一个不同的字。

s103、根据所述第一目标的预定长度s和文本单元的索引id1得到第一目标文本的文本向量d1;根据所述第二目标的预定长度s和文本单元的索引id2得到第二目标文本的文本向量d2。

示例性的,因计算机无直接处理汉字,因此需要将一句话转换为到数字的一系列表示。假设语料中一共有20000个不同的汉字(包括其他常用符号),每个汉字随机初始化为一个300维的向量,那么即可得到一个维度为[20000,300]的向量d,其中对于索引id从0至19999,每个id对应一个不同的汉字。那么对两句话(长度均为s)中的每一个字,都可以在d中找到对应的id,从而获取对应的向量,因此可以得到两个维度为[s,300]的向量。

在一个示例性实施例中,步骤s11中,所述采用位置嵌入分别得到第一目标文本的位置向量p1和第二目标文本的位置向量p2,包括如下步骤:

s110、获取第一目标文本原始长度m1和第二目标文本的原始长度m2;将所述第一目标文本的原始长度m1和第二目标文本的原始长度均调整为预定长度s;

示例性的,如上述所述,当第一目标文本为句子sent1,第二目标文本为句子sent2,将不同长度的句子通过填充和裁剪的方式保持同一长度s,同时计算mask,mask记录句子的原始长度,比如一句话原始长度为28,填充到长度s,那么前28个值为1,后s-28个值为0。

s111、分别对第一目标文本和第二目标文本中的文本单元进行编码映射,分别获取第一目标文本的文本单元的位置id1和第二目标文本的文本单元的位置id2;s112、根据所述第一目标的预定长度s和文本单元的位置id1得到第一目标文本的位置向量p1;根据所述第二目标的预定长度s和文本单元的位置id2得到第二目标文本的位置向量p2。

为了获取目标文本中不同字符的位置信息,采用了位置向量p(类似于向量d),设定p的维度为[200,50],其中s=200为目标文本的最大长度,50为对应位置的特征数。假设第一、第二目标文本为句子,句子sent1和句子sent2的原始长度分别为61和28,那么sent1的位置id即为1,2,3,4,..,61,剩下的s-61个为0,同理sent2的位置id即为1,2,3,4,...,28,剩下的s-28个为0。对于每一个位置id,都可以在向量p中找到对应的向量,因此可以得到两个维度为[s,50]的向量。

得到上述每个句子的文本和位置向量后,再分别对每个句子的文本和位置向量进行合并后得到每个句子的向量。在一个示例实施例中,采用将句子的文本和位置向量进行横向拼接合并。因此,以上两个句子sent1和sent2分别可以得到一个维度为[s,350]的向量。

在一个示例性实施例中,步骤s2中,所述分别将所述获取的第一向量a和第二向量b输入循环神经网络进行编码,得到第一目标文本的表示特征t11和第二目标文本的表示特征t12,包括如下步骤:

s20、分别将所述获取的第一目标文本的向量a和第二目标文本的向量b输入双向lstm网络进行编码;所述循环神经网络包括所述双向lstm网络;

s21、将所得的两个方向的关于所述第一目标文本的向量a的输出结果进行合并得到第一目标文本的表示特征t11;将所得的两个方向的关于所述第二目标文本的向量b的输出结果进行合并得到第二目标文本的表示特征t12。

示例性的,将所得的两个词嵌入和位置嵌入的结果分别使用双向lstm网络进行特征提取,然后将双向长短期记忆网络所得的两个方向的输出结果进行合并,得到两个句子sent1和sent2的最终编码结果:表示特征t11,t12,两个句子sent1和sent2表示特征t11,t12维度均为[s,e]。

在一个示例性实施例中,步骤s3中,所述根据所述第一目标文本的表示特征t11和第二目标文本的表示特征t12,获取第一目标文本相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,包括如下步骤:

s31、分别将第一目标文本的表示特征t11和第二目标文本的表示特征t12进行线性变换映射到高维度空间,获得第一目标文本的高维度特征t21和第二目标文本的高维度特征t22;所述高维度空间为高于第一目标文本的表示特征和第二目标文本的表示特征维度空间的维度空间;

s32、将获取的第一目标文本的高维度特征t21和第二目标文本的高维度特征t22进行维度转换,得到转换后的第一目标文本的转换维度特征t31和第二目标文本的转换维度特征t32;

s33、将得到的第一目标文本的转换维度特征t31和转置后的第二目标文本的转换维度特征t32进行矩阵相乘得到第一目标文本的相似度权重矩阵t41;对得到的第一目标文本的相似度权重矩阵t41进行转置得到第二目标文本的相似度权重矩阵t42。

具体的,分别根据第一目标文本和第二目标文本的mask进行softmax计算,获得第一目标文本的相似度权重矩阵t41=t31*(t32)t和第二目标文本的相似度权重矩阵t42;其中,所述第一目标文本的mask是根据获取第一目标文本原始长度m1和预定长度s获得;所述第一目标文本的mask是根据所述第二目标文本的原始长度m2和预定长度s。

示例性的,采用多头注意力机制计算相似性权重矩阵,当第一目标文本为句子,sent1第二目标文本为句子sent2,将所得到的句子sent1表示特征t11进行线性变换的结果映射成一个维度为[s,512]的新的特征:句子sent1的高维度特征t21;同理得到句子sent2的高维度特征t22,即:句子sent1的高维度特征t11与句子sent2的高维度特征t12分别乘以一个维度为[e,512]的矩阵。

其次,将句子sent1的高维度特征t21和句子sent2的高维度特征t22分别进行维度转换,由原来的维度[s,512]->[8,s,64],得到句子sent1和sent2的新的特征t31,t32。即由原来的一个语义空间映射到8个语义空间,增强了句子的语义特征和语义表达能力。

然后,对句子sent1和句子sent2的新的特征t31,t32进行矩阵相乘得到:句子sent1的相似度权重矩阵t41=t31*(t32)t,t为转置操作;句子sent2的相似度权重矩阵t42=(t41)t。具体的,句子sent1和句子sent2根据各自的mask分别进行softmax计算,得到句子sent1的相似度权重矩阵t41,句子sent2的相似度权重矩阵t42。在数据处理阶段,短句子需要被填充,因此在计算softmax的时候,需要使用mask屏蔽掉这些填充的数据,只根据真实长度计算。句子sent1的相似度权重矩阵t41和句子sent2的相似度权重矩阵t42维度均为[8,s,s]。但是两者含义不同:在句子sent1的相似度权重矩阵t41中,每一行代表句子sent1中对应的每一个字与句子sent2所有字的权重。在句子sent2的相似度权重矩阵t42中,每一行代表句子sent2中对应的每一个字与句子sent1所有字的权重。第句子sent1的相似度权重矩阵t41和句子sent2的相似度权重矩阵t42即为相似性权重矩阵。

在一个示例性实施例中,步骤s3中,所述根据所获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,确定出第一目标文本和第二目标文本的语义相似度,还包括如下步骤:

s36、对所述第一目标文本的表示特征t11和第二目标文本的相似度权重矩阵t42进行矩阵相乘后进行维度转换,得到第一目标文本的加权特征t51;

对所述第二目标文本的表示特征t12和第一目标文本的相似度权重矩阵t41进行矩阵相乘后进行维度转换,得到第二目标文本的加权特征t52。

示例性的,对于所得到的句子sent1、句子sent2的相似度权重矩阵t41、t42以及句子sent1、句子sent2的表示特征t11与t12,将句子sent1的相似度权重矩阵t41与句子sent2的表示特征t12进行矩阵相乘得到句子sent2的加权特征t52=t41*t12;将句子sent2的相似度权重矩阵t42与句子sent1的表示特征t11进行矩阵相乘得到句子sent1的加权特征t51=t42*t11,t51与t52的维度均为[8,s,64],然后分别进行维度转换即[8,s,64]->[s,512],依旧记为t51,t52。

在一个示例性实施例中,步骤s3中,所述根据所获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,确定出第一目标文本和第二目标文本的语义相似度,还包括如下步骤:

s37、根据第一目标文本的加权特征t51和第二目标文本的加权特征t52,分别采用两个隐层的特定节点数的单向lstm网络得到特征后进行池化操作得到所述第一目标文本语义表示向量t71和第二目标文本的语义表示向量t72;

s38、对得到的第一目标文本语义表示向量矩阵表示t71和第二目标文本的语义表示向量矩阵表示t72采用余弦相似度计算确定出第一目标文本和第二目标文本的语义相似度。

对所得的句子sent1、句子sent2的加权特征t51、t52,因维度较高,因此需要降低维度,提取宏观语义特征。将句子sent1、句子sent2的加权特征t51,t52分别通过两个隐层节点数较少(如100)的单向lstm网络得到特征t61和t62,两者维度均为[s,100],然后将t61,t62进行池化操作可得到两个维度为[100]的最终句子sent1、句子sent2的语义表示向量t71、t72。

将所得的句子sent1、句子sent2的语义表示向量t71、t72进行余弦相似度计算,得到最终的得分,示例性的,得分处于0-1之间。在训练阶段,可以采用均方误差(mse)计算两个句子之间的相似性误差并进行反向传播。在预测阶段,输出两个句子的相似性得分。

在一个示例性实施例中,步骤s101和步骤s110中,所述第一目标文本原始长度m1和第二目标文本的原始长度m2;将所述第一目标文本的原始长度m1和第二目标文本的原始长度均调整为预定长度s之前,还包括步骤:去除所述第一目标文本和第二目标文本中指定特征。

示例性的,在进行语义相似度计算前,首先要对数据进行清洗,去除句子中的一些不必要的符号如表情符号、网址链接以及多余的标点等。

如图2所示,本发明实施例一种语义相似度确定装置,包括如下模块:

向量获取模块10,用于获取第一目标文本的向量a和第二目标文本的向量b;

示例性的,目标文本可以为词语、句子、段落等。

编码模块20,用于分别将所述获取的第一目标文本的向量a和第二目标文本的向量b输入循环神经网络进行编码,得到第一目标文本的表示特征t11和第二目标文本的表示特征t12;

示例性的,循环神经网络可以为循环神经网络rnn、lstm、gru等等。

分析模块30,用于根据所获取的第一目标文本的表示特征t11和第二目标文本的表示特征t12,获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42;在所述第一目标文相似度权重矩阵t41中,每一行代表第一目标文本中对应的每一个文本单元与第二目标文本所有文本单元的权重;在第二目标文本的相似度权重矩阵t42中,每一行代表第二目标文本中对应的每一个文本单元与第一目标文本所有文本单元的权重;分析模块30,还用于根据所获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,确定出第一目标文本和第二目标文本的语义相似度。

在一个示例性实施例中,向量获取模块10获取第一目标文本的向量a和第二目标文本的向量b,是指:

向量获取模块10,用于采用词嵌入分别得到第一目标文本的文本向量d1和第二目标文本的文本向量d2;

向量获取模块10,用于采用位置嵌入分别得到第一目标文本的位置向量p1和第二目标文本位置向量p2;

向量获取模块10,用于将所述第一目标文本的文本向量d1和位置向量p1进行合并得到所述第一目标文本的向量a;将所述第二目标文本的文本向量d2和位置向量p2进行合并得到所述第二目标文本的向量b。

在一个示例性实施例中,向量获取模块10采用词嵌入分别得到第一目标文本的文本向量d1和第二目标文本向量d2,是指:

向量获取模块10,用于获取第一目标文本原始长度m1和第二目标文本的原始长度m2;将所述第一目标文本的原始长度m1和第二目标文本的原始长度均调整为预定长度s;

示例性的,当第一目标文本为句子sent1,第二目标文本为句子sent2,将不同长度两个句子通过填充和裁剪的方式保持同一长度s,同时计算mask,mask记录句子的原始长度,比如一句话原始长度为28,填充到长度s,那么前28个值为1,后s-28个值为0。并对于语义相似的两个目标文本,标记为1,语义不相似的目标文本标记为0,来对训练数据进行提前标记。

向量获取模块10,用于分别对第一目标文本和第二目标文本中的文本单元进行编码映射,分别获取第一目标文本的文本单元的索引id1和第二目标文本的文本单元的索引id2;

示例性的,如果语料库中一共有20000个字,那么就生成一个id从0至19999的一个字典数据,文本单元对应一个不同的id,同理每一个id对应一个不同的字。s103、根据所述第一目标的预定长度s和文本单元的索引id1得到第一目标文本的文本向量d1;根据所述第二目标的预定长度s和文本单元的索引id2得到第二目标文本的文本向量d2。示例性的,因计算机无直接处理汉字,因此需要将一句话转换为到数字的一系列表示。假设语料中一共有20000个不同的汉字(包括其他常用符号),每个汉字随机初始化为一个300维的向量,那么即可得到一个维度为[20000,300]的向量d,其中对于索引id从0至19999,每个id对应一个不同的汉字。那么对两句话(长度均为s)中的每一个字,都可以在d中找到对应的id,从而获取对应的向量,因此可以得到两个维度为[s,300]的向量。

在一个示例性实施例中,向量获取模块10采用位置嵌入分别得到第一目标文本的位置向量p1和第二目标文本的位置向量p2,包括如下步骤:

向量获取模块10,用于获取第一目标文本原始长度m1和第二目标文本的原始长度m2;将所述第一目标文本的原始长度m1和第二目标文本的原始长度均调整为预定长度s;

示例性的,当第一目标文本为句子sent1,第二目标文本为句子sent2,将不同长度的句子通过填充和裁剪的方式保持同一长度s,同时计算mask,mask记录句子的原始长度,比如一句话原始长度为28,填充到长度s,那么前28个值为1,后s-28个值为0。并对于语义相似的两个句子,标记为1,语义不相似的句子标记为0。

向量获取模块10,用于分别对第一目标文本和第二目标文本中的文本单元进行编码映射,分别获取第一目标文本的文本单元的位置id1和第二目标文本的文本单元的位置id2;s112、根据所述第一目标的预定长度s和文本单元的位置id1得到第一目标文本的位置向量p1;根据所述第二目标的预定长度s和文本单元的位置id2得到第二目标文本的位置向量p2。

为了获取目标文本中不同字符的位置信息,采用了位置向量p(类似于向量d),设定p的维度为[200,50],其中s=200为目标文本的最大长度,50为对应位置的特征数。假设第一、第二目标文本为句子,句子sent1和句子sent2的原始长度分别为61和28,那么sent1的位置id即为1,2,3,4,..,61,剩下的s-61个为0,同理sent2的位置id即为1,2,3,4,...,28,剩下的s-28个为0。对于每一个位置id,都可以在向量p中找到对应的向量,因此可以得到两个维度为[s,50]的向量。

再对于每个句子得到的文本和位置向量进行合并得到每个句子的向量。在一个示例实施例中,采用将句子的文本和位置向量进行横向拼接合并。因此,以上两个句子sent1和sent2分别可以得到一个维度为[s,350]的向量。

在一个示例性实施例中,编码模块20,用于分别将所述获取的第一向量a和第二向量b输入循环神经网络进行编码,得到第一目标文本的表示特征t11和第二目标文本的表示特征t12,是指:

编码模块20,用于分别将所述获取的第一目标文本的向量a和第二目标文本的向量b输入双向lstm网络进行编码;所述循环神经网络包括所述双向lstm网络;

编码模块20,用于将所得的两个方向的关于所述第一目标文本的向量a的输出结果进行合并得到第一目标文本的表示特征t11;将所得的两个方向的关于所述第二目标文本的向量b的输出结果进行合并得到第二目标文本的表示特征t12。

示例性的,将所得的两个词嵌入和位置嵌入的结果分别使用双向lstm网络进行特征提取,然后将双向长短期记忆网络所得的两个方向的输出结果进行合并,得到两个句子sent1和sent2的最终编码结果:表示特征t11,t12,两个句子sent1和sent2表示特征t11,t12维度均为为[s,e]。

在一个示例性实施例中,分析模块30,用于根据所述第一目标文本的表示特征t11和第二目标文本的表示特征t12,获取第一目标文本相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,是指:

分析模块30,用于分别将第一目标文本的表示特征t11和第二目标文本的表示特征t12进行线性变换映射到高维度空间,获得第一目标文本的高维度特征t21和第二目标文本的高维度特征t22;

分析模块30,用于将获取的第一目标文本的高维度特征t21和第二目标文本的高维度特征t22进行维度转换,得到转换后的第一目标文本的转换维度特征t31和第二目标文本的转换维度特征t32;

分析模块30,用于将得到的第一目标文本的转换维度特征t31和转置后的第二目标文本的转换维度特征t32进行矩阵相乘得到第一目标文本的相似度权重矩阵t41;对得到的第一目标文本的相似度权重矩阵t41进行转置得到第二目标文本的相似度权重矩阵t42。;

具体的,分析模块30,用于分别根据第一目标文本和第二目标文本的mask进行softmax计算,获得第一目标文本的相似度权重矩阵t41=t31*(t32)t和第二目标文本的相似度权重矩阵t42;其中,所述第一目标文本的mask是根据获取第一目标文本原始长度m1和预定长度s获得;所述第二目标文本的mask是根据所述第二目标文本的原始长度m2和预定长度s。

示例性的,当第一目标文本为句子sent1,第二目标文本为句子sent2,将所得到的句子sent1表示特征t11进行线性变换的结果映射成一个维度为[s,512]的新的特征:句子sent1的高维度特征t21;同理得到句子sent2的高维度特征t22,即:句子sent1的高维度特征t11与句子sent2的高维度特征t12分别乘以一个维度为[e,512]的矩阵。

其次,将句子sent1的高维度特征t21和句子sent2的高维度特征t22分别进行维度转换,由原来的维度[s,512]->[8,s,64],维度变化:512=8*64,相当于把512分成8份,每份64。得到句子sent1和sent2的新的特征t31,t32。即由原来的一个语义空间映射到8个语义空间,增强了句子的语义特征和语义表达能力。

句子sent1和句子sent2的新的特征t31,t32进行矩阵相乘得到:句子sent1的相似度权重矩阵t41=t31*(t32)t,t为转置操作;句子sent2的相似度权重矩阵t42=(t41)t。具体的,句子sent1,句子sent2根据各自的mask分别进行softmax计算sent1的相似度权重矩阵t41,句子sent2的相似度权重矩阵t42。句子sent1的相似度权重矩阵t41和句子sent2的相似度权重矩阵t42维度均为[8,s,s]。但是两者含义不同:在句子sent1的相似度权重矩阵t41中,每一行代表句子sent1中对应的每一个字与句子sent2所有字的权重。在句子sent2的相似度权重矩阵t42中,每一行代表句子sent2中对应的每字与句子sent1所有字的权重。第句子sent1的相似度权重矩阵t41和句子sent2的相似度权重矩阵t42即为相似性权重矩阵。

在一个示例性实施例中,步骤s3中,分析模块30,用于根据所获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,确定出第一目标文本和第二目标文本的语义相似度,还指:

分析模块30,用于对所述第一目标文本的表示特征t11和第二目标文本的相似度权重矩阵t42进行矩阵相乘后进行维度转换,得到第一目标文本的加权特征t51;对所述第二目标文本的表示特征t12和第一目标文本的相似度权重矩阵t41进行矩阵相乘后进行维度转换,得到第二目标文本的加权特征t52。

示例性的,对于所得到的句子sent1、句子sent2的相似度权重矩阵t41、t42以及句子sent1、句子sent2的表示特征t11与t12,将句子sent1的相似度权重矩阵t41与句子sent2的表示特征t12进行矩阵相乘得到句子sent2的加权特征t52=t41*t12;将句子sent2的相似度权重矩阵t42与句子sent1的表示特征t11进行矩阵相乘得到句子sent1的加权特征t51=t42*t11,t51与t52的维度均为[8,s,64],然后分别进行维度转换即[8,s,64]->[s,512],依旧记为t51,t52。

在一个示例性实施例中,步骤s3中,分析模块30,用于根据所获取第一目标文相似度权重矩阵t41和第二目标文本的相似度权重矩阵t42,确定出第一目标文本和第二目标文本的语义相似度,还指:

分析模块30,用于根据第一目标文本的加权特征t51和第二目标文本的加权特征t52,分别采用两个隐层的特定节点数的单向lstm网络得到特征后进行池化操作得到所述第一目标文本语义表示向量t71和第二目标文本的语义表示向量t72;

分析模块30,用于对得到的第一目标文本语义表示向量矩阵表示t71和第二目标文本的语义表示向量矩阵表示t72采用余弦相似度计算确定出第一目标文本和第二目标文本的语义相似度。

对所得的句子sent1、句子sent2的加权特征t51、t52,因维度较高,因此需要降低维度,提取宏观语义特征。将句子sent1、句子sent2的加权特征t51,t52分别通过两个隐层节点数较少(如100)的单向lstm网络得到特征t61和t62,两者维度均为[s,100],然后将t61,t62进行池化操作可得到两个维度为[100]的最终句子sent1、句子sent2的语义表示向量t71,t72。

将所得的句子sent1、句子sent2的语义表示向量t71、t72进行余弦相似度计算,得到最终的得分,示例性的,得分处于0-1之间。在训练阶段,采用均方误差(mse)计算两个句子之间的相似性误差并进行反向传播。在预测阶段,输出两个句子的相似性得分。

在一个示例性实施例中,步骤s101和步骤s110中,所述第一目标文本原始长度m1和第二目标文本的原始长度m2;将所述第一目标文本的原始长度m1和第二目标文本的原始长度均调整为预定长度s之前,还包括步骤:去除所述第一目标文本和第二目标文本中指定特征。

例如对数据进行清洗,去除句子中的一些不必要的符号如表情符号、网址链接以及多余的标点等。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1