一种基于卷积神经网络的句子相似性计算方法与流程

文档序号:17049243发布日期:2019-03-05 19:52阅读:225来源:国知局
一种基于卷积神经网络的句子相似性计算方法与流程

本发明涉及自然语言处理领域,具体地涉及一种基于卷积神经网络的句子相似性计算法方法。



背景技术:

随着计算机和互联网科技的发展,自然语言处理在当前的智能领域中发挥越来越重要的作用,其中句子的相似性有着举足轻重的地位。句子相似性算法的实现和效果直接影响诸多计算机和互联网相关领域的发展,如自动问答系统、机器翻译、信息检索等。在句子相似度计算中,根据汉句子的不同表现形式可以大体上分为三类方法:基于词特征的句子相似度计算、基于语义特征的句子相似度计算和基于句法分析特征的句子相似度计算。

文献cn103034627a公开了一种计算句子相似度的方法。主要步骤是:第一步,对第一个句子和第二个句子进行比较,确定差异词对。第二步,利用差异词对中差异词与其所在第一句子或第二句子中其他词语的搭配概率,为各差异词打分。具体的搭配概率通过查询搭配概率模型得到,这个模型中两个词语之间的搭配概率由所述两词语在预设的语料库中的共线次数统计得到。第三步,利用差异词对中各差异词的打分结果对差异词对打分。第四步,根据差异词对的得分结果,确定两个句子的相似度。这个方法主要依赖于一个搭配概率模型和预设的语料库,所需要做的前期工作量比较大,并且忽略了词义本身。众所周知,中文中一个词可能会有很多不同意思,单纯的通过比较差异词以及其在语料库中和各个词的搭配概率,只能得到浅层的相似性,而得不到句子深层特征的相似性。

文献cn102955772a公开一种基于语义的相似度计算方法,其中使用基于词性与模板(相同的问法或短语表达)的语义映射(同义词映射为一个簇)方法对词汇进行权重分配然后再计算相似度计算方法。其中通过将句子中存在的语义映射的词语映射到归一化的表述,并将其融入相似度的计算,从而在语义上体现句子之间的相似度而不仅仅是字面上的相似程度。



技术实现要素:

本发明的基本构思在于,利用卷积神经网络(cnn)可以提取到句子的深层特征,从而不仅从句子层次而且还从语义层次提取特征,相比之下可以更准确地计算句子间的相似性。

本发明提出一种基于卷积神经网络的句子相似性计算方法,包括以下步骤:

输入第一句子和第二句子;

将所述第一句子和第二句子分别进行分词并且分别获得相应的第一词串和第二词串;

将所述第一词串和第二词串相应地转换为第一词向量和第二词向量;

将所述第一词向量和第二词向量分别组合为具有固定大小的第一句矩阵和第二句矩阵;

由所述第一句矩阵和第二句矩阵通过卷积神经网络语义特征提取模块(cnn)分别获取特定维数的第一语义向量和第二语义向量;

通过所述第一语义向量和第二语义向量计算所述第一句子和第二句子的相似性。

本发明具有以下优点,通过按照本发明提出的方法可以挖掘深层次语义,从抽象语义层面判断文本是否相似,相较于其他诸如基于关键词或特殊词汇统计的方法等等具有更高的准确率。另一方面,按照本发明的方法还可以适应更多语言环境,比如对于两个句子:“我喜欢这个餐厅喜欢的不要不要的”与“我超级喜欢这个餐厅”,如果采用当前现有的诸如基于关键词或特殊词汇统计的方法无法找出文本相似性,而根据按照本发明提出的基于卷积神经网络的句子相似性计算方法就可以计算并得出这两个句子的相似性。

其中有利地,在按照本发明提出的方法中所述分词步骤通过基于词典的逆向最大匹配法实现。对分词中文句子通常有三种方法:基于词典、词库匹配的分词方法;基于词频统计的分词方法;基于知识理解的分词方法。由于在按照本发明提出的方法中,分词是句子预处理的一部分,因此采用的比较简洁方便的基于词典、词库匹配的分词方法。在按照本发明提出的方法中,逆向最大匹配法相比于正向最大匹配法的误差要小很多,从统计结果来看,单纯使用正向最大匹配法的错误率为1/169,而单纯使用逆向最大匹配法的错误率仅为1/245。

此外优选地,在按照本发明提出的方法的所述组合步骤中所述矩阵固定大小为50*50。具体地,在将词向量组合为句矩阵过程中,为了保证句矩阵的结构固定,通过定义一个动态移动窗口,使得最终得到一个50*50的句矩阵。

