CN109492213B - 句子相似度计算方法和装置 - Google Patents
句子相似度计算方法和装置 Download PDFInfo
- Publication number
- CN109492213B CN109492213B CN201710813321.7A CN201710813321A CN109492213B CN 109492213 B CN109492213 B CN 109492213B CN 201710813321 A CN201710813321 A CN 201710813321A CN 109492213 B CN109492213 B CN 109492213B
- Authority
- CN
- China
- Prior art keywords
- word vector
- word
- sentence
- similarity
- list
- 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/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了句子相似度计算方法和装置。通过将两个句子分别进行分词处理,在将分词处理后的得到句子分子与词向量进行匹配,得到对应的两个词向量列表,之后,将两个词向量列表中的词语两两计算相似度值,得到m×n个词向量对的相似度值,根据相似度值从大到小进行排列,然后根据相似度值从大到小对m×n个词向量对的相似度值进行加权平均计算得到两个句子的相似度结果,因此,本发明实施例中不存在根据词向量列表生成对应句子向量的步骤,可以克服现有技术中根据词向量列表生成句子向量过程中存在信息损失的问题。
Description
技术领域
本发明涉及语言信息处理技术领域,尤其涉及一种句子相似度计算方法 和装置。
背景技术
文本相似度计算在自然语言处理领域是一个重要部分,在信息检索,文 档分类,问答系统等有重要的作用。文本相似度根据文本长度又可以分为长 文本(篇章级别),短文本(语句级别,词语级别)相似度计算。长度不同的文本 使得各种计算方法各有优劣。对于句子级别的相似度,不仅要考虑到句子内 各个词语的含义,还要考虑到词语组合的顺序,使得该类研究比较复杂。
传统计算句子相似度方法主要是仅仅考虑句子文本的编辑距离 (Levenshtein距离),该类计算方法没有考虑到词语的含义,进而计算句子相 似度会存在不正确的问题;另一种方法时根据词语向量生成句子向量,然后 计算句子向量之间的相似性,会导致在句子向量生成的过程中的信息损失。
发明内容
为了解决上述问题,本发明提供一种句子相似度计算方法和装置,直接 利用词向量计算句子相似度,既考虑了语义信息,又避免了信息损失。
本发明提供一种句子相似度计算方法,包括:
分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包 括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n 个分词的词向量,m、n为大于1的自然数;
将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中 的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;
对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述 第一句子和第二句子的相似度。
可选地,分别获取第一词向量列表和第二词向量列表,包括:
分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第 二分词列表,所述第一分词列表中包括m个分词,所述第二分词列表中包括 n个分词;
分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词 向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表。
可选地,所述词向量模型是利用word2vec算法,对预先建立的语料库进 行训练,得到所述语料库中所有词语的向量构成的词向量模型。
可选地,将所述第一词向量列表中的每个分词的词向量和所述第二词向 量列表中的每个分词的词向量进行相似度计算,包括:
可选地,对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算法,对预先建立的语 料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。
其中,语料库越大所获取的词向量也越准确,语料库的获取可以通过网 上爬取相关资讯等作为训练语料库。可以想到的是,本领域技术人员可以根 据需要,再设置专用某一个技术领域的语料库,只通过获取训练包含某一个 或者多个领域可能会使用的词语的语料库,来提高训练的效率和提高匹配词 语向量的准确度,实现更好的计算句子之间的相似度。
例如,通过训练得到的词向量模型的格式如下表:
词语 | 向量 |
word1 | <![CDATA[v<sub>11</sub>,…,v<sub>1L</sub>]]> |
… | … |
wordn | <![CDATA[v<sub>n1</sub>,…,v<sub>nL</sub>]]> |
L为每个词向量的长度。
其中,假设每一句子中的每个分词都能匹配到对应的词向量,则所述第 一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中 包括第二句子中n个分词的词向量,m、n为大于1的自然数;
103、将所述第一词向量列表中的每个分词的词向量和所述第二词向量列 表中的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似 度值;
为了避免现有技术中在句子向量生成的过程中的信息损失,本发明实施 例中,不再使用第一词向量列表和第二词向量列表分别生成第一句子向量和 第二句子向量,而是直接将所述第一词向量列表中的每个分词的词向量和所 述第二词向量列表中的每个分词的词向量进行相似度计算,得到m×n个词向 量对的相似度值。
在一种可选的实施方式中,可以根据下述词语相似度计算公式:对所述第一句子中任一个分词wi的词向量和所 述第二句子中任一个分词wj的词向量进行相似度计算,得到所述第一句子 中分词wi和所述第二句子中分词wj之间的相似度值;
通过上述词语相似度计算公式,可将第一词向量列表中的每个分词的词 向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,从而得 到m×n个词向量对的相似度值。
104、对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”中的词语向量计算相似度, 此处需要注意的是,在计算两个词向量列表中的词语向量的相似度时,只计 算分属不同句子中的两个词语之间的向量相似度,对属于同一句子中的词语 之间不进行相似度计算。
其中,本实施例中词语相似度计算方式如下:
通过上述词语相似度计算公式,将词向量列表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个词向量 对的相似度值进行加权平均
其中,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之间的相似度值;
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所示 实施例中句子相似度计算方法的程序,所述处理器被配置为用于执行所述存 储器中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指 令供所述处理器调用执行。
本发明实施例还提供了一种计算机存储介质,用于储存句子相似度计算 装置所用的计算机软件指令,所述计算机软件指令包含了用于执行上述句子 相似度计算方法为句子相似度计算装置所涉及的程序。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技 术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种句子相似度计算方法,其特征在于,包括:
分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;
将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;
对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度;
其中,所述对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度,包括:对所述m乘以n个词向量对的相似度值根据相似度值从大到小进行排序;对排序后的m乘以n个词向量对的相似度值进行加权平均;
所述方法还包括:
针对每个词向量对,对其进行加权平均过程中时使用的权重为该词向量对的两个分词中剩余权重的偏小值,所述剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权重。
2.根据权利要求1所述的方法,其特征在于,分别获取第一词向量列表和第二词向量列表,包括:
分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第二分词列表,所述第一分词列表中包括m个分词,所述第二分词列表中包括n个分词;
分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表。
3.根据权利要求2所述的方法,其特征在于,所述词向量模型是利用word2vec算法,对预先建立的语料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。
4.根据权利要求1所述的方法,其特征在于,将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,包括:
根据词向量之间的余弦相似度计算方法,对所述第一句子中任一个分词wi的词向量vwi和所述第二句子中任一个分词wj的词向量vwj进行相似度计算,得到所述第一句子中分词wi和所述第二句子中分词wj之间的相似度值。
5.一种句子相似度计算装置,其特征在于,包括:
获取模块,用于分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;
第一计算模块,用于将所述第一词向量列表中的每个分词的词向量和所述第二词向量列表中的每个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;
第二计算模块,用于对m乘以n个词向量对的相似度值进行加权平均得到的相似度值为所述第一句子和第二句子的相似度;
其中,所述第二计算模块,具体用于对所述m乘以n个词向量对的相似度值根据相似度值从大到小进行排序;对排序后的m乘以n个词向量对的相似度值进行加权平均;
所述装置还包括:第三计算模块,用于针对每个词向量对,其在对其进行加权平均过程中时使用的权重为该词向量对的两个分词中剩余权重的偏小值,所述剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权重。
6.一种句子相似度计算方法,其特征在于,包括:
分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;
根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对;
根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度;
其中,所述根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度,包括:对所述构建的至少一个词向量对根据相似度值从大到小进行排序;对排序后的至少一个词向量对的相似度值进行加权平均;
所述方法还包括:针对每个构建的词向量对,对其进行加权平均过程中时使用的权重为该词向量对的两个分词中剩余权重的偏小值,所述剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权重。
7.根据权利要求6所述的方法,其特征在于,分别获取第一词向量列表和第二词向量列表,包括:
分别对所述第一句子和第二句子进行分词处理,得到第一分词列表和第二分词列表,所述第一分词列表中包括m个分词,所述第二分词列表中包括n个分词;
分别将所述第一分词列表和所述第二分词列表中的每个分词与预设的词向量模型进行匹配得到所述第一词向量列表和所述第二词向量列表。
8.根据权利要求7所述的方法,其特征在于,所述词向量模型是利用word2vec算法,对预先建立的语料库进行训练,得到所述语料库中所有词语的向量构成的词向量模型。
9.根据权利要求6所述的方法,其特征在于,根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对,包括:
根据词向量之间的余弦相似度计算方法,对所述第一句子中任一个分词的词向量和所述第二句子中任一个分词的词向量进行相似度计算,得到m乘以n个词向量对的相似度值;
在所述m乘以n个词向量对中,根据相似度值的大小构建至少一个词向量对。
10.一种句子相似度计算装置,其特征在于,包括:
获取模块,用于分别获取第一词向量列表和第二词向量列表,所述第一词向量列表中包括第一句子中m个分词的词向量,所述第二词向量列表中包括第二句子中n个分词的词向量,m、n为大于1的自然数;
构建模块,用于根据所述第一词向量列表中的至少一个分词的词向量,和所述第二词向量列表中的至少一个分词的词向量,构建至少一个词向量对;
确定模块,用于根据所述构建的至少一个词向量对的相似度值,确定所述第一句子和所述第二句子的相似度;
其中,所述确定模块具体用于:对所述构建的至少一个词向量对根据相似度值从大到小进行排序;对排序后的至少一个词向量对的相似度值进行加权平均;
所述确定模块,还用于针对每个构建的词向量对,对其进行加权平均过程中时使用的权重为该词向量对的两个分词中剩余权重的偏小值,所述剩余权重是指每个分词的初始权重减去加权平均计算过程中已经用掉的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813321.7A CN109492213B (zh) | 2017-09-11 | 2017-09-11 | 句子相似度计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813321.7A CN109492213B (zh) | 2017-09-11 | 2017-09-11 | 句子相似度计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109492213A CN109492213A (zh) | 2019-03-19 |
CN109492213B true CN109492213B (zh) | 2023-04-07 |
Family
ID=65687685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710813321.7A Active CN109492213B (zh) | 2017-09-11 | 2017-09-11 | 句子相似度计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109492213B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109977410A (zh) * | 2019-03-28 | 2019-07-05 | 杭州电子科技大学 | 一种基于pca算法的中文主观题自动评分方法 |
CN111259113B (zh) * | 2020-01-15 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 文本匹配方法、装置、计算机可读存储介质和计算机设备 |
CN112749540B (zh) * | 2020-02-06 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 文本匹配方法、文本匹配模型的训练方法及装置、设备 |
CN111753057A (zh) * | 2020-06-28 | 2020-10-09 | 青岛科技大学 | 一种提升句子相似度准确率判断的方法 |
CN111898375B (zh) * | 2020-07-30 | 2023-12-29 | 混沌时代(北京)教育科技有限公司 | 一种基于词向量句子链的文章论点论据自动检测划分方法 |
CN112016306B (zh) * | 2020-08-28 | 2023-10-20 | 重庆邂智科技有限公司 | 基于词性对齐的文本相似度计算方法 |
CN112364947B (zh) * | 2021-01-14 | 2021-06-29 | 北京育学园健康管理中心有限公司 | 一种文本相似度计算方法和装置 |
CN113392630A (zh) * | 2021-07-01 | 2021-09-14 | 浙江工业大学 | 一种基于语义分析的中文句子相似度计算方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095204A (zh) * | 2014-04-17 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 同义词的获取方法及装置 |
US9454524B1 (en) * | 2015-12-04 | 2016-09-27 | Adobe Systems Incorporated | Determining quality of a summary of multimedia content |
CN106815179A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种文本相似度确定方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013172500A1 (ko) * | 2012-05-17 | 2013-11-21 | 한국과학기술정보연구원 | 패러프레이즈 식별 기반 문장 유사도 판단 장치 및 그 방법 |
CN104750687B (zh) * | 2013-12-25 | 2018-03-20 | 株式会社东芝 | 改进双语语料库的方法及装置、机器翻译方法及装置 |
CN105183714A (zh) * | 2015-08-27 | 2015-12-23 | 北京时代焦点国际教育咨询有限责任公司 | 句子相似度计算方法及装置 |
CN106021223B (zh) * | 2016-05-09 | 2020-06-23 | Tcl科技集团股份有限公司 | 一种句子相似度的计算方法及系统 |
-
2017
- 2017-09-11 CN CN201710813321.7A patent/CN109492213B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095204A (zh) * | 2014-04-17 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 同义词的获取方法及装置 |
CN106815179A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种文本相似度确定方法及装置 |
US9454524B1 (en) * | 2015-12-04 | 2016-09-27 | Adobe Systems Incorporated | Determining quality of a summary of multimedia content |
Also Published As
Publication number | Publication date |
---|---|
CN109492213A (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109492213B (zh) | 句子相似度计算方法和装置 | |
CN108804641B (zh) | 一种文本相似度的计算方法、装置、设备和存储介质 | |
CN108073568B (zh) | 关键词提取方法和装置 | |
CN109815487B (zh) | 文本质检方法、电子装置、计算机设备及存储介质 | |
CN111539197B (zh) | 文本匹配方法和装置以及计算机系统和可读存储介质 | |
CN112347229A (zh) | 一种答案抽取方法、装置、计算机设备及存储介质 | |
CN104933158B (zh) | 数学问题求解模型的训练方法和装置、推理方法和装置 | |
CN113076734B (zh) | 一种项目文本的相似度检测方法及装置 | |
CN111340054A (zh) | 数据标注方法、装置及数据处理设备 | |
CN108268439B (zh) | 文本情感的处理方法及装置 | |
CN110032650B (zh) | 一种训练样本数据的生成方法、装置及电子设备 | |
US20200364216A1 (en) | Method, apparatus and storage medium for updating model parameter | |
CN113011689B (zh) | 软件开发工作量的评估方法、装置及计算设备 | |
CN111078832A (zh) | 一种智能客服的辅助应答方法及系统 | |
CN108052509A (zh) | 一种文本相似度计算方法、装置及服务器 | |
CN108153728B (zh) | 一种关键词确定方法及装置 | |
CN107797981B (zh) | 一种目标文本识别方法及装置 | |
CN114139537A (zh) | 词向量的生成方法及装置 | |
CN114995903A (zh) | 一种基于预训练语言模型的类别标签识别方法及装置 | |
JP2012146263A (ja) | 言語モデル学習装置、言語モデル学習方法、言語解析装置、及びプログラム | |
CN114021573A (zh) | 一种自然语言处理方法、装置、设备及可读存储介质 | |
CN107783958B (zh) | 一种目标语句识别方法及装置 | |
CN111813916A (zh) | 一种智能问答方法、装置、计算机设备和介质 | |
CN116644148A (zh) | 关键词识别方法、装置、电子设备及存储介质 | |
CN113988085B (zh) | 文本语义相似度匹配方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |