一种句子相似度判断方法与流程

文档序号:15385485发布日期:2018-09-08 00:30阅读:503来源:国知局

本发明涉及自然语言处理技术领域,尤其涉及一种句子相似度判断方法。



背景技术:

在自然语言处理的技术领域中,对于两个句子之间判断相似度的应用非常广泛。现有技术中通常会采用如图1所示的以下方法来计算两个句子之间的相似度:

对于句子1和句子2,首先分别获取两个句子的字词向量矩阵并输入到深度神经网络模型中,通过深度神经网络的处理得到句子向量并进行拼接以作为分类神经网络模型的输入,最后得到两个句子的相似性度量。

上述处理方法在计算句子相似度时,由句子中的字词序列映射形成字词向量矩阵,其参数一般都会使用由语言模型预训练形成的字词向量进行初始化,因此参数质量比较依赖预训练的字词向量的质量。并且,若在进行计算时,句子中存在字词向量词典中没有的字或词(即未登录词),则会将其映射成随机向量进行计算,从而影响模型的度量效果。



技术实现要素:

根据现有技术中存在的上述问题,现提供一种句子相似度判断方法的技术方案,旨在解决现有技术中计算句子相似度比较依赖预训练的字/词向量的质量和未登录词的问题,从而改进计算句子相似度的度量方法。

上述技术方案具体包括:

一种句子相似度判断方法,其中,通过预先训练形成一句子相似度判断模型,所述句子相似度判断模型中包括一用于处理得到句子向量的第一神经网络模型以及一用于处理得到表示句子相似度的相似性度量的第二神经网络模型;

所述句子相似度判断方法还包括:

步骤s1,根据两个外部输入的句子样本,分别获取每个所述句子样本中的字词向量矩阵;

步骤s2,分别提取每个所述句子样本中的重叠特征以形成重叠特征矩阵,并针对每个所述句子样本将对应的所述字词向量矩阵与所述重叠特征矩阵结合作为所述第一神经网络模型的输入数据;

步骤s3,根据所述第一神经网络模型分别处理得到针对每个所述句子样本的所述句子向量并进行操作形成一句子合并向量,并与根据所述重叠特征形成的重叠特征向量结合作为所述第二神经网络模型的输入数据;

步骤s4,根据所述第二神经网络模型处理得到关联于两个所述句子样本的相似性度量并输出,以作为判断两个所述句子样本的相似度的依据;

所述步骤s3中,采用所述句子向量直接相减的操作方式形成所述句子合并向量,或者采用拼接所述句子向量的操作方式形成所述句子合并向量。

优选的,该句子相似度判断方法,其中,所述步骤s1中,每个所述句子样本的字词向量矩阵包括:

每个所述句子样本的字向量矩阵;或者

每个所述句子样本的词向量矩阵;

则所述步骤s1中:

将所述句子样本切分成字序列,并将所述字序列映射成所述字向量矩阵;或者

将所述句子样本切分成词序列,并将所述词序列映射成所述词向量矩阵。

优选的,该句子相似度判断方法,其中,所述步骤s2中,采用下述方式处理形成所述重叠特征矩阵:

步骤s21,将所述两个所述句子样本中相互重叠的字或词分别替换成一第一字符;

步骤s22,将所述两个句子样本中不相重叠的字或词分别替换成一第二字符;

步骤s23,根据所述第一字符和所述第二字符分别形成关联于每个所述句子样本的重叠特征序列;

步骤s24,将每个所述重叠特征序列映射成所述重叠特征矩阵;

步骤s25,每个所述字词向量矩阵和对应的所述重叠特征矩阵分别结合作为所述第一神经网络模型的所述输入数据。

优选的,该句子相似度判断方法,其中,所述步骤s3中,处理得到两个所述句子向量的相似度乘积,随后对两个所述句子向量做相减操作,并与所述相似度乘积以及所述重叠特征向量结合作为所述第二神经网络的所述输入数据。

优选的,该句子相似度判断方法,其中,通过计算两个所述句子向量之间的点积得到所述相似度乘积;或者

根据一参数矩阵处理得到所述相似度乘积;

在预先对所述句子相似度判断模型进行训练的过程中,同时训练得到所述参数矩阵。