此外有利地,所述卷积神经网络语义特征提取模块(cnn)包括五层:第一卷积层、第一池化层、第二卷积层、第二池化层以及全连接层。具体地,第一卷积层使用3*3的卷积,其作用在于提取浅层特征,同时根据相应卷积核将上述组合的句矩阵转换为48*48的矩阵。紧接着,第一池化层是第二层,采用2*2的大小,由此得到24*24的矩阵。随后,第二卷积层为第三层,其中使用5*5卷积用于提取深层特征,同时根据相应卷积核将数据转化为20*20的特征矩阵。第二池化层为第四层,其中使用2*2内核输出10*10的特征向量。全连接层是第五层,通过第五层之后得到一个100维的输出。

有利地,在所述全连接层之后设置softmax层,用于将经所述全连接层之后的输出映射为100维的代表所述句子语义的语义向量。

softmax层经常用在神经网络的最后一层,其本质就是将一个k(如100)维的任意实数向量映射成另一个k(如100)维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。

有利地,所述softmax层应用如下softmax函数:

其中j=1,2,…,k。

优选地,在按照本发明提出的方法中在获取第一语义向量和第二语义向量的步骤中所述特定维数为100维。

此外有利地,在按照本发明的方法中所述的计算相似性步骤中,计算所述第一语义向量和第二语义向量之间的欧式距离d,如果d<10,那么所述第一句子和第二句子语义相似;否则,其语义差别较大。

通常在n维空间中,两个点x和y的距离的欧式距离公式如下:

亦即

因此,第一语义向量和第二语义向量之间的距离亦即相应句子的相似度d的计算公式如下:

此外,本发明提出还一种基于卷积神经网络的句子相似性计算装置,包括:输入装置,用于输入要比较的句子;用于执行按照本发明所述的方法的处理单元;以及用于输出句子相似性计算结果输出装置。

此外本发明还提出一种相应的信息检索系统,其包括按照本发明提出的基于卷积神经网络的句子相似性计算装置。

按照本发明提出的通过透过文本表象挖掘深层语义的构思更符合人类的思维习惯,不论是用于信息检索系统、问答系统以及诸如此类的应用都能够为用户找到最符合其语言思维习惯的相似结果,甚至能够挖掘出用户都不知道的相似答案,比如若用户搜索“中国最东北方的省份”如果仅仅依靠表象词汇寻找相似答案那么很有可能并不会得到用户想要找到的答案,而本专利提供的语义相似性方法能够快速精准的定位到“黑龙江”,用户体验更佳,答案寻找更准确。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅描述本发明的一部分实施例。这些附图对于本发明来说并不是限制性的,而是起示例性的作用。其中:

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅描述本发明的一部分实施例。这些附图对于本发明来说并不是限制性的,而是起示例性的作用。其中:

图1示出按照本发明提出的基于卷积神经网络的句子相似性计算方法的示意流程图;

图2示出按照本发明提出的方法的一个实施例的详细流程图;

图3示出按照本发明提出的方法的一个实施例的卷积神经网络语义特征提取模块的结构示意图;

图4示出按照本发明提出的方法中的分词流程图;

图5示出按照本发明提出的基于卷积神经网络的句子相似性计算装置的方框图。

具体实施方式

图1示意地示出按照本发明提出的基于卷积神经网络的句子相似性计算方法200的流程图。该方法200包括以下步骤:

首先,在第一步骤201中,输入第一句子s1和第二句子s2;

随后,在第二步骤202中,将输入的第一句子s1和第二句子s2分别进行分词并且分别获得相应的第一词串w1和第二词串w2;

随后,在第三步骤203中,将第一词串w1和第二词串w2相应地转换为第一词向量wv1和第二词向量wv2;

紧接着,在第四步骤204中,将第一词向量wv1和第二词向量wv2分别组合为具有固定大小的第一句矩阵m1和第二句矩阵m2;

随后,在第五步骤205中,由第一句矩阵m1和第二句矩阵m2通过卷积神经网络语义特征提取模块(cnn)分别获取特定维数的第一语义向量v1和第二语义向量v2;

最后,在第六步骤205中,通过第一语义向量v1和第二语义向量v2计算第一句子s1和第二句子s2的相似性。

图2示出按照本发明提出的方法的一个实施例的详细流程图。

按照本发明的一个具体实施例,首先,在第一步骤201中输入第一句子s1=“楼房如何建造”、第二句子s2=“房子怎么盖”。

随后,在第二步骤202中,将输入的第一句子s1和第二句子s2分别进行分词。具体地,在该实施例中,分词模块采用基于词典的逆向最大匹配法,其步骤的示意流程图如图4所示。最大匹配是指以词典为依据,取词典中最长单词为第一个次取字数量的扫描串,在词典中进行扫描(为提升扫描效率,还可以跟据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描)。例如:词典中最长词为“中华人民共和国”共7个汉字,则最大匹配起始字数为7个汉字。然后逐字递减,在对应的词典中进行查找。逆向最大匹配法即从后往前取词,每次减一个字,直到词典命中或剩下1个单字。

