当前位置: 首页 > 专利查询>湖南大学专利>正文

一种基于词向量的句子相似度比较方法技术

技术编号:17562035 阅读:44 留言:0更新日期:2018-03-28 12:28
本发明专利技术公开了一种基于词向量的句子相似度比较方法。本发明专利技术基于大型语料库训练得到词向量模型,并且通过斯坦福句法分析器将句子表示成句法成分树结构,然后在词向量模型中搜索句子成分树叶子节点所对应的词向量,这此基础上,我们提出了一种基于词向量的句子相似度比较方法,这种方法首先构建句子成分向量树,然后通过我们提出的soft partial tree kernel函数计算最终的句子相似度得分。实验结果表示,这种方法相对于目前性能表现很强的众多神经网络方法,在超过一半数据集上都取得了最好的效果,并且在平均性能上取得了最先进的效果。这说明了这种方法是一种很有效的句子相似度度量方式。

A method of sentence similarity comparison based on word vectors

The invention discloses a method of sentence similarity comparison based on word vectors. The present invention provides a large training corpus based on word vector model, and through the Standford parser will sentence into syntactic tree structure, and then search the word vector model of word vector corresponding sentence tree leaf node, which on this basis, we propose a method of sentence similarity based on word vector, this method firstly, sentence vector tree, then we put forward the soft partial tree kernel function to calculate the final score of sentence similarity. The experimental results show that this method has achieved the best results in more than half of the datasets, and has achieved the most advanced performance in terms of average performance. This shows that this method is a very effective measure of sentence similarity.

