句子相似度计算方法和装置与流程

文档序号:17161207发布日期:2019-03-20 00:45阅读:232来源:国知局
句子相似度计算方法和装置与流程
本发明涉及语言信息处理
技术领域
,尤其涉及一种句子相似度计算方法和装置。
背景技术
:文本相似度计算在自然语言处理领域是一个重要部分,在信息检索,文档分类,问答系统等有重要的作用。文本相似度根据文本长度又可以分为长文本(篇章级别),短文本(语句级别,词语级别)相似度计算。长度不同的文本使得各种计算方法各有优劣。对于句子级别的相似度,不仅要考虑到句子内各个词语的含义,还要考虑到词语组合的顺序,使得该类研究比较复杂。传统计算句子相似度方法主要是仅仅考虑句子文本的编辑距离(levenshtein距离),该类计算方法没有考虑到词语的含义,进而计算句子相似度会存在不正确的问题;另一种方法时根据词语向量生成句子向量,然后计算句子向量之间的相似性,会导致在句子向量生成的过程中的信息损失。技术实现要素:为了解决上述问题,本发明提供一种句子相似度计算方法和装置,直接利用词向量计算句子相似度,既考虑了语义信息,又避免了信息损失。本发明提供一种句子相似度计算方法,包括:分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度。可选地,分别获取第一词向量列表和第二词向量列表,包括:分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第二分词列表,所述第一分词列表中包括m个分词,所述第二分词列表中包括n个分词;分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表。可选地,所述词向量模型是利用word2vec算法,对预先建立的语料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。可选地,将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,包括:根据词向量之间的余弦相似度计算方法,对所述第一句子中任一个分词wi的词向量和所述第二句子中任一个分词wj的词向量进行相似度计算,得到所述第一句子中分词wi和所述第二句子中分词wj之间的相似度值。可选地,对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度,包括:对所述m乘以n个词向量对的相似度值根据相似度值从大到小进行排序;对排序后的m乘以n个词向量对的相似度值进行加权平均。可选地,所述的方法还包括:针对每个词向量对,对其进行加权平均过程中时使用的权重为该词向量对的两个分词中剩余权重的偏小值,所述剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权重。可选地,所述的方法还包括:针对每个词向量对,对其进行加权平均过程中时使用的权重与该词向量对的相似度值成正相关关系,即词向量对的相似度值越高,在其进行加权平均过程中时使用的权重越大。本申请还提供一种句子相似度计算装置,包括:获取模块,用于分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;第一计算模块,用于将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;第二计算模块,用于对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度。本申请还提供一种句子相似度计算方法,包括:分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对;根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度。可选地,分别获取第一词向量列表和第二词向量列表,包括:分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第二分词列表,所述第一分词列表中包括m个分词,所述第二分词列表中包括n个分词;分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表。可选地,所述词向量模型是利用word2vec算法,对预先建立的语料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。可选地,根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对,包括:根据词向量之间的余弦相似度计算方法,对所述第一句子中任一个分词的词向量和所述第二句子中任一个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;在所述m乘以n个词向量对中,根据相似度值的大小构建至少一个词向量对。可选地,根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度,包括:对所述构建的至少一个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度。可选地,所述的方法还包括:针对每个构建的词向量对,对其进行加权平均过程中时使用的权重为该词向量对的两个分词中剩余权重的偏小值,所述剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权。可选地,所述的方法还包括:针对每个构建的词向量对,对其进行加权平均过程中时使用的权重与该词向量对的相似度值成正相关关系,即词向量对的相似度值越高,在其进行加权平均过程中时使用的权重越大。本申请还提供一种句子相似度计算装置,包括:获取模块,用于分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;构建模块,用于根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对;确定模块,用于根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度。本发明实施例通过将两个句子分别进行分词处理,在将分词处理后的得到句子分子与词向量进行匹配,得到对应的两个词向量列表,之后,将两个词向量列表中的词语两两计算相似度值,得到m×n个词向量对的相似度值,根据相似度值从大到小进行排列,然后根据相似度值从大到小对m×n个词向量对的相似度值进行加权平均计算得到两个句子的相似度结果,因此,本发明实施例中不存在根据词向量列表生成对应句子向量的步骤,可以克服现有技术中根据词向量列表生成句子向量过程中存在信息损失的问题;进一步地,在加权平均计算过程中赋予每个词向量对的相似度值的权值tij为对应分词在对应句子中所占的剩余权重,因此,经过加权平均计算之后,句子两两之间的相似度计算结果也为0到1之间的实数,这样的归一化的结果是非常方便用于基于句子相似度排序的信息检索和自动问答等等应用中;进一步地,本发明实施例中在生成词向量列表中考虑到了每个词语的语义,且在计算两两词语对的向量相似度值时,只计算分属不同句子中的两个词语之间的向量相似度,因此,本发明实施例计算的句子相似度结果会比较现有技术计算的句子相似度结果更加正确。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明一实施例提供的句子相似度计算方法的流程示意图;图2为应用图1所示实施例所示方法进行句子相似度计算的流程示意图;图3为本发明一实施例提供的句子相似度计算装置的结构示意图;图4为本发明另一实施例提供的句子相似度计算方法的流程示意图;图5为本发明另一实施例提供的句子相似度计算装置的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述xxx,但这些xxx不应限于这些术语。这些术语仅用来将xxx彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一xxx也可以被称为第二xxx,类似地,第二xxx也可以被称为第一xxx。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。图1为本发明一实施例提供的句子相似度计算方法的流程示意图,如图1所示,101、分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第二分词列表;本实施例中,第一句子和第二句子是待计算相似度的两个句子;首先对第一句子和第二句子分别进行分词处理,举例来说,针对中文的句子,例如可以使用多种开源的分词工具(如:ansj、ikanalyzer和ictclas等)进行分词处理;针对英文的句子,由于应为句子本身就是包含词间隔的语言,可直接根据空格、标点等标识符实现快速分词处理。假设将第一句子分词处理后得到m个分词,则所述第一分词列表中包括m个分词,假设将第二句子分词处理后得到n个分词,则所述第二分词列表中包括n个分词,m、n为大于1的自然数。102、分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表;本实施例中,预设的词向量模型是利用word2vec算法,对预先建立的语料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。其中,语料库越大所获取的词向量也越准确,语料库的获取可以通过网上爬取相关资讯等作为训练语料库。可以想到的是,本领域技术人员可以根据需要,再设置专用某一个
技术领域
的语料库,只通过获取训练包含某一个或者多个领域可能会使用的词语的语料库,来提高训练的效率和提高匹配词语向量的准确度,实现更好的计算句子之间的相似度。例如,通过训练得到的词向量模型的格式如下表:词语向量word1v11,…,v1l……wordnvn1,…,vnll为每个词向量的长度。其中,假设每一句子中的每个分词都能匹配到对应的词向量,则所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;103、将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;为了避免现有技术中在句子向量生成的过程中的信息损失,本发明实施例中,不再使用第一词向量列表和第二词向量列表分别生成第一句子向量和第二句子向量,而是直接将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,得到m×n个词向量对的相似度值。在一种可选的实施方式中,可以根据下述词语相似度计算公式:对所述第一句子中任一个分词wi的词向量和所述第二句子中任一个分词wj的词向量进行相似度计算,得到所述第一句子中分词wi和所述第二句子中分词wj之间的相似度值;其中,s(wi,wj)是指词向量和词向量之间的相似度值,和分别代表分词wi和分词wj对应的词向量。通过上述词语相似度计算公式,可将第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,从而得到m×n个词向量对的相似度值。104、对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度。在一种可选的实施方式中,对所述m×n个词向量对的相似度值根据相似度值从大到小进行排序;根据公式对排序后的m×n个词向量对的相似度值进行加权平均;其中,d表示所述第一句子,d′表示所述第二句子,tij为加权平均计算过程中为每一个词向量对的相似度值s(wi,wj)赋予的权值,需要注意的是,赋予的权值tij随着s(wi,wj)的相似度值从大到小进行递减,具体地,权值tij可以是对每个词向量对进行加权平均过程中时使用的权重,为该词向量对中的两个分词中剩余权重的偏小值,这里的剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权重;具体地,权值tij的计算公式可以为:tij=min{r(wi),r(wj)};其中,r(wi)表示分词wi在所述第一句子d中所占的剩余权重,r(wj)表示分词wj在所述第二句子d′中所占的剩余权重。可选地,上述权值tij可以是对每个词向量对进行加权平均过程中时使用的权重,该权重与词向量对的相似度值成正比,即词向量对的相似度值越高,在其进行加权平均过程中时使用的tij权重越大。本发明实施例通过将两个句子分别进行分词处理,在将分词处理后的得到句子分子与词向量进行匹配,得到对应的两个词向量列表,之后,将两个词向量列表中的词语两两计算相似度值,得到m×n个词向量对的相似度值,根据相似度值从大到小进行排列,然后根据相似度值从大到小对m×n个词向量对的相似度值进行加权平均计算得到两个句子的相似度结果,因此,本发明实施例中不存在根据词向量列表生成对应句子向量的步骤,可以克服现有技术中根据词向量列表生成句子向量过程中存在信息损失的问题;进一步地,在加权平均计算过程中赋予每个词向量对的相似度值的权值tij为对应分词在对应句子中所占的剩余权重,因此,经过加权平均计算之后,句子两两之间的相似度计算结果也为0到1之间的实数,这样的归一化的结果是非常方便用于基于句子相似度排序的信息检索和自动问答等等应用中;进一步地,本发明实施例中在生成词向量列表中考虑到了每个词语的语义,且在计算两两词语对的向量相似度值时,只计算分属不同句子中的两个词语之间的向量相似度,因此,本发明实施例计算的句子相似度结果会比较现有技术计算的句子相似度结果更加正确。下面通过举例的方式对图1所示方法的具体实现进行详细的说明。图2为应用图1所示实施例所示方法进行句子相似度计算的流程示意图,如图2所示,其中,“数据集”是指大量句子文本数据,通常是越多越好,当然前提是在计算机的内存和处理器能够承受的情况下。word2vec模型,是利用词语上下文语义信息得到的词向量模型,在词向量模型中,每个词语都能够表示成一个固定维度的向量,由于该类模型训练为自然语言处理相关领域常见的知识,本发明对此不作限定,因此不在此赘述。在实际应用中,将两个句子作为传入参数输入进本发明实施例所述方法对应的程序时,即能实时计算出两个句子的相似度。为了方便说明,定义两个输入的句子分别为“句子1”和“句子2”,分别对“句子1”和“句子2”进行分词处理,得到“分词句子1”和“分词句子2”。需要说明的是,针对中文句子,“分词”过程中可以使用多种开源的分词工具,例如:ansj、ikanalyzer和ictclas等等。针对英文句子,由于英文句子本身就包含词间隔的语言,可直接根据空格、标点等标识符实现快速分词。在得到句子的分词结果之后,利用上述训练得到的word2vec模型,分别生成句子1和句子2中每个词语的词向量,分别记为“词向量列表1”和“词向量列表2”。之后,对“词向量列表1”和“词向量列表2”中的词语向量计算相似度,此处需要注意的是,在计算两个词向量列表中的词语向量的相似度时,只计算分属不同句子中的两个词语之间的向量相似度,对属于同一句子中的词语之间不进行相似度计算。其中,本实施例中词语相似度计算方式如下:其中,s(wi,wj)是指词向量和词向量之间的相似度值,和分别代表句子1中词语wi和句子2中的词语wj对应的词向量。通过上述词语相似度计算公式,将词向量列表1中的每个分词的词向量和词向量列表2中的每个分词的词向量进行相似度计算,得到m×n个词向量对的相似度值。针对上述已经计算完成的词语两两间的相似度值(m×n个词向量对的相似度值),本发明对其按照相似度的值从大到小进行排序,得到“词向量相似度排序”结果。之后,利用“加权平均”的计算方式,对排序后的m×n个词向量对的相似度值进行加权平均得到“两个句子的相似度结果”,即为本发明最终需要得到的相似度结果。其中,加权平均的计算方式如下:其中,句子1和句子2分别表示为d和d’,s(d,d’)表示两个句子的相似度值,在s(wi,wj)的计算过程中,所有的wi都属于d,所有的wj都属于d’。m和n分别为d和d’中的词语个数。为了使得词语相似度在句子相似度中得到最大的体现,本发明实施例中,按照词语相似度的排序结果,按照相似度值从大到小的词语对进行计算。其中,tij为加权平均计算过程中为每一个词向量对的相似度值s(wi,wj)赋予的权值,需要注意的是,赋予的权值tij随着s(wi,wj)的相似度值从大到小进行递减。tij的计算方式如下:tij=min{r(wi),r(wj)}其中,r(wi)表示分词wi在所述第一句子d中所占的剩余权重,即分词wi的初始权重减去加权平均计算过程中已经用掉的权重,r(wj)表示分词wj在所述第二句子d′中所占的剩余权重,即词wj的初始权重减去加权平均计算过程中已经用掉的权重。需要说明的是,每个词语的初始权重为该词语在对应句子中出现的次数除以句子中包含的词语总个数,而如果某个词语的权重已经用在了词语相似度计算的过程之中,则其在加权平均计算过程中使用的权重需要扣除已经用在词语相似度计算过程中的权重部分。本发明实施例中,之所以用r(wi)和r(wj)中较小的值,是因为在这种情况下,在wi和wj计算相似度的时候所能最大限度同时提供剩余权重。举例说明,词语wi和wj在对应句子中的权重分别为0.2和0.15,而s(wi,wj)是词语相似度的排序结果中相似度最大的词语对,则首先将s(wi,wj)用于句子相似度计算之中。此时,wi和wj能同时贡献出的最大权重即为0.15,即取0.2和0.15中的最小值,之后,两个词语wi和wj的剩余权重分别为0.05和0。以此类推,直到所有的词语对按照顺序依次计算结束。在此过程中,所有的tij之和为1,这就是“加权平均”的含义。因为两个词语之间的相似度值均为0到1之间的实数值,则经过加权平均计算之后,句子两两之间的相似度计算结果也为0到1之间的实数,这样的归一化的结果是非常方便用于基于句子相似度排序的信息检索和自动问答等等应用中。由于现有技术中根据两个词语向量列表生成对应的两个句子向量,然后计算两个句子向量之间的相似性,然而在句子向量生成的过程中容易导致的信息损失;而本发明实施例没有使用词语向量列表生成句子向量,因此不存在信息损失的问题;进一步地,在加权平均计算过程中赋予每个词向量对的相似度值的权值tij为对应分词在对应句子中所占的剩余权重,因此,经过加权平均计算之后,句子两两之间的相似度计算结果也为0到1之间的实数,这样的归一化的结果是非常方便用于基于句子相似度排序的信息检索和自动问答等等应用中;进一步地,本发明实施例中在生成词向量列表中考虑到了每个词语的语义,且在计算两两词语对的向量相似度值时,只计算分属不同句子中的两个词语之间的向量相似度,因此,本发明实施例计算的句子相似度结果会比较现有技术计算的句子相似度结果更加正确。图3为本发明一实施例提供的句子相似度计算装置的结构示意图,如图3所示,包括:获取模块31,用于分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;第一计算模块32用于将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;第二计算模块33,用于对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度。可选地,所述获取模块31具体用于:分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第二分词列表,所述第一分词列表中包括m个分词,所述第二分词列表中包括n个分词;分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表;所述词向量模型是利用word2vec算法,对预先建立的语料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。可选地,所述第一计算模块32具体用于:根据词向量之间的余弦相似度计算方法,对所述第一句子中任一个分词wi的词向量和所述第二句子中任一个分词wj的词向量进行相似度计算,得到所述第一句子中分词wi和所述具体地,词向量之间的余弦相似度计算方法为词语相似度计算公式:其中,s(wi,wj)是指词向量和词向量之间的相似度值,和分别代表分词wi和分词wj对应的词向量。可选地,所述第二计算模块33具体用于:对所述m乘以n个词向量对的相似度值根据相似度值从大到小进行排序;对排序后的m乘以n个词向量对的相似度值进行加权平均具体地,对所述m乘以n个词向量对的相似度值根据相似度值从大到小进行排序之后,根据公式对排序后的m乘以n个词向量对的相似度值进行加权平均;其中,d表示所述第一句子,d′表示所述第二句子,tij为加权平均计算过程中为每一个词向量对的相似度值s(wi,wj)赋予的权值,赋予的权值tij随着s(wi,wj)的相似度值从大到小进行递减。可选地,所述的装置还包括:第三计算模块34,用于针对每个词向量对,其在对其进行加权平均过程中时使用的权重为该词向量对的两个分词中剩余权重的偏小值,所述剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权重;具体地,根据公式tij=min{r(wi),r(wj)}计算tij;其中,r(wi)表示分词wi在所述第一句子d中所占的剩余权重,r(wj)表示分词wj在所述第二句子d′中所占的剩余权重。可选地,针对每个词向量对,对其进行加权平均过程中时使用的权重与该词向量对的相似度值成正相关关系,即词向量对的相似度值越高,在其进行加权平均过程中时使用的权重越大。本发明实施例所述的装置可以上述实施例所示的方法,其实现原理和技术效果不再赘述。图4为本发明另一实施例提供的句子相似度计算方法的流程示意图;如图4所示,包括:401、分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量;其中,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;具体实现可以参考图1和图2所示实施例中的相关内容,分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第二分词列表,所述第一分词列表中包括m个分词,所述第二分词列表中包括n个分词;分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表。其中,所述词向量模型是利用word2vec算法,对预先建立的语料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。402、根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对;具体实现时,根据词向量之间的余弦相似度计算方法,对所述第一句子中任一个分词的词向量和所述第二句子中任一个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;在所述m乘以n个词向量对中,根据相似度值的大小构建至少一个词向量对。例如,根据相似度值大小对所述m乘以n个词向量对进行排序,将相似度值大于预设阈值的词向量对用于计算第一句子和第二句子的相似度;或者,根据相似度值大小,从大到小在m乘以n个词向量对中选取预设个数的词向量对用于计算第一句子和第二句子的相似度。其中,根据词向量之间的余弦相似度计算方法,具体为:根据下述词语相似度计算公式:对所述第一句子中任一个分词wi的词向量和所述第二句子中任一个分词wj的词向量进行相似度计算,得到所述第一句子中分词wi和所述第二句子中分词wj之间的相似度值;其中,s(wi,wj)是指词向量和词向量之间的相似度值,和分别代表分词wi和分词wj对应的词向量。403、根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度。具体地,对所述构建的至少一个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度。举例来说,假设上述在m×n个词向量对中选取了f个词向量对进行第一句子和第二句子的相似度的计算,即构建了f个词向量对,则可以对构建的f个词向量对根据相似度值从大到小进行排序;然后根据公式,对排序后的f个词向量对的相似度值进行加权平均;其中加权平均计算公式为:其中,句子1和句子2分别表示为d和d’,s(d,d’)表示两个句子的相似度值,在s(wi,wj)的计算过程中,所有的wi都属于d,所有的wj都属于d’。f为为在m×n个词向量对中选取的词向量对个数,选取原则可以根据词向量对的相似度从大到小进行选取。其中,tij为加权平均计算过程中为每一个词向量对的相似度值s(wi,wj)赋予的权值,需要注意的是,赋予的权值tij随着s(wi,wj)的相似度值从大到小进行递减。tij的计算方式如下:tij=min{r(wi),r(wj)}其中,r(wi)表示分词wi在所述第一句子d中所占的剩余权重,即分词wi的初始权重减去加权平均计算过程中已经用掉的权重,r(wj)表示分词wj在所述第二句子d′中所占的剩余权重,即词wj的初始权重减去加权平均计算过程中已经用掉的权重。需要说明的是,每个词语的初始权重为该词语在对应句子中出现的次数除以句子中包含的词语总个数,而如果某个词语的权重已经用在了词语相似度计算的过程之中,则其在加权平均计算过程中使用的权重需要扣除已经用在词语相似度计算过程中的权重部分。本发明实施例中,之所以用r(wi)和r(wj)中较小的值,是因为在这种情况下,在wi和wj计算相似度的时候所能最大限度同时提供剩余权重。可选地,上述权值tij可以是对每个词向量对进行加权平均过程中时使用的权重,该权重与词向量对的相似度值成正比,即词向量对的相似度值越高,在其进行加权平均过程中时使用的tij权重越大。本发明实施例通过将两个句子分别进行分词处理,在将分词处理后的得到句子分子与词向量进行匹配,得到对应的两个词向量列表,之后,将两个词向量列表中的词语两两计算相似度值,得到m×n个词向量对的相似度值,根据相似度值从大到小在m×n个词向量对中至少构建一个词向量对用于计算两个句子的相似度结果,因此,本发明实施例中不存在根据词向量列表生成对应句子向量的步骤,可以克服现有技术中根据词向量列表生成句子向量过程中存在信息损失的问题;进一步地,在加权平均计算过程中赋予每个构建的词向量对的相似度值的权值tij为对应分词在对应句子中所占的剩余权重,因此,经过加权平均计算之后,句子两两之间的相似度计算结果也为0到1之间的实数,这样的归一化的结果是非常方便用于基于句子相似度排序的信息检索和自动问答等等应用中;进一步地,本发明实施例中在生成词向量列表中考虑到了每个词语的语义,且在计算两两词语对的向量相似度值时,只计算分属不同句子中的两个词语之间的向量相似度,因此,本发明实施例计算的句子相似度结果会比较现有技术计算的句子相似度结果更加正确。图5为本发明另一实施例提供的句子相似度计算装置的结构示意图,如图5所示,包括:获取模块51,用于分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;构建模块52,用于根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对;确定模块53,用于根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度。其中,获取模块51,构建模块52和确定模块53的具体实现可以参考图4所示方法实施例中的相关描述,不再赘述。本发明实施例中,上述句子相似度计算装置的结构中包括处理器和存储器,所述存储器用于存储支持句子相似度计算装置执行上述图1和图4所示实施例中句子相似度计算方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行。本发明实施例还提供了一种计算机存储介质,用于储存句子相似度计算装置所用的计算机软件指令,所述计算机软件指令包含了用于执行上述句子相似度计算方法为句子相似度计算装置所涉及的程序。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1