CN107291699B - 一种句子语义相似度计算方法 - Google Patents
一种句子语义相似度计算方法 Download PDFInfo
- Publication number
- CN107291699B CN107291699B CN201710537644.8A CN201710537644A CN107291699B CN 107291699 B CN107291699 B CN 107291699B CN 201710537644 A CN201710537644 A CN 201710537644A CN 107291699 B CN107291699 B CN 107291699B
- Authority
- CN
- China
- Prior art keywords
- sentence
- word
- vector
- words
- representing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
Abstract
本发明公开了一种句子语义相似度计算方法,包括以下过程:通过深度学习模型分别对第一句子、第二句子进行特征提取,得到第一句子全局语义向量和第二句子全局语义向量;通过特征工程分别对第一句子的单词、第二句子的单词进行特征提取,得到第一句子局部语义向量和第二句子局部语义向量;分别将第一句子、第二句子的全局语义向量与局部语义向量进行拼接,得到第一句子的一维特征向量和第二句子的一维特征向量;计算第一句子的一维特征向量与第二句子的一维特征向量之间的向量距离,进而得到第一句子与第二句子之间的相似度。通过本发明方法提取的句子特征更加全面、深入,并且具有一定的针对性,计算得到的相似度准确性更高。
Description
技术领域
本发明涉及自然语言处理领域,特别涉及一种句子语义相似度计算方法。
背景技术
语义相似度计算是文本处理中最基础使用最广泛的技术。从单词层面来看,存在一词多义、歧义等问题;从句子层面来看,句子的句式灵活多变,并不是单词堆积这么简单。因此,研究语义相似度计算有助于更好地进行语义理解。语义理解历来是自然语言处理领域的一个难题,在很多的研究中都发挥着至关重要的作用。比如,信息检索、文本聚类、转述识别、机器翻译、自动问答、用户意图理解等等。在搜索领域(Google、Baidu等搜索引擎),社区问答领域(Yahoo!Answer、Quora、百度知道、知乎等),语义理解的准确性直接关乎答案质量和用户体验。因此,对于自然语言处理领域,研究语义相似度计算十分重要。
句子的语义相似度计算就是要根据句子的构成和语义信息来计算两个句子的相似程度。它在信息检索、问答系统、文本分类、文本查重等自然语言处理的任务中都发挥着重要作用。例如,在搜索引擎和问答系统中,计算机需要在海量的互联网数据中搜寻到符合用户意图的答案,单纯的依靠关键字查询返回与之相关的网页往往会存在许多相同的内容,而且有的词存在多个涵义,返回的内容可能并不是用户意图想要的。而利用句子语义相似度计算可以对句子进行语义分析,提取特征,理解用户的真正需求,计算找到的候选集与用户意图的相似度,相似度最大的就是最佳答案。这样返回的答案就更加准确。因此,句子的语义相似度计算在多个领域都有重要的研究意义。
目前,句子的语义相似度计算一般有两种方式:一种是传统的基于特征工程的方法,它需要人为地进行特征提取来表示句子,进而进行相似度计算;另一种是基于深度学习的方法,由机器自动进行特征提取。这两种方法各有利弊,人为的进行特征提取优点是可以提取的特征更加准确,毕竟人比机器更加了解语言,缺点是对人的要求很高,提取的特征可能不全面,不能很好地表示句子。而基于深度学习的方法优点是不用人力,机器可以自动进行,节约资源,缺点是提取的特点针对性不是很好,而且神经网络模型的可解释性欠佳。现有的语义相似度计算方法只偏向于使用其中一种,将两类方法得到的向量结合起来的方法很少,原因在于结合实现代码比较复杂,实现起来非常困难。
因此,亟需一种基于深度学习和特征工程的句子语义相似度计算方法。
发明内容
发明的目的:为了解决现有句子语义相似度计算方法存在的技术问题,提供一种句子语义相似度计算方法,本发明结合深度学习模型与传统特征工程方法,将基于特征工程和基于深度学习的方法结合起来进行句子的特征提取两种方法互相弥补,使得特征提取更加全面和准确。
为达到上述目的,本发明采用的技术方案是:提供了一种句子语义相似度计算方法,包括以下过程:
步骤1:通过深度学习模型分别对第一句子、第二句子进行特征提取,得到第一句子全局语义向量和第二句子全局语义向量;
通过特征工程分别对第一句子的单词、第二句子的单词进行特征提取,得到第一句子局部语义向量和第二句子局部语义向量;包括以下过程:
将第一句子每个单词与第二句子每个单词分别进行相似度计算,得到相似度矩阵;
基于相似度矩阵计算第一句子每个单词与第二句子每个单词的对齐参数;
利用对齐参数与单词的特征参数计算第一句子和第二句子的对齐特征,公式为:
FS1=∑ialigni*feai/∑ifeai
FT1=∑jalignj *feaj/∑jfeaj
其中,FS1表示第一句子的对齐特征,∑i表示对含有参数i的项进行求和,aligni表示第一句子中单词i的对齐参数,feai表示第一句子任一单词si的特征;FT1表示第二句子的对齐特征,∑j表示对含有参数j的项进行求和,alignj表示第二句子中单词j的对齐参数,feaj表示第二句子任一单词tj的特征;
利用第一句子中没有对齐的单词和第二句子中没有对齐的单词,分别计算第一句子的不对齐特征和第二句子的不对齐特征,公式为:
FS2=∑iunalignifeai/∑ifeai
FT2=∑junalignjfeaj/∑jfeaj
其中,FS2表示第一句子的不对齐特征,unaligni表示将第一句子中没有对齐的单词,feai表示第一句子任一单词si的特征,∑i表示对含有参数i的项进行求和;FT2表示第二句子的不对齐特征,unalignj表示将第二句子中没有对齐的单词,feaj表示第二句子任一单词tj的特征,∑j表示对含有参数j的项进行求和;
将第一句子的对齐特征和不对齐特征进行拼接,得到第一句子局部语义向量;将第二句子的对齐特征和不对齐特征进行拼接,得到第二句子局部语义向量。
步骤2:将第一句子全局语义向量与第一句子局部语义向量进行拼接,得到第一句子的一维特征向量;将第二句子全局语义向量与第二句子局部语义向量进行拼接,得到第二句子的一维特征向量;
步骤3:计算第一句子的一维特征向量与第二句子的一维特征向量之间的向量距离,根据向量距离得到第一句子与第二句子之间的相似度值。
进一步地,所述通过深度学习模型分别对第一句子、第二句子进行特征提取,得到第一句子全局语义向量和第二句子全局语义向量,包括以下过程:
将句子进行词向量化表示,得到句子的词向量;所述句子为第一句子或第二句子;
将句子的词向量输入到BiLSTM中,得到BiLSTM隐藏层的m维向量,即句子的高维特征向量,公式为:
Hm(t)=[h(t),h(t+1),...,h(t+m-1)]
其中,Hm(t)表示m维向量,h表示隐藏层的函数,t表示t时刻,m表示向量维度;
m维向量通过CNN卷积层的过滤器进行过滤,得到过滤结果,公式为:
F=[F(0)...F(m-1)]
其中,F表示过滤器,m表示过滤器的个数,OF(t)表示过滤结果,tanh表示激活函数,表示对后面的项进行求和,h表示隐藏层的函数,t表示t时刻,T表示矩阵的转置,i表示求和参数,F、b表示不同的卷积层参数;
将过滤结果进行池化操作,分别得到第一句子全局语义向量和第二句子全局语义向量。
进一步地,所述将第一句子每个单词与第二句子每个单词分别进行相似度计算,得到相似度矩阵,包括以下过程:
构建句子单词的共生矩阵,根据矩阵窗口大小在语料库中遍历对应单词的共现次数,并将共现次数转换成相应的log形式放到矩阵的相应位置,得到句子单词的新矩阵;所述句子为第一句子或第二句子;
对句子单词的新矩阵进行SVD奇异值分解并降维,并分别取第一句子、第二句子的前P个特征值,P为任意数;
根据特征值计算第一句子单词与第二句子单词的cosine相似度,公式为:
其中,cosine(si,tj)表示第一句子任一单词si与第二句子任一单词tj的余弦相似度,svi表示第一句子P个特征值中任一特征对应的单词si,T表示单词si特征表示的转置,tvj表示第二句子P个特征值中任一特征对应的单词;
根据第一句子单词与第二句子单词的相似度,构建相似度矩阵。相似度矩阵中每个元素都表示对应位置的两个单词间的相似度,如:用A表示相似度矩阵,那么第一句子第i个单词与第二句子第j个单词的相似度为矩阵A中对应元素aij的值,可以方便后续的查询。
进一步地,所述基于相似度矩阵计算第一句子每个单词与第二句子每个单词的对齐参数,具体为:对于句子中的每个单词,在相似度矩阵中寻找它与另一个句子中所有单词的相似度,最大的那个相似度就记作这个单词的对齐参数,所述句子为第一句子或第二句子。
进一步地,所述单词的特征参数通过以下过程计算得到:
对于句子中的单词,计算另一个句子中的单词与它的匹配值,用匹配值表示单词的特征参数,计算公式为:
其中,表示第一句子任一单词si的匹配值,fmatch(si,T)表示第一句子任一单词si与第二句子中的单词的匹配度,表示对于第二句子单词j的对应项从0到n求和,simij表示单词si和单词tj的相似度,表示第二句子任一单词tj的匹配值,fmatch(tj,S)表示第二句子任意单词tj与第一句子中的单词的匹配度,表示对于第一句子单词i的对应项从0到n求和。
进一步地,所述单词的特征参数通过以下过程计算得到:
用单词的tfidf值表示单词的特征参数,所述第一句子单词的tfidf值计算公式如下:
tfidfiS=tfi,S×idfi,S
其中,tfidfiS表示第一句子单词的tfidf值,tfi,S表示第一句子任一单词si在句子中的词频,idfi,S表示第一句子任一单词si在句子中的逆向文件频率,ni,S表示第一句子任一单词si在句子中出现的次数,∑knk,S表示第一句子中所有单词出现的次数之和,|D|表示总的句子数,|{j:ti∈dj|表示包含单词的句子数目;
参考上述过程,可以计算出第二句子中单词的tfidf值,即得到第二句子单词的特征参数。
进一步地,所述计算第一句子的一维特征向量与第二句子的一维特征向量之间的向量距离,根据向量距离得到第一句子与第二句子之间的相似度,包括以下过程:
计算第一句子的一维特征向量与第二句子的一维特征向量的Cosine相似度,公式为:
其中,cos(S,T)表示第一句子的一维特征向量与第二句子的一维特征向量的Cosine相似度,S表示第一句子的一维特征向量,STT表示特征向量的转置,T表示第二句子的一维特征向量;
计算第一句子的一维特征向量与第二句子的一维特征向量的欧氏距离sim(S,T),公式为:
将得到的Cosine相似度与欧氏距离取平均,得到第一句子与第二句子之间的相似度。
本发明的有益效果是:本发明文将深度学习模型提取出的句子的全局语义向量与基于特征工程的句子的局部语义向量联合起来,共同作为句子的特征向量,进而对两个句子进行相似度计算,提取的特征更加全面、深入,具有一定的针对性,计算得到的相似度准确性更高。
附图说明
图1是本发明实施例1句子语义相似度计算方法的实现流程图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
实施例1
参照图1,本实施例公开了一种句子语义相似度计算方法,包括以下过程:
步骤1:分别通过深度学习模型、特征工程对第一句子和第二句子进行特征提取,得到第一句子全局语义向量和第二句子全局语义向量,以及第一句子局部语义向量和第二句子局部语义向量;
步骤1.1:通过深度学习模型分别对第一句子、第二句子进行特征提取,得到第一句子全局语义向量和第二句子全局语义向量,具体过程如下:
步骤1.1.1:将句子进行词向量化表示,得到句子的词向量;所述句子为第一句子或第二句子;
步骤1.1.2:将句子的词向量输入到BiLSTM中,得到BiLSTM隐藏层的m维向量,即句子的高维特征向量,公式为:
Hm(t)=[h(t),h(t+1),...,h(t+m-1)]
其中,Hm(t)表示m维向量,h表示隐藏层的函数,t表示t时刻,m表示向量维度;
对于句子中的单词来说,处于不同的上下文就会有不同的语义。因此,要得到单词基于句子的语义就要基于它的上下文信息。单向LSTM可以利用到单词的上文信息,它在处理序列的当前元素时,其隐藏单元中就包含关于该序列的所有过去元素的历史信息的“状态向量”。而双向的LSTM能同时利用上文信息和下文信息,能够综合句子的总体信息,得到全局范围上的特征。所以我们先使用BiLSTM对句子进行特征提取。
步骤1.1.3:m维向量通过CNN卷积层的过滤器进行过滤,得到过滤结果,公式为:
F=[F(0)...F(m-1)]
其中,F表示过滤器,m表示过滤器的个数,OF(t)表示过滤结果,tanh表示激活函数,表示对后面的项进行求和,h表示隐藏层的函数,t表示t时刻,T表示表示矩阵的转置,i表示求和参数,F、b表示不同的卷积层参数;
由于卷积神经网络(CNN)能够很好的进行局部感知,而理解句子语义时,有时需要将几个单词组合在一起形成短语一起才能正确理解它的真正的含义。因此对于BiLSTM的输出,我们再通过卷积神经网络对局部特征进行二次提取,得到局部相关的特征。BiLSTM侧重序列性,结合了句子的上下文信息,而CNN卷积侧重句子的局部特征,可以得到局部相关性,两者结合使特征提取更加完备。
步骤1.1.4:将过滤结果进行池化操作,分别得到第一句子全局语义向量和第二句子全局语义向量。
由于基于神经网络的特征提取能够很好的从全局和局部上下文对句子语义特征进行提取,而传统特征工程可以很好的得到句子组成单词的语义。因此,下面我们将利用特征工程对句子进行特征提取,对基于深度学习的特征提取方法进行语义补充。
步骤1.2:通过特征工程分别对第一句子的单词、第二句子的单词进行特征提取,得到第一句子局部语义向量和第二句子局部语义向量,具体过程如下:
步骤1.2.1:将第一句子每个单词与第二句子每个单词分别进行相似度计算,得到相似度矩阵,可以采用LSA法和/或外部资源法计算得到;
所述LSA(Latent Semantic Analysis)法,包括以下过程:
1)构建句子单词的共生矩阵(co-occurence,该矩阵可以表示单词的共现信息),根据矩阵窗口大小在语料库中遍历对应单词的共现次数(例如:当窗口大小为2时,即在语料库中遍历查找两个词共同出现的次数),并将共现次数转换成相应的log形式放到矩阵的相应位置(例如:相似度矩阵为A,计算单词i和单词j的共现次数,并转化成相应log形式后的值为a,那么矩阵中的元素aij=a),得到句子单词的新矩阵;所述句子为第一句子或第二句子;
2)对句子单词的新矩阵进行SVD奇异值分解并降维,句子中的每个单词用300维向量表示,向量的每一维表示一个特征值,分别取第一句子、第二句子的前P个特征值,P=300,此时第一句子S=[sv1,sv2,...,svm],第二句子T=[tv1,tv2,...,tvn];
3)根据特征值计算第一句子单词与第二句子单词的cosine相似度,公式为:
其中,cosine(si,tj)表示第一句子任一单词si与第二句子任一单词tj的余弦相似度,svi表示第一句子300个特征值中任一特征对应的单词si,T表示单词si特征表示的转置,tvj表示第二句子300个特征值中任一特征对应的单词;
4)根据第一句子单词与第二句子单词的相似度,构建相似度矩阵。相似度矩阵中每个元素都表示对应位置的两个单词间的相似度,如:用A表示相似度矩阵,那么第一句子第i个单词与第二句子第j个单词的相似度为矩阵A中对应元素aij的值,可以方便后续的查询。
所述外部资源法,主要基于knowleged的方法,使用WordNet::Similarity包计算单词间的相似度,包括:Leacock&Chodorow相似度和/或The Wu&Palmer相似度、lesk相似度、The Resnik相似度、The Lin相似度、The Jiang&Conrath相似度;
1)Leacock&Chodorow相似度simLCH,计算公式为:
其中,length表示两个单词对应的两个概念间使用node-counting得到的最近路径,D表示在WordNet库中自带的分类的最大深度(WordNet对所有的英文单词都进行了分类,并且形成了一棵语义树)。
2)The Wu&Palmer相似度simWP,公式为:
其中,depth表示两个单词对应概念在Wordnet词典中的深度,LCS表示两个单词对应概念的最不常见子集(两个概念词最近的公共父结点对应的概念词),表示第一句子任一单词si对应的概念,表示第二句子任一单词tj对应的概念。
3)lesk相似度定义为两个单词对应概念的“overlap”的函数,它显示出了wordnet中两个概念相互重叠的gloss以及以及他们相近的关系。
4)The Resnik相似度simres,公式为:
simres=IC(LCS)
IC(c)=-log p(c)
其中,IC表示信息内容函数,LCS表示两个单词对应概念的最不常见子集,IC(c)表示任意单词c的信息内容,p(c)表示在大型语料库中遇到概念c的实例的概率。
5)TheLin相似度simLin,公式为:
IC(c)=-logp(c)
其中,IC表示信息内容函数,LCS表示两个单词对应概念的最不常见子集,IC(c)表示任意单词c的信息内容,p(c)表示在大型语料库中遇到概念c的实例的概率,concept1表示第一句子任一单词si对应的概念,concept2表示第二句子任一单词tj对应的概念;
6)The Jiang&Conrath相似度simjnc:
IC(c)=-log p(c)
其中,IC表示信息内容函数,concept1表示第一句子任一单词si对应的概念,concept2表示单词tj对应的概念;LCS表示两个单词对应概念的最不常见子集,p(c)表示在大型语料库中遇到概念c的实例的概率。
步骤1.2.2:基于相似度矩阵计算第一句子每个单词与第二句子每个单词的对齐参数,具体为:对于句子中的每个单词,在相似度矩阵中寻找它与另一个句子中所有单词的相似度,最大的那个相似度就记作这个单词的对齐参数,所述句子为第一句子或第二句子。
步骤1.2.3:利用对齐参数与单词的特征参数来计算第一句子和第二句子的对齐特征,公式为:
FS1=∑ialigni*feai/∑ifeai
FT1=∑jalignj*feaj/∑jfeaj
其中,FS1表示第一句子的对齐特征,∑i表示对含有参数i的项进行求和,aligni表示第一句子中单词i的对齐参数,feai表示第一句子任一单词si本的特征;FT1表示第二句子的对齐特征,∑j表示对含有参数j的项进行求和,alignj表示第二句子中单词j的对齐参数,feaj表示第二句子任一单词tj的特征;
所述单词的特征参数有两种计算方法:
1)计算句子中单词的匹配值。对于句子中的单词,计算另一个句子中的单词与它的匹配值,这个匹配值表示在一个句子中的单词相对于另一个句子的覆盖程度,公式为:
其中,表示第一句子任一单词si的匹配值,fmatch(si,T)表示第一句子任一单词si与第二句子中的单词的匹配度,表示对于第二句子单词j的对应项从0到n求和,simij表示第一句子任一单词si和第二句子任一单词tj的相似度,表示第二句子任一单词tj的匹配值,fmatch(tj,S)表示第二句子任意单词tj与第一句子中的单词的匹配度,表示对于第一句子单词i的对应项从0到n求和。
第一句子任一单词si和第二句子任一单词tj的相似度计算公式为:
其中,si表示第一句子任一单词,tj表示第二句子任一单词,T表示单词si特征表示的转置。
2)计算句子中单词的tfidf值。TF-IDF是一种统计方法,用以评估一个单词对于一个文件集或一个语料库中的其中一份文件的重要程度。计算公式为:
tfidfiS=tfi,S×idfi,S
其中,tfidfiS表示第一句子单词的tfidf值,tfi,S表示第一句子任一单词si在句子中的词频,idfi,S表示第一句子任一单词si在句子中的逆向文件频率,ni,S表示第一句子任一单词si在句子中出现的次数,∑knk,S表示第一句子中所有单词出现的次数之和,|D|表示总的句子数,|{j:ti∈dj|表示包含单词的句子数目;
参考上述过程,可以计算出第二句子T中单词的tfidf值。
通过计算句子中单词的匹配值和tfidf值,就得到2个单词的特征参数。
步骤1.2.4:利用第一句子中没有对齐的单词和第二句子中没有对齐的单词,分别计算第一句子的不对齐特征和第二句子的不对齐特征,公式为:
FS2=∑iunalignifeai/∑ifeai
FT2=∑junalignjfeaj/∑jfeaj
其中,FS2表示第一句子的不对齐特征,unaligni表示将第一句子中没有对齐的单词,feai表示第一句子任一单词si的特征,∑i表示对含有参数i的项进行求和;FT2表示第二句子的不对齐特征,unalignj表示将第二句子中没有对齐的单词,feaj表示第二句子任一单词tj的特征,∑j表示对含有参数j的项进行求和;
步骤1.2.5:将第一句子的对齐特征和不对齐特征进行拼接,得到第一句子局部语义向量;将第二句子的对齐特征和不对齐特征进行拼接,得到第二句子的局部语义向量,具体地:
FS=FS1+FS2
FT=FT1+FT2
其中,FS表示第一句子局部语义向量,FT表示第二句子局部语义向量。
对于句子的对齐特征(参考步骤1.2.3公式),我们有两类计算对齐参数的方法,分别是LSA法和外部资源法。在LSA法中,使用3种不同的窗口大小(窗口大小分别为1、2、3),可以得到3个对齐参数;在外部资源法中,有6种计算方法,可以得到6个对齐参数,这样一共得到9个对齐参数。而对于单词的特征参数,我们采用重要程度(tf-idf值)和匹配程度分别进行计算,可以得到2个单词的特征参数,将这2个单词的特征参数分别带入对齐特征公式,第一句子S和第二句子T均可以得到18个特征(2×9)。
将第一句子的18个对齐特征和2个不对齐特征进行拼接,可以得到第一句子的局部语义向量,将第二句子的18个对齐特征和2个不对齐特征进行拼接,可以得到第二句子的局部语义向量。
基于深度学习的特征提取和基于特征工程的特征提取完成后,下一步将两个特征表示结合起来,共同作为句子的向量表示。这样得到的句子特征就更加完整:既有考虑到全局层面上的语义信息,又有精确到单词层面上的语义信息。
步骤2:将第一句子全局语义向量与第一句子局部语义向量进行拼接,得到第一句子的一维特征向量;将第二句子全局语义向量与第二句子局部语义向量进行拼接,得到第二句子的一维特征向量,具体地:
S=HS+FS
T=HT+FT
其中,S表示第一句子的一维特征向量,T表示第二句子的一维特征向量,HS表示第一句子全局语义向量,HT表示第二句子全局语义向量。
步骤3:计算第一句子的一维特征向量与第二句子的一维特征向量之间的向量距离,根据向量距离得到第一句子与第二句子之间的相似度值,包括以下过程:
步骤3.1:计算第一句子的一维特征向量与第二句子的一维特征向量的Cosine相似度,公式为:
其中,cos(S,T)表示第一句子的一维特征向量与第二句子的一维特征向量的余弦相似度,STT表示特征向量的转置;
步骤3.2:计算第一句子的一维特征向量与第二句子的一维特征向量的欧氏距离sim(S,T),公式为:
步骤3.3:将得到的Cosine相似度与欧氏距离取平均,得到最终的相似度分值;分值越接近1,说明相似度越高,分值越接近0,说明相似度越低。
本发明首先采用深度学习和特征工程两种方法得到句子的向量表示,然后把两种表示联合起来作为最终句子的特征表示,最后在向量空间进行相似度计算。将深度学习与特征工程方法相结合,缺点相互弥补,使得特征提取更全面,更能表示句子的语义,计算得到的相似度更加准确。
性能测试
本发明方法在Microsoft Research Paraphrase Corpus(MSRP)数据集上进行了性能测试,所述MSRP数据集是从新闻数据中构建得来的(Dolan et al.,2004),它包含5801个句子对,其中4076个用来训练,1725个用来测试。每个句子对都有一个二值标注,表明这两个句子是否是释义关系。
实验设置:在基于深度学习的特征提取中,batch_size=50,nb_epoch=20,embedding_dims=50,lstm_output_size=55,在BiLSTM中,nb_filter=150,在CNN中filter_length=3,hidden_dims=250。单词嵌入初始化是通过在英语维基百科上运行word2vec工具在包含大约3.75亿字的AQUAINT语料库进行的。所得到的模型包含大约350万字的50维向量。word2vec模型中不存在的单词的嵌入随着从均匀分布U[-0.25,0.25]采样的每个分量随机初始化。在人工进行特征提取时,基于knowledge的方法,我们使用WordNet::Similarity包来进行计算。
实验结果与分析
我们使用准确率和召回率来评估模型的性能,并与现有模型的性能进行对比,实验结果见表1:
表1本方法得到的模型与现有方法得到的模型的性能对比结果
上表中,“PMI-IR”和“LSA”是经典的传统特征工程方法,“Madnani et al.,2012”是一种基于特征工程的综合方法,“He et al.(2015)”是基于深度学习的模型。
实验结果表示,本发明方法得到的综合模型比单一方法得到的模型性能效果更佳。相对于PMI-IR和LSA来说,综合模型的准确率提高约10%,召回率提高约3.5%,F1值提高约8%。相对于Madnani et al.,2012模型,综合模型在准确率上提高了2.2%,召回率上提高了6.4%,F1值提高了4%。相对于He et al.(2015)(without Para.embeddings)模型而言,综合模型准确率提高了2.5%,召回率提高了2.1%,F1值提高了2.6%。
由此可见,综合两类方法的模型在特征提取上更加全面和准确。本发明的模型在句子特征提取时既考虑到了句子全局的语义特征,也考虑到了句子中单词的相似度特征,特征提取更加全面,因此相似度计算也就更加准确。
注意,上述内容仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其它等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (7)
1.一种句子语义相似度计算方法,其特征在于,包括以下过程:
步骤1:通过深度学习模型分别对第一句子、第二句子进行特征提取,得到第一句子全局语义向量和第二句子全局语义向量;
通过特征工程分别对第一句子的单词、第二句子的单词进行特征提取,得到第一句子局部语义向量和第二句子局部语义向量;包括以下过程:
将第一句子每个单词与第二句子每个单词分别进行相似度计算,得到相似度矩阵;
基于相似度矩阵计算第一句子每个单词与第二句子每个单词的对齐参数;
利用对齐参数与单词的特征参数计算第一句子和第二句子的对齐特征,公式为:
FS1=∑ialigni*feai/∑ifeai
FT1=∑jalignj*feaj/∑jfeaj
其中,FS1表示第一句子的对齐特征,∑i表示对含有参数i的项进行求和,aligni表示第一句子中单词i的对齐参数,feai表示第一句子任一单词si的特征;FT1表示第二句子的对齐特征,∑j表示对含有参数j的项进行求和,alignj表示第二句子中单词j的对齐参数,feaj表示第二句子任一单词tj的特征;
利用第一句子中没有对齐的单词和第二句子中没有对齐的单词,分别计算第一句子的不对齐特征和第二句子的不对齐特征,公式为:
FS2=∑iunalignifeai/∑ifeai
FT2=∑junalignjfeaj/∑jfeaj
其中,FS2表示第一句子的不对齐特征,unaligni表示将第一句子中没有对齐的单词,feai表示第一句子任一单词si的特征,∑i表示对含有参数i的项进行求和;FT2表示第二句子的不对齐特征,unalignj表示将第二句子中没有对齐的单词,feaj表示第二句子任一单词tj的特征,∑j表示对含有参数j的项进行求和;
将第一句子的对齐特征和不对齐特征进行拼接,得到第一句子局部语义向量;将第二句子的对齐特征和不对齐特征进行拼接,得到第二句子局部语义向量;
步骤2:将第一句子全局语义向量与第一句子局部语义向量进行拼接,得到第一句子的一维特征向量;将第二句子全局语义向量与第二句子局部语义向量进行拼接,得到第二句子的一维特征向量;
步骤3:计算第一句子的一维特征向量与第二句子的一维特征向量之间的向量距离,根据向量距离得到第一句子与第二句子之间的相似度。
2.根据权利要求1所述的句子语义相似度计算方法,其特征在于,所述通过深度学习模型分别对第一句子、第二句子进行特征提取,得到第一句子全局语义向量和第二句子全局语义向量,包括以下过程:
将句子进行词向量化表示,得到句子的词向量;所述句子为第一句子或第二句子;
将句子的词向量输入到BiLSTM中,得到BiLSTM隐藏层的m维向量,公式为:
Hm(t)=[h(t),h(t+1),...,h(t+m-1)]
其中,Hm(t)表示m维向量,h表示隐藏层的函数,t表示t时刻,m表示向量维度;
m维向量通过CNN卷积层的过滤器进行过滤,得到过滤结果,公式为:
F=[F(0)...F(m-1)]
其中,F表示过滤器,m表示过滤器的个数,OF(t)表示过滤结果,tanh表示激活函数,表示对后面的项进行求和,h表示隐藏层的函数,t表示t时刻,T表示表示矩阵的转置,i表示求和参数,F、b表示两个不同的卷积层参数;
将过滤结果进行池化操作,分别得到第一句子全局语义向量和第二句子全局语义向量。
3.根据权利要求1所述的句子语义相似度计算方法,其特征在于,所述将第一句子每个单词与第二句子每个单词分别进行相似度计算,得到相似度矩阵,包括以下过程:
构建句子单词的共生矩阵,根据矩阵窗口大小在语料库中遍历对应单词的共现次数,并将共现次数转换成相应的log形式放到矩阵的相应位置,得到句子单词的新矩阵;所述句子为第一句子或第二句子;
对句子单词的新矩阵进行SVD奇异值分解并降维,并分别取第一句子、第二句子的前P个特征值,P为任意数;
根据特征值计算第一句子单词与第二句子单词的cosine相似度,公式为:
其中,cosine(si,tj)表示第一句子任一单词si与第二句子任一单词tj的余弦相似度,svi表示第一句子P个特征值中任一特征对应的单词si,T表示单词si特征表示的转置,tvj表示第二句子P个特征值中任一特征对应的单词;
根据第一句子单词与第二句子单词的cosine相似度,构建相似度矩阵。
4.根据权利要求3所述的句子语义相似度计算方法,其特征在于,所述基于相似度矩阵计算第一句子每个单词与第二句子每个单词的对齐参数,具体为:对于句子中的每个单词,在相似度矩阵中寻找它与另一个句子中所有单词的相似度,最大的那个相似度就记作这个单词的对齐参数。
6.根据权利要求1所述的句子语义相似度计算方法,其特征在于,所述单词的特征参数通过以下过程计算得到:
用单词的tfidf值表示单词的特征参数,所述第一句子单词的tfidf值计算公式如下:
tfidfiS=tfi,S×idfi,S
其中,tfidfiS表示第一句子单词的tfidf值,tfi,S表示第一句子任一单词si在句子中的词频,idfi,S表示第一句子任一单词si在句子中的逆向文件频率,ni,S表示第一句子任一单词si在句子中出现的次数,∑knk,S表示第一句子中所有单词出现的次数之和,|D|表示总的句子数,|{j:ti∈dj|表示包含单词的句子数目;
参考上述过程,可以计算出第二句子中单词的tfidf值,即得到第二句子单词的特征参数。
7.根据权利要求1所述的语义相似度计算方法,其特征在于,所述计算第一句子的一维特征向量与第二句子的一维特征向量之间的向量距离,根据向量距离得到第一句子与第二句子之间的相似度,包括以下过程:
计算第一句子的一维特征向量与第二句子的一维特征向量的Cosine相似度,公式为:
其中,cos(S,T)表示第一句子的一维特征向量与第二句子的一维特征向量的Cosine相似度,S表示第一句子的一维特征向量,STT表示特征向量的转置,T表示第二句子的一维特征向量;
计算第一句子的一维特征向量与第二句子的一维特征向量的欧氏距离sim(S,T),公式为:
将得到的Cosine相似度与欧氏距离取平均,得到第一句子与第二句子之间的相似度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710537644.8A CN107291699B (zh) | 2017-07-04 | 2017-07-04 | 一种句子语义相似度计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710537644.8A CN107291699B (zh) | 2017-07-04 | 2017-07-04 | 一种句子语义相似度计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291699A CN107291699A (zh) | 2017-10-24 |
CN107291699B true CN107291699B (zh) | 2020-11-24 |
Family
ID=60099316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710537644.8A Active CN107291699B (zh) | 2017-07-04 | 2017-07-04 | 一种句子语义相似度计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291699B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840321B (zh) * | 2017-11-29 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 文本推荐方法、装置及电子设备 |
CN108132931B (zh) * | 2018-01-12 | 2021-06-25 | 鼎富智能科技有限公司 | 一种文本语义匹配的方法及装置 |
CN108287824A (zh) * | 2018-03-07 | 2018-07-17 | 北京云知声信息技术有限公司 | 语义相似度计算方法及装置 |
CN108804495B (zh) * | 2018-04-02 | 2021-10-22 | 华南理工大学 | 一种基于增强语义的自动文本摘要方法 |
CN109902283B (zh) * | 2018-05-03 | 2023-06-06 | 华为技术有限公司 | 一种信息输出方法及装置 |
CN108763542A (zh) * | 2018-05-31 | 2018-11-06 | 中国华戎科技集团有限公司 | 一种基于联合学习的文本情报分类方法、装置及计算机设备 |
CN109522921A (zh) * | 2018-09-18 | 2019-03-26 | 义语智能科技(上海)有限公司 | 语句相似度判别方法及设备 |
CN109543009B (zh) * | 2018-10-17 | 2019-10-25 | 龙马智芯(珠海横琴)科技有限公司 | 文本相似度评估系统及文本相似度评估方法 |
CN109815484B (zh) * | 2018-12-21 | 2022-03-15 | 平安科技(深圳)有限公司 | 基于交叉注意力机制的语义相似度匹配方法及其匹配装置 |
CN109992772A (zh) * | 2019-03-13 | 2019-07-09 | 众安信息技术服务有限公司 | 一种文本相似度计算方法及装置 |
CN110046244B (zh) * | 2019-04-24 | 2021-06-08 | 中国人民解放军国防科技大学 | 一种用于问答系统的答案选择方法 |
CN110210041B (zh) * | 2019-05-23 | 2023-04-18 | 北京百度网讯科技有限公司 | 互译句对齐方法、装置及设备 |
CN111027320A (zh) * | 2019-11-15 | 2020-04-17 | 北京三快在线科技有限公司 | 文本相似性计算方法、装置、电子设备及可读存储介质 |
CN111339241B (zh) * | 2020-02-18 | 2024-02-13 | 北京百度网讯科技有限公司 | 一种问题查重方法、装置以及电子设备 |
CN111652000B (zh) * | 2020-05-22 | 2023-04-07 | 重庆大学 | 一种语句相似度判断方法及判断系统 |
CN111723572B (zh) * | 2020-06-12 | 2021-11-19 | 广西师范大学 | 基于CNN卷积层和BiLSTM的中文短文本相关性度量方法 |
CN111563159B (zh) * | 2020-07-16 | 2021-05-07 | 智者四海(北京)技术有限公司 | 文本排序方法及装置 |
CN116881738B (zh) * | 2023-09-06 | 2024-02-13 | 华南理工大学 | 一种应用于电网行业的项目申报文档的相似度检测方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844346A (zh) * | 2017-02-09 | 2017-06-13 | 北京红马传媒文化发展有限公司 | 基于深度学习模型Word2Vec的短文本语义相似性判别方法和系统 |
-
2017
- 2017-07-04 CN CN201710537644.8A patent/CN107291699B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844346A (zh) * | 2017-02-09 | 2017-06-13 | 北京红马传媒文化发展有限公司 | 基于深度学习模型Word2Vec的短文本语义相似性判别方法和系统 |
Non-Patent Citations (5)
Title |
---|
Corpus-based and Knowledge-based Measures of Text Semantic Similarity;Rada Mihalcea;《The Twenty-First National Conference on Artificial Intelligence and the Eighteenth Innovative Applications of Artificial Intelligence Conference》;20060720;第775-780页 * |
ECNU at SemEval-2016 Task 1: Leveraging Word Embedding from Macro and Micro Views to Boost Performance for Semantic Textual Similarity;Junfeng Tian;《SemEval-2016》;20160617;第621-627页 * |
Guido Zarrella, John Henderson.MITRE: Seven Systems for Semantic Similarity in Tweets.《the 9th International Workshop on Semantic Evaluation (SemEval 2015)》.2015,第12-17页. * |
LSTM-BASED DEEP LEARNING MODELS FOR NONFACTOID ANSWER SELECTION;Ming Tan, Cicero dos Santos;《ICLR 2016》;20160504;第3.2节 * |
MITRE: Seven Systems for Semantic Similarity in Tweets;Guido Zarrella, John Henderson;《the 9th International Workshop on Semantic Evaluation (SemEval 2015)》;20150605;第3.3节,第3.4节第1段 * |
Also Published As
Publication number | Publication date |
---|---|
CN107291699A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291699B (zh) | 一种句子语义相似度计算方法 | |
CN107436864B (zh) | 一种基于Word2Vec的中文问答语义相似度计算方法 | |
Trischler et al. | Newsqa: A machine comprehension dataset | |
Gupta et al. | A survey of text question answering techniques | |
CN107423282B (zh) | 基于混合特征的文本中语义连贯性主题与词向量并发提取方法 | |
Fletcher | Corpus analysis of the world wide web | |
Alkhatlan et al. | Word sense disambiguation for arabic exploiting arabic wordnet and word embedding | |
Yada et al. | A bootstrap method for automatic rule acquisition on emotion cause extraction | |
Pouriyeh et al. | ES-LDA: entity summarization using knowledge-based topic modeling | |
Landthaler et al. | Extending Full Text Search for Legal Document Collections Using Word Embeddings. | |
Yamshchikov et al. | Style-transfer and paraphrase: Looking for a sensible semantic similarity metric | |
CN102214189A (zh) | 基于数据挖掘获取词用法知识的系统及方法 | |
CN113672693B (zh) | 基于知识图谱和标签关联的在线问答平台的标签推荐方法 | |
Armouty et al. | Automated keyword extraction using support vector machine from Arabic news documents | |
Shawon et al. | Website classification using word based multiple n-gram models and random search oriented feature parameters | |
Latif et al. | Analyzing LDA and NMF topic models for Urdu tweets via automatic labeling | |
Simon et al. | Automatic term extraction in technical domain using part-of-speech and common-word features | |
Jia et al. | A Chinese unknown word recognition method for micro-blog short text based on improved FP-growth | |
Krishnan et al. | Unsupervised concept categorization and extraction from scientific document titles | |
Chen et al. | Semantic information extraction for improved word embeddings | |
Kandasamy et al. | Information retrieval for Question Answering System using Knowledge based Query Reconstruction by adapted LESK and LATENT Semantic analysis | |
Vetriselvi et al. | Latent Semantic Based Fuzzy Kernel Support Vector Machine for Automatic Content Summarization. | |
Arslan et al. | Semantic Enrichment of Taxonomy for BI Applications using Multifaceted data sources through NLP techniques | |
Kruengkrai et al. | Semantic relation extraction from a cultural database | |
Vascon et al. | Transductive visual verb sense disambiguation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Peng Jianhui Inventor after: Guo Jianjing Inventor before: Zhou Zhongcheng Inventor before: Duan Lian Inventor before: Guo Jianjing Inventor before: Zhang Shengdong |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Peng Jianhui Inventor after: Guo Jianjing Inventor before: Peng Jianhui Inventor before: Guo Jianjing |
|
GR01 | Patent grant | ||
GR01 | Patent grant |