优选的,该句子相似度判断方法,其中,所述第一神经网络模型为深度神经网络模型。

优选的,该句子相似度判断方法,其中,所述第一神经网络模型为卷积神经网络模型或者循环神经网络模型。

优选的,该句子相似度判断方法,其中,所述第二神经网络模型为分类神经网络模型。

上述技术方案的有益效果是:提供一种句子相似度判断方法,能够解决现有技术中计算句子相似度比较依赖预训练的字/词向量的质量和未登录词的问题,从而改进计算句子相似度的度量方法。

附图说明

图1是现有技术中,处理得到句子相似度的流程示意图;

图2-3是本发明的较佳的实施例中,一种句子相似度判断方法的总体流程示意图;

图4是本发明的较佳的实施例中,形成重叠特征矩阵的具体流程示意图;

图5是本发明的一个较佳的实施例中,第一神经网络模型的结构示意图;

图6是本发明的一个较佳的实施例中,第二神经网络模型的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

根据现有技术中存在的上述问题,现提供一种句子相似度判断方法,该判断方法中,可以通过预先训练形成一句子相似度判断模型,句子相似度判断模型中包括一用于处理得到句子向量的第一神经网络模型以及一用于处理得到表示句子相似度的相似性度量的第二神经网络模型。

具体地,上述第一神经网络模型和第二神经网络模型是通过统一训练一体形成的,即首先搭建包括第一神经网络模型和第二神经网络模型的句子相似度判断模型(将第一神经网络模型的输出作为第二神经网络模型的输入),随后通过向第一神经网络模型输入训练样本的方式训练形成整个句子相似度判断模型。

则该方法具体如图2所示,包括:

步骤s1,根据两个外部输入的句子样本,分别获取每个句子样本中的字词向量矩阵;

步骤s2,分别提取每个句子样本中的重叠特征以形成重叠特征矩阵,并针对每个句子样本将对应的字词向量矩阵与重叠特征矩阵结合作为第一神经网络模型的输入数据;

步骤s3,根据第一神经网络模型分别处理得到针对每个句子样本的句子向量并进行操作形成一句子合并向量,并与根据重叠特征形成的重叠特征向量结合作为第二神经网络模型的输入数据;

步骤s4,根据第二神经网络模型处理得到关联于两个句子样本的相似性度量并输出,以作为判断两个句子样本的相似度的依据。

上述步骤s3中,采用句子向量直接相减的操作方式形成句子合并向量,或者采用拼接句子向量的操作方式形成句子合并向量。

具体地,本实施例中,对于两个给定的句子样本,首先分别获取每个句子样本中的字词向量矩阵。所谓字词向量矩阵,是指由句子中的字词向量映射形成的矩阵。

随后,本实施例中,获取每个句子样本中的重叠特征以形成重叠特征矩阵,该重叠特征为根据两个句子样本中相互重叠的字/词提取到的重叠的字词特征,该重叠特征矩阵为重叠特征按照上述映射形成字词向量矩阵相同的映射方法形成的矩阵。

本实施例中,获取到上述字词向量矩阵和重叠特征矩阵后,将关联于同一个句子样本的这两个矩阵结合作为第一神经网络模型的输入数据,随后第一神经网络模型通过处理得到针对每个句子样本的句子向量。

本发明的一个较佳的实施例中,将两个句子样本的句子向量进行相减操作,该相减操作的具体方法在下文中详述。并且,针对上文中得到的重叠特征形成一重叠特征向量,与形成的句子合并向量一起结合作为第二神经网络模型的输入数据。

本发明的另一个较佳的实施例中,将两个句子样本的句子向量进行拼接操作,该拼接操作的具体方法与现有技术中相同。并且,针对上文中得到的重叠特征形成一重叠特征向量,与形成的句子合并向量一起结合作为第二神经网络模型的输入数据。

本实施例中,最后通过第二神经网络模型处理得到两个句子样本的相似性度量,以作为判断两个句子样本的相似度的依据。

本发明的一个较佳的实施例中,相对于现有技术中对句子相似度的判断方法(如图1中所示),在图3中示出了本发明技术方案中做出改进的部分。主要在于引入了两个句子的重叠特征,并且将该重叠特征进行处理以分别作为第一神经网络模型的输入数据(重叠特征矩阵)以及作为第二神经网络模型的输入数据(重叠特征向量),因此使得神经网络模型较少依赖预训练的字词向量的质量,并且解决了未登录词的问题,同时,将现有技术中对句子向量进行拼接的方式更改为既可以拼接也可以相减。上述方法改进了计算句子相似度的模型,最终改进了计算句子相似性的度量方法。

本发明的较佳的实施例中,上述步骤s1中,每个句子样本的字词向量矩阵包括:

每个句子样本的字向量矩阵;或者

每个句子样本的词向量矩阵。

即上述字词向量矩阵包括每个句子样本的字/词向量矩阵。

则本实施例中,在上述步骤s1中:

将句子样本切分成字序列,并将字序列映射成字向量矩阵;或者

将句子样本切分成词序列,并将词序列映射成词向量矩阵。

本发明的较佳的实施例中,上述步骤s2中,采用如图4所示的下述方式处理形成重叠特征矩阵:

步骤s21,将两个句子样本中相互重叠的字或词分别替换成一第一字符;

步骤s22,将两个句子样本中不相重叠的字或词分别替换成一第二字符;

步骤s23,根据第一字符和第二字符分别形成关联于每个句子样本的重叠特征序列;

步骤s24,将每个重叠特征序列映射成重叠特征矩阵;

步骤s25,每个字词向量矩阵和对应的重叠特征矩阵分别结合作为第一神经网络模型的输入数据。

具体地,本实施例中,上述步骤中,为了方便计算机进行处理,上述第一字符可以为1,第二字符可以为0,则可以形成关联于每个句子样本的二进制的重叠特征向量。例如,对于两个句子样本“我要听歌”和“给我放首歌”,相互重叠的部分(即重叠特征)分别为“我”和“歌”,则针对“我要听歌”的重叠特征序列为1001,针对“给我放首歌”的重叠特征序列为01001,随后根据字词向量映射成字词向量矩阵的相同方法将上述两个重叠特征序列1001和01001分别映射形成重叠特征矩阵,即字符0映射成一维向量,字符1映射成一维向量,随后形成矩阵,并将每个句子样本的字词向量矩阵和重叠特征矩阵结合作为第一神经网络模型的输入数据。

本发明的其他实施例中,上述第一字符和第二字符也可以选择其他适于处理的形式,在此不再赘述。

本发明的较佳的实施例中,上述步骤s3中,重叠特征向量的形成方式可以包括如下几种:

1)以s1表示其中一个句子样本,s2表示另一个句子样本,并采用idf_overlap表示两个句子样本中相互重叠的字词的idf(inversedocumentfrequency,逆向文档频率)之和,采用length表示每个句子样本的句子长度,则重叠特征向量feat可以被表示为feat=idf_overlap/(length(s1)+length(s2))。

上文中,某一个特定字/词的idf数,可以由总文件的数目除以包含该字/词的文件数目,再将得到的商取对数得到。下文中不再赘述。

2)同样以s1表示其中一个句子样本,s2表示另一个句子样本,并采用idf_overlap表示两个句子样本中相互重叠的字词的idf之和,采用idf_sum表示每个句子样本中所有字词的idf之和,则重叠特征向量feat可以被表示为feat=idf_overlap/(idf_sum(s1)+idf_sum(s2))。

3)同样以s1表示其中一个句子样本,s2表示另一个句子样本,并采用length表示每个句子样本的句子长度,采用word_overlap表示两个句子样本中的字重叠数,则上述重叠特征向量feat可以被表示为feat=word_overlap/(length(s1)+length(s2))。

上述三种方法都能处理得到重叠特征向量,并直接将重叠特征向量拼接到第二神经网络模型的输入数据中。

本发明的一个较佳的实施例中,计算上述重叠特征向量的时候,也可以先将句子中的停止词去掉,再计算重叠特征向量。所谓停止词(stopwords),主要包括英文字符、数字、数学字符、标点符号及使用频率特高的单汉字等,在文本处理过程中如果遇到停止词,则立即停止处理,将其扔掉。

本发明的较佳的实施例中,上述步骤s3中,对两个句子向量执行相减操作能够更好地找到两个句子向量之间的差异(如图3所示)。进一步地,可以采用下述几种方式实现两个句子向量的相减操作:

1)直接将两个句子向量相减得到结果;

2)将两个句子向量相减,再取绝对值得到结果;

3)上述第一神经网络模型可以为一卷积神经网络模型,卷积神经网络分为卷积层和采样层(如图5所示),则可以在卷积层处理之后直接应用上述两种方式中的一种对两个向量进行相减,随后再在采样层进行采样,最终得到结果。

本发明的较佳的实施例中,在上述步骤s3中,在采用相减的方式对两个句子向量进行处理的同时,处理得到两个句子向量的相似度乘积,并将相似度乘积、句子向量相减的结果以及重叠特征向量结合作为第二神经网络的输入数据(如图3所示)。

具体地,上述相似度乘积可以采用下述几种方式处理得到:

1)计算两个句子向量的点积,以作为上述相似度乘积;

2)引入一参数矩阵m,并以x和y分别表示两个句子向量,则上述相似度乘积可以被表示为x*m*y。本发明的较佳的实施例中,上述参数矩阵m可以在训练形成句子相似度判断模型(即统一训练形成第一神经网络模型和第二神经网络模型时)时一起训练形成。

本发明的其他实施例中,上述步骤s3中,可以不对句子向量进行相减操作,而采用与现有技术中类似的句子向量拼接方式对两个句子向量进行拼接处理,并与根据重叠特征形成的重叠特征向量结合作为第二神经网络模型的输入数据(如图3中所示,在图3中,可以选择采用句子向量拼接或者句子向量相减的方式进行处理)。

本发明的较佳的实施例中,上述第一神经网络模型可以为深度神经网络模型,进一步地可以为卷积神经网络模型(convolutionalneuralnetwork,cnn),或者为循环神经网络模型(recurrentneuralnetwork,rnn),甚至可以为循环神经网络模型的变体,例如长短期记忆神经网络模型(longshorttermmemory,lstm)或者门限循环神经网络模型(gatedrecurrentunit,gru)。

本发明的较佳的实施例中,上述第二神经网络模型可以为分类神经网络模型,如图6所示为第二神经网络模型的一般结构,该第二神经网络模型可以被划分为输入层、隐层和输出层,输出层也就是分类层,上述隐层也可以去除,即只存在输入层和输出层(分类层)。

本发明技术方案中提供了一种句子相似度判断方法,该方法引入了句子向量的重叠特征并分别作为深度神经网络模型和分类神经网络模型的输入数据,并且在处理过程中将句子向量的拼接过程更改为对句子向量做相减操作的过程,因此能够解决现有技术中计算句子相似度比较依赖预训练的字/词向量的质量以及未登录词的问题,从而改进计算句子相似度的度量方法。

值得注意的是,在不考虑相似性度量的质量比较依赖预训练的字/词以及未登录词等问题的前提下,本发明技术方案中的一些技术特征都可以被替代或者被移除,而依然可以作为一个完整的句子相似度判断方法进行应用。例如:

1)对句子向量进行相减操作的过程可以修改为传统流程中对句子向量进行拼接的过程,不影响整体判断流程的进行;

2)在第一神经网络模型的输入数据中去除由重叠特征形成的重叠特征矩阵,而只将重叠特征形成的重叠特征向量作为第二神经网络模型的输入数据,同样不影响整体判断流程的进行;

3)在第二神经网络模型的输入数据中去除由重叠特征形成的重叠特征向量,而只将重叠特征形成的重叠特征矩阵作为第一神经网络模型的输入数据,同样不影响整体判断流程的进行;

4)去除重叠特征,只将现有技术中的句子向量拼接的操作修改为句子向量相减,同样不影响整体判断流程的进行。

本发明技术方案中提供的句子相似度判断方法,能够适用于使用者与智能设备之间进行“聊天”的场景。例如:当使用者向智能设备说一句话时,智能设备通过后台处理给出应答的过程通常为:通过智能设备后台的备选资料库检索得到初步的候选句子集,随后采用本发明技术方案中提供的句子相似度判断方法从候选句子集中得到关联于使用者说的话的相似句子,随后将该相似句子对应的回答反馈给使用者。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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