【技术实现步骤摘要】
一种基于词向量的句子相似度比较方法
本专利技术涉及一种基于词向量的句子相似度比较方法,属于自然语言处理
背景内容句子相似度比较是自然语言处理的一个基本任务,它广泛应用于很多领域,比如信息检索、机器翻译、文本分类等。只要是需要判断二个句子相似性的场景,都离不开句子相似度判断方法。相似度判断方法越准确,有利于提高各种需要用到此相似度方法的系统的性能。句子相似度测量是自然语言处理中许多应用程序的核心,也是大多数文本相关任务的基础。句子相似度方法研究有很长的历史,有基于向量空间模型的方法,也有将句子通过神经网络嵌入成句子向量的方法,这一类方法最近取得了很大的成功,比如利用DNN(深度神经网络),RNN(循环神经网络),LSTM(长短期记忆网络)等。但是这种将句子表示成向量的做法忽略了句子本身存在的句法信息,会丢失句子的句法信息。
技术实现思路
本专利技术克服现有技术存在的不足,本专利技术公开了一种基于词向量的句子相似度比较方法。本专利技术基于大型语料库训练得到词向量模型,并且通过斯坦福句法分析器将句子表示成句法成分树结构,然后在词向量模型中搜索句子成分树叶子节点所对应的词向量,这此基础上,我们提出了一种基于词向量的句子相似度比较方法,这种方法首先构建句子成分向量树,然后通过我们提出的softpartialtreekernel函数计算最终的句子相似度得分。实验结果表示,这种方法相对于目前性能表现很强的众多神经网络方法,在超过一半数据集上都取得了最好的效果,并且在平均性能上取得了最先进的效果。这说明了这种方法是一种很有效的句子相似度度量方式。这说明了这种方法是一种很有效的句子相似度度量方式。为解决上述技术问题,本专利技术所采用的技术方案为:一种基于词向量的句子相似度比较方法,其特征在于,包括如下步骤:步骤一、训练得到词向量模型,所述词向量模型包含词和词的向量;步骤二、对于待测试的句子对,分别生成句子的句法成分树结构,每个句子对应的句法成分树结构的叶子节点都为句中的词;步骤三、基于句子的句子成分树结构,构建句子向量树结构;步骤四、将句子向量树结构输入计算,即得到二个句子向量树结构的相似度得分。进一步的改进,所述步骤一中,使用维基百科文本作为训练语料,使用word2vec工具训练词向量,得到词向量模型。进一步的改进,所述步骤二中,使用斯坦福句法分析器,生成句子的句法成分树结构;若所述句子为中文,则预先进行分词处理。进一步的改进,所述步骤三,包括如下步骤:3.1)基于句子成分树结构,构建叶子节点集;3.2)遍历叶子节点集中的每个词,到词向量模型中搜索词所对应的词向量,构建叶子节点词向量集;3.3)遍历句子成分树结构的每一个叶子节点,每个叶子节点都包含在叶子节点集中,按照叶子节点集到叶子节点词向量集的一一对应关系,将叶子节点替换成叶子节点集中所对应的词向量。进一步的改进,所述步骤四中,包括如下步骤:4.1)对于步骤三中构建的两个句子向量树结构T1,T2,首先生成句子向量树结构的子树集F1={N1,N2,…,Ni},F2={M1,M2,…,Mj},其中Ni表示T1生成的最后一个子树的根节点,i表示T1生成子树的个数,Mj代表T2生成的最后一个子树的根节点,j代表T2生成子树的个数;4.2)句子成分向量树相似度其中Nl表示F1中任意一个元素,其中Mk表示F2中任意一个元素;Δ(Nl,Mk)表示Nl和Mk的相似度;这个式子表示将F1和F2中所有元素两两成对对比,计算值为Δ(Nl,Mk),然后累加。进一步的改进,所述Δ(Nl,Mk)的计算方法如下:4.3)如果Nl和Mk是不相同的并且不同时为叶子节点,则Δ(Nl,Mk)=0;4.4)如果Nl和Mk同时为叶子节点,则Δ(Nl,Mk)=CosiNe(Vec1,Vec2),Vec1表示叶子节点Nl对应的词向量,Vec2表示叶子节点Mk对应的词向量;CosiNe()表示对向量求余弦相似度;4.5)如果Nl和Mk都为非叶子节点且相同,则其中,μ表示树的高度的衰减因子,λ表示子序列的长度的衰减因子;表示以Nl为根节点的孩子节点按照字典序排列而成的字符序列,表示以Mk为根节点的孩子节点按照字典序排列而成的字符序列;和这二个字符序列长度的最小值其中表示字符序列的长度,表示字符序列的长度,表示取和这二个字符序列长度的最小值;函数Δp表示求和在长度为p的公共子序列上的相似度,p表示字符序列生成子串长度的取值,若一个字符序列长度为h,则p的取值范围为1~h;4.6)Δp函数计算过程如下:设和s1a表示以Nl为根节点的子树的孩子节点按顺序组成的字符序列,a表示以Nl为根节点的子树的最后一个孩子节点,s1表示以Nl为根节点的子树的孩子节点按字典顺序排列后除去最后一个孩子节点a之后组成的字符序列;s2b表示以Mk为根节点的子树的孩子节点按顺序组成的字符序列;b表示以Mk为根节点的子树的最后一个孩子节点,s2表示以M1为根节点的子树的孩子节点按字典顺序排列后除去最后一个孩子节点b之后组成的字符序列;则具体计算如下:其中|s1|表示字符序列s1的长度,|s2|表示字符序列s2的长度,t表示字符序列s1生成子串序列取值长度,取值范围为1~|s1|,r表示字符序列s2生成子串序列取值长度,取值范围为1~|s2|,s1[1:t]表示从s1字符序列取下标从1到t位置的序列组成的字符子序列,s2[1:r]表示从s2字符序列取下标从1到r位置的序列组成的字符子序列;Δ(a,b)表示单个节点的相似度,Δ(a,b)的算法中分为以下几种情况:4.6.1.若节点a和节点b相同,则Δ(a,b)=1;4.6.2.若节点a和节点b不相同且至少有一个为非叶子节点,则Δ(a,b)=0;4.6.3.若节点a和节点b不相同且二者都是叶子节点,则Δ(a,b)=Cosine(Veca,Vecb),其中Veca表示叶子节点a对应的词向量,Vecb表示叶子节点b对应的词向量;4.6.4.最终的句子相似度计算公式为:其中,Score表示最终的句子相似度,SPTK(T1,T2)表示T1和T的句子成分向量树相似度;SPTK(T1,T1)表示T1和T1的句子成分向量树相似度;SPTK(T2,T2)表示T2和T2的句子成分向量树相似度。与现有技术相比,采用本专利技术具有如下优点:1.第一步,我们通过语料库经过训练得到词向量模型,语料库的选择可以根据具体的场景以及特地的领域进行选取,只要保证文字语法应该是基本正确的以及足够大即可。若没有语料,可以选择维基百科全部内容作为语料进行词向量训练。2.第三步,我们将词向量知识编码到句子成分树,从而构建了句子成分向量树,这种表示能很有效的将句子的句法以及词汇的语义考虑到一个统一的模型架构,从而能更有效的挖掘句子的语义信息。3.第五步,我们提出了一种能够用于计算句子成分向量树结构对的softpartialtreekernel函数,使得句子成分向量树能够很方便的计算相似度得分。4.本专利技术提出了一种基于词向量的句子相似度比较方法,这种方法相对于目前流行的神经网络方法,能取得一定可比较效果。附图说明图1为本专利技术的总流程示意图;图2为句子成分树的示意图;图3为句子成分向量树的示意图。其中,其中ROOT表示根节点,S表示这个句子的开始节点本文档来自技高网...
一种基于词向量的句子相似度比较方法