通过分词步骤202,输入的第一句子s1和第二句子s2分别为相应的第一词串w1=“楼房”“如何”“建造”以及第二词串w2=“房子”“怎么”“盖”。

随后,在第三步骤203中,将第一词串w1=“楼房”“如何”“建造”以及第二词串w2=“房子”“怎么”“盖”相应地转换为第一词向量wv1和第二词向量wv2。在该实施例中,在生成词向量步骤203中,利用的开源工具word2vec,其中采用的模型有cbow(连续的词袋模型)和skip-gram两种。通过训练,word2vec可以把对文本内容的处理简化为k维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度,因为其具有高效性而很受欢迎。在按照本发明的实施例中采用其中的skip-gram模型,由此获得的第一词向量wv1和第二词向量wv2都是50维的词向量。

紧接着,在第四步骤204中,将50维的第一词向量wv1和第二词向量wv2分别组合为50*50的第一句矩阵m1和第二句矩阵m2。这通过动态移动窗口公式实现:

其中,根据该公式计算出长度为s的窗口内所有词向量的平均值作为句矩阵的一行,每行维度为50。因此得到50个长度为s的窗口,将它们分行叠加就得到50*50的句矩阵(在分别针对第一句矩阵m1和第二句矩阵m2),从而经转换获得的第一句矩阵m1和第二句矩阵m2作为随后在下一步骤中的输入。

随后,在第五步骤205中,由第一句矩阵m1和第二句矩阵m2通过卷积神经网络语义特征提取模块(cnn)分别获取特定维数的第一语义向量v1和第二语义向量v2。

图3示出按照该实施例的卷积神经网络语义特征提取模块的结构示意图。如上所述,卷积神经网络语义特征提取模块(cnn)共包括五层:第一卷积层、第一池化层、第二卷积层、第二池化层以及全连接层。具体地,第一卷积层使用3*3的卷积,其作用在于提取浅层特征,同时根据相应卷积核将上述组合的句矩阵转换为48*48的矩阵。紧接着,第一池化层是第二层,采用2*2的大小,由此得到24*24的矩阵。随后,第二卷积层为第三层,其中使用5*5卷积用于提取深层特征,同时根据相应卷积核将数据转化为20*20的特征矩阵。第二池化层为第四层,其中使用2*2内核输出10*10的特征向量。全连接层是第五层,通过第五层之后得到一个100维的输出。在该实施例中,在全连接层之后设置softmax层,用于将经所述全连接层之后的输出映射为100维的代表所述句子语义的语义向量。

最终,通过步骤205分别得到第一句子s1=“楼房如何建造”的第一语义向量v1=[0,0.5,1,0,7,……],而第二句子s2=“房子怎么盖”类似地得到第二语义向量v2=[0,0.4,1,0,7,……]。

最后,在第六步骤205中,通过第一语义向量v1=[0,0.5,1,0,7,……]和第二语义向量v2=[0,0.4,1,0,7,……]计算第一句子s1和第二句子s2的相似性。具体地,通过上述欧式公式计算出这两个语义向量之间欧式距离小于k,因此可以认为这两句话“楼房如何建造”和“房子怎么盖”在语义表达上相似。

图5示出按照本发明提出的基于卷积神经网络的句子相似性计算装置100的方框图。在图5中,基于卷积神经网络的句子相似性计算装置100包括:用于输入要比较的句子的输入装置101,该输入装置例如是常规的文字输入装置或其他方式的任意输入装置;用于执行按照本发明提出的基于卷积神经网络的句子相似性计算方法的处理单元102,该处理单元例如具有处理器,程序存储器、数据存储器以及相关的输入输出设备或外围设备。此外装置100还可以具有输出装置103,用于实时输出或提醒用户句子相似性计算的结果。

按照本发明提出的基于卷积神经网络的句子相似性计算装置100通常可以用于相应的信息检索系统、问答系统以及诸如此类。在上述诸多应用中,按照本发明提出的通过透过文本表象挖掘深层语义的构思更符合人类的思维习惯,因此都能够为用户找到最符合其语言思维习惯的相似结果。

对所提出的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。应当理解,以上实施例中所公开的特征,除了有特别说明的情形外,都可以单独地或者相结合地使用。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本文所公开的本发明并不局限于所公开的具体实施例,而是意在涵盖如所附权利要求书所限定的本发明的精神和范围之内的修改。

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