【技术保护点】
一种基于词向量的句子相似度比较方法,其特征在于,包括如下步骤:步骤一、训练得到词向量模型,所述词向量模型包含词和词的向量;步骤二、对于待测试的句子对,分别生成句子的句法成分树结构,每个句子对应的句法成分树结构的叶子节点都为句中的词;步骤三、基于句子的句子成分树结构,构建句子向量树结构;步骤四、将句子向量树结构输入计算,即得到二个句子向量树结构的相似度得分。

【技术特征摘要】
1.一种基于词向量的句子相似度比较方法,其特征在于,包括如下步骤:步骤一、训练得到词向量模型,所述词向量模型包含词和词的向量;步骤二、对于待测试的句子对,分别生成句子的句法成分树结构,每个句子对应的句法成分树结构的叶子节点都为句中的词;步骤三、基于句子的句子成分树结构,构建句子向量树结构;步骤四、将句子向量树结构输入计算,即得到二个句子向量树结构的相似度得分。2.如权利要求1所述的基于词向量的句子相似度比较方法,其特征在于,所述步骤一中,使用维基百科文本作为训练语料,使用word2vec工具训练词向量,得到词向量模型。3.如权利要求1所述的基于词向量的句子相似度比较方法,其特征在于,所述步骤二中,使用斯坦福句法分析器,生成句子的句法成分树结构;若所述句子为中文,则预先进行分词处理。4.如权利要求1所述的基于词向量的句子相似度比较方法,其特征在于,所述步骤三,包括如下步骤:3.1)基于句子成分树结构,构建叶子节点集;3.2)遍历叶子节点集中的每个词,到词向量模型中搜索词所对应的词向量,构建叶子节点词向量集;3.3)遍历句子成分树结构的每一个叶子节点,每个叶子节点都包含在叶子节点集中,按照叶子节点集到叶子节点词向量集的一一对应关系,将叶子节点替换成叶子节点集中所对应的词向量。5.如权利要求1所述的基于词向量的句子相似度比较方法,其特征在于,所述步骤四中,包括如下步骤:4.1)对于步骤三中构建的两个句子向量树结构T1,T2,首先生成句子向量树结构的子树集F1={N1,N2,…,Ni},F2={M1,M2,…,Mj},其中Ni表示T1生成的最后一个子树的根节点,i表示T1生成子树的个数,Mj代表T2生成的最后一个子树的根节点,j代表T2生成子树的个数;4.2)句子成分向量树相似度其中Nl表示F1中任意一个元素,其中Mk表示F2中任意一个元素;Δ(Nl,Mk)表示Nl和Mk的相似度;这个式子表示将F1和F2中所有元素两两成对对比,计算值为Δ(Nl,Mk),然后累加。6.如权利要求5所述的基于词向量的句子相似度比较方法,其特征在于,所述Δ(Nl,Mk)的计算方法如下:4.3)如果Nl和Mk是不相同的并且不同时为叶子节点,则Δ(Ml,Mk)=0;4.4)如果Nl和Mk同时为叶子节点,则Δ(Nl,Mk)=CosiNe(Vec1,Vec2),Vec1表示叶子节点Nl对应的词向量,Vec2表示叶子节点Mk对应的词向量;CosiNe()表示对向量求余...

【专利技术属性】
技术研发人员:全哲乐雨泉朱莉叶婷林轩
申请(专利权)人:湖南大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1