一种句子相似度的计算方法及系统的制作方法

文档序号:10655074阅读:297来源:国知局
一种句子相似度的计算方法及系统的制作方法
【专利摘要】本发明提供了一种句子相似度的计算方法及系统,通过利用word2vec算法,对预先建立的语料库进行训练,得到语料库中所有词语的向量;对待计算相似度的两个句子进行智能分词,并从语料库中查找出所述第一句子和第二句子中各个分词所对应的向量,依次计算第一句子每个分词与第二句子各个分词之间的相似度;获取分词之间的相似度超过预定阈值的两组分词集合,并根据所述每组分词位于句子位置的偏移量,计算每组分词在整个句子中相似度的贡献值;将两个句子中分词的贡献值相加,得到句子之间的相似度。本发明所述方法及系统利用word2vec计算词语的语义相似度,通过大量语料库自动训练,为更为准确的进行信息检索、文档分类或者回答系统提供方便。
【专利说明】
-种句子相似度的计算方法及系统
技术领域
[0001] 本发明设及语言信息处理领域,尤其设及的是一种句子相似度的计算方法及系 统。
【背景技术】
[0002] 文本相似度计算在自然语言处理领域是一个重要部分,在信息检索,文档分类,问 答系统等有重要的作用。文本相似度根据文本长度又可W分为长文本(篇章级别),短文本 (语句级别,词语级别)相似度计算。长度不同的文本使得各种计算方法各有优劣。对于句子 级别的相似度,不仅要考虑到句子内各个词语的含义,还要考虑到词语组合的顺序,使得该 类研究比较复杂。
[0003] 传统计算句子相似度方法主要是将句子向量化,通过对每个词语在句子中的权 重,构成权重向量,进而计算向量之间的相似度。还有仅仅考虑句子文本的编辑距离 化evenshtein距离),该类计算方法没有考虑到词语的含义。从句法分析着手的方法,通过 发现句子中词语之间的语法关系来计算其相似度,该类方法考虑到词语的语义,也更能体 现句子的语义相似度,但是该类方法需要提前人工构建大量的语法训练库,工作量大。
[0004] 因此,现有技术有待于进一步的改进。

【发明内容】

[0005] 鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供一种句子相似度 的计算方法及系统,克服现有技术中句子相似度计算中工作量大或者相似度准确率低的缺 陷。
[0006] 本发明解决技术问题所采用的技术方案如下:
[0007] -种句子相似度的计算方法,其中,包括W下步骤:
[000引步骤A、利用word2vec算法,对预先建立的语料库进行训练,得到语料库中所有词 语的向量;
[0009] 步骤B、对待计算相似度的第一句子和第二句子进行智能分词,并从语料库中查找 出所述第一句子和第二句子中各个分词所对应的向量,依次计算第一句子中每个分词与第 二句子各个分词之间的相似度;
[0010] 步骤C、获取第一句子和第二句子中分词的相似度超过预定阔值的两组分词集合, 并根据所述每组分词位于句子位置的偏移量,计算每组分词在整个句子中相似度的贡献 值;
[0011] 步骤D、将第一句子和第二句子中分词的贡献值相加后取平均,得到所述第一句子 与第二句子之间的相似度。
[0012] 所述句子相似度的计算方法,其中,所述步骤A之前还包括:
[0013] AO、通过网络爬虫获取海量词语,组建语料库。
[0014] 所述句子相似度的检测方法,其特征在于,所述步骤D还包括:
[0015] Dl、获取第一句子中分词相当于第二句子中分词的第一相似度贡献值,W及第二 句子中分词相对于第一句子中分词的第二相似度贡献值;
[0016] D2、计算所述第一相似度贡献值和第二相似度贡献值所对应的第一相似度和第二 相似度,取所述第一相似度和第二相似度的平均值作为所述第一句子和第二句子最终的相 似度。
[0017] 所述句子相似度的计算方法,其中,所述步骤B还包括:
[0018] 通过W下公式计算分词之间的相似度:
[0019]
[0020] 其中,Vii和VW代表两个待计算相似度分词的向量,i和j表示所述两个待计算相似 度分词分别排列在第一句子第i位置和第二句子的第j位置,Sim(wordi,wor山)代表待计算 相似度分词的相似度。
[0021] 所述句子相似度的计算方法,其中,所述步骤C中相似度贡献值的计算公式为:
[0022]
[0023] 其中,Sim(WAi,WbO为第一句子和第二句子中任意两个分词Wm和WBk之间的相似度;
[0024] M(A,i,B) =化向111(胖41,胖8〇>〇},0<〇<1为第二句子中第1^位分词胖81<与第一句子 中第i位分词Wm相似度大于预设阔值的分词位置集合;
[00巧]
对第二句子B中序号在M(A,i,B) 的分词与第一句子A中分词Wm的偏移量;N为所述第一句子和第二句子中含有的分词数中较 大的分词数。
[0026] -种句子相似度的计算系统,其中,包括:
[0027] 语料库训练模块,用于利用word2vec算法,对预先建立的语料库进行训练,得到语 料库中所有词语的向量;
[0028] 词相似度计算模块,用于对待计算相似度的第一句子和第二句子进行智能分词, 并从语料库中查找出所述第一句子和第二句子中各个分词所对应的向量,依次计算第一句 子每个分词与第二句子各个分词之间的相似度;
[0029] 贡献值计算模块,用于获取第一句子和第二句子中分词的相似度超过预定阔值的 两组分词集合,并根据所述每组分词位于句子位置的偏移量,计算每组分词在整个句子中 相似度的贡献值;
[0030] 句间相似度计算模块,用于将第一句子和第二句子中分词的贡献值相加后取平 均,得到所述第一句子与第二句子之间的相似度。
[0031] 所述句子相似度的计算系统,其中,包括:
[0032] 语料库组建模块,用于通过网络爬虫获取海量词语,组建语料库。
[0033] 所述句子相似度的计算系统,其中,所述句间相似度计算模块还包括:
[0034] 贡献值获取单元,用于获取第一句子中分词相当于第二句子中分词的第一相似度 贡献值,W及第二句子中分词相对于第一句子中分词的第二相似度贡献值;
[0035] 相似度平均单元,用于计算所述第一相似度贡献值和第二相似度贡献值所对应的 第一相似度和第二相似度,取所述第一相似度和第二相似度的平均值作为所述第一句子和 第二句子最终的相似度。
[0036] 所述句子相似度的计算系统,其中,所述贡献值计算模块,用于通过W下公式计算 分词之间的相似度:
[0037]
[0038] 其中,Vii和VW代表两个待计算相似度分词的向量,i和j表示所述两个待计算相似 度分词分别排列在第一句子第i位置和第二句子的第j位置,Sim(wordi,wor山)代表待计算 相似度分词的相似度。
[0039] 所述句子相似度的计算系统,其中,所述句间相似度计算模块中相似度贡献值得 计算公式为:
[0040]
[004"1]其中,Sim(WAi, WbO为第一句子和第二句子中任意两个分词WAi和WBk之间的相似度; [00创 1(44,8)=化向111(胖41,胖80>0},0<0<1为第二句子中第1^位分词胖81<与第一句子 中第i位分词Wm相似度大于预设阔值的分词位置集合;
[0043]
为第二句子B中序号在M(A,i,B) 的分词与第一句子A中分词Wm的偏移量;N为所述第一句子和第二句子中含有的分词数中较 大的分词数。
[0044] 有益效果,本发明提供了一种句子相似度的计算方法及系统,通过利用word2vec 算法,对预先建立的语料库进行训练,得到语料库中所有词语的向量;对待计算相似度的第 一句子和第二句子进行智能分词,并从语料库中查找出所述第一句子和第二句子中各个分 词所对应的向量,依次计算第一句子每个分词与第二句子各个分词之间的相似度;获取分 词之间的相似度超过预定阔值的两组分词集合,并根据所述每组分词位于句子位置的偏移 量,计算每组分词在整个句子中相似度的贡献值;将第一句子和第二句子中分词的贡献值 相加,得到第一句子和第二句子之间的相似度。本发明所述方法及系统利用word2vec计算 词语的语义相似度,较少的人工干预,通过大量语料库自动训练,为更为准确的进行信息检 索、文档分类或者回答系统提供方便。
【附图说明】
[0045] 图1是本发明的一种句子相似度的计算方法步骤流程图。
[0046] 图2是本发明的一种句子相似度的计算系统的原理结构框图。
【具体实施方式】
[0047] 为使本发明的目的、技术方案及优点更加清楚、明确,W下参照附图并举实施例对 本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用 于限定本发明。
[004引本发明提供了 一种句子相似度的计算方法,如图1所示,所述方法包括:
[00例 S1、利用word2vec算法,对预先建立的语料库进行训练,得到语料库中所有词语的 向量。
[(K)加]语料库训练
[0051 ] word2vec训练获取词语的向量,训练的语料库越大所获取的词向量也越准确;该 步骤的语料库获取可W通过网上爬取相关新闻资讯等作为训练语料库。
[0052] 可W想到的是,本领域技术人员可W根据需要,在设置专用某一个技术领域的语 料库,只通过获取训练包含某一个或者多个领域可能会使用的词语的语料库,来提高训练 的效率和提高匹配词语向量的准确度,实现更好的计算句子之间的相似度。
[0053] S2、对待计算相似度的第一句子和第二句子进行智能分词,并从语料库中查找出 所述第一句子和第二句子中各个分词所对应的向量,依次计算第一句子每个分词与第二句 子各个分词之间的相似度。
[0054] 通过训练得到的结果格式: 「nnc;c;1
[0056] L为每个词向量的长度。
[0057] 通过上述训练结果,定义词与词之间的相似度如下:
[0化引
Cl)
[0059] 其中,Vii和VW代表两个待计算相似度分词的向量,i和j表示所述两个待计算相似 度分词分别排列在第一句子第i位置和第二句子的第j位置,Sim(wordi,wor山)代表待计算 相似度分词的相似度。
[0060] 分别将第一句子和第二句子中含有的词进行一一智能划分出,并从上述步骤Sl中 训练好的语料库中一一获取划分出的分词相对应的向量,并使用上式(1)计算两个句子之 间每个分词之间的相似度。
[0061] S3、获取第一句子和第二句子中分词的相似度超过预定阔值的两组分词集合,并 根据所述每组分词位于句子位置的偏移量,计算每组分词在整个句子中相似度的贡献值。
[0062] 分别计算第一句子中每个分词与第二句子中各个分词之间的相似度,获取相似度 超过预定阔值的两组分词集合,所述预定阔值可W根据需要自定义设置,也可W系统默认 设置,较佳的,所述预定阔值可W设置为:70%-85%之间的任何值,优选的,可W设置为 75%。
[0063] 具体的,本步骤中相似度贡献值得计算公式为:
[0064] ,?
[0065] 其中,Sim(WAi,WbO为第一句子和第二句子中任意两个分词Wm和化k之间的相似度; M(A,i,B)=化I Sim(WAi,WBk) >a},0<〇< 1为第二句子中第k位分词WBk与第一句子中第i位 分词Wm相似度大于预设阔值的分词位置集合;
[0066]
%第二句子B中序号在M(A,i,B) 的分词与第一句子A中分词Wm的偏移量;N为所述第一句子和第二句子中含有的分词数中较 大的分词数。
[0067] 本步骤中,首先获取相似度超过预定阔值的两组分词集合,然后根据所述两组分 词集合中两组分词各个在句子中位置的偏移量计算该分词为该句子贡献的相似度分量,最 后再将运个句子中分词贡献的相似度分量进行相加后,得到运个句子相对于另一个句子的 相似度。
[006引具体的,首先记{Wai,. . .,Wm} IWbi, . . .,WBn}分别为句子A,B句子分词后的按先后顺 序排列的词语,记第一句子A,第二句子B任意两个分词的相似度记为Sim(WAi,WBk);
[0069] M(A,i,B) = {k|Sim(WAi,WBk)>a},0<a<l, (2)
[0070] M(A,i,B)为句子B中分词WBk与句子A中第i个词语WAi相似度大于a的词语位置集 合。
[0071 ] 并且记B中序号在M(A, i ,B)中的分词与A中分词WAi的偏移量为:
[0075] 其中,C(A,i,B)为第一句子A中分词Al为句子A相对于第二句子B总体相似度的贡
[0072] )
[0073]
[0074] W 献值,其中N=max(m,n),为第一句子和第二句子中划分出的分词数较大的一个。
[0076] S4、将第一句子和第二句子中分词的贡献值相加后取平均,得到所述第一句子与 第二句子之间的相似度。
[0077] 在上述步骤S3中计算出了第一句子或者第二句子中分词为所属句子提供的相似 度贡献值,则将每个分词所提供的相似度贡献值相加,得到句子与句子之间的相似度值。 [007引因此,定义:
[0079]
(5)
[0080] 为句子A相对于句子B的相似度,它表征A相对于B的相似程度,用同样的方法计算 得到Sim(B,A),它表征B相对于A的相似程度。一般情况下,Sim(A,B)声Sim(B,A),最后定义 句子A,B的总体相似度为:
[0081 ]
(6)
[0082] 也即是,为了更准确的得到第一句子和第二句子的相似度,本步骤取两个句子相 对应相似度的平均值。
[0083] 为了实现更好的组建语料库,所述步骤Sl之前还包括:
[0084] SO、通过网络爬虫获取海量词语,组建语料库。由于网络上含有海量词语,而且还 是实时更新,因此从网络中可W获取较多较新的词语信息,为准确的查找出待计算相似度 句子中分词的向量提供技术支持。
[0085] 所述步骤S4还包括:
[0086] S41、获取第一句子中分词相当于第二句子中分词的第一相似度贡献值,W及第二 句子中分词相对于第一句子中分词的第二相似度贡献值。
[0087] S42、计算所述第一相似度贡献值和第二相似度贡献值所对应的第一相似度和第 二相似度,取所述第一相似度和第二相似度的平均值作为所述第一句子和第二句子最终的 相似度。
[0088] 由于第一句子中分词相对于第二句子中分词在计算相似度贡献值时,排列的顺序 不同,其相似度贡献值可能不同,因此为了更加准确的获取第一句子与第二句子的相似度, 本步骤中分别计算第一句子相对于第二句子的相似度和第二句子相对于第一句子的相似 度,并取两者的平均值作为第一句子和第二句子的最终相似度。
[0089] 下面W网络商品评价相似度计算为例,对本发明所述方法及系统做进一步的说 明。
[0090] 计算评价A:"送货员也很赞",B:"快递服务很给力"的相似度。
[0091] 分词后分别为:A("送货员","也","很","赞"),B("快递","服务","很","给力"), 通过网上爬取获得相关评价语料库,通过word2vec训练,获得词语间相似度如下。
[0092]
[0093]
[0094]
[OOM]通过公式(4)可W计算得到贡献值矩阵为:
[0096]
[0097] 同理可计算得到:
[00981
[0104] 在上述方法的基础上,本发明还提供了一种句子相似度的计算系统,如图2所示, 所述系统包括:
[0105] 语料库训练模块100,用于利用word2vec算法,对预先建立的语料库进行训练,得 到语料库中所有词语的向量;其功能如步骤Sl所述。
[0106] 词相似度计算模块200,用于对待计算相似度的第一句子和第二句子进行智能分 词,并从语料库中查找出所述第一句子和第二句子中各个分词所对应的向量,依次计算第 一句子每个分词与第二句子各个分词之间的相似度;其功能如步骤S2所述。
[0107] 贡献值计算模块300,用于获取第一句子和第二句子中分词的相似度超过预定阔 值的两组分词集合,并根据所述每组分词位于句子位置的偏移量,计算每组分词在整个句 子中相似度的贡献值;其功能如步骤S3所述。
[0108] 句间相似度计算模块400,用于将第一句子和第二句子中分词的贡献值相加后取 平均,得到所述第一句子与第二句子之间的相似度,其功能如步骤S4所述。
[0109] 所述句子相似度的计算系统,还包括:
[0110] 语料库组建模块,用于通过网络爬虫获取海量词语,组建语料库。
[0111] 所述句间相似度计算模块还包括:
[0112] 贡献值获取单元,用于获取第一句子中分词相当于第二句子中分词的第一相似度 贡献值,W及第二句子中分词相对于第一句子中分词的第二相似度贡献值;
[0113] 相似度平均单元,用于计算所述第一相似度贡献值和第二相似度贡献值所对应的 第一相似度和第二相似度,取所述第一相似度和第二相似度的平均值作为所述第一句子和 第二句子最终的相似度。
[0114] 所述贡献值计算模块,用于通过W下公式计算分词之间的相似度:
[0115]
[0116] 其中,Vii和VW代表两个待计算相似度分词的向量,i和j表示所述两个待计算相似 度分词分别排列在第一句子第i位置和第二句子的第j位置,Sim(wordi,wor山)代表待计算 相似度分词的相似度。
[0117] 所述句间相似度计算模块中相似度贡献值得计算公式为:
[011 引
[0119] 其中,Sim(WAi,WbO为第一句子和第二句子中任意两个分词Wm和WBk之间的相似度;
[0120] M(A,i,B) =化向111(胖41,胖8〇>〇},0<〇<1为第二句子中第1^位分词胖81<与第一句子 中第i位分词Wm相似度大于预设阔值的分词位置集合;
[0121]
为第二句子B中序号在M(A,i,B) 的分词与第一句子A中分词Wm的偏移量;N为所述第一句子和第二句子中含有的分词数中较 大的分词数。
[0122] 有益效果,本发明提供了一种句子相似度的计算方法及系统,通过利用word2vec 算法,对预先建立的语料库进行训练,得到语料库中所有词语的向量;对待计算相似度的第 一句子和第二句子进行智能分词,并从语料库中查找出所述第一句子和第二句子中各个分 词所对应的向量,依次计算第一句子每个分词与第二句子各个分词之间的相似度;获取分 词之间的相似度超过预定阔值的两组分词集合,并根据所述每组分词位于句子位置的偏移 量,计算每组分词在整个句子中相似度的贡献值;将第一句子和第二句子中分词的贡献值 相加,得到第一句子和第二句子之间的相似度。本发明所述方法及系统利用word2vec计算 词语的语义相似度,较少的人工干预,通过大量语料库自动训练,为更为准确的进行信息检 索、文档分类或者回答系统提供方便。
[0123] 可W理解的是,对本领域普通技术人员来说,可W根据本发明的技术方案及其发 明构思加 W等同替换或改变,而所有运些改变或替换都应属于本发明所附的权利要求的保 护范围。
【主权项】
1. 一种句子相似度的计算方法,其特征在于,包括以下步骤: 步骤A、利用W〇rd2vec算法,对预先建立的语料库进行训练,得到语料库中所有词语的 向量; 步骤B、对待计算相似度的第一句子和第二句子进行智能分词,并从语料库中查找出所 述第一句子和第二句子中各个分词所对应的向量,依次计算第一句子中每个分词与第二句 子各个分词之间的相似度; 步骤C、获取第一句子和第二句子中分词的相似度超过预定阈值的两组分词集合,并根 据所述每组分词位于句子位置的偏移量,计算每组分词在整个句子中相似度的贡献值; 步骤D、将第一句子和第二句子中分词的贡献值相加后取平均,得到所述第一句子与第 二句子之间的相似度。2. 根据权利要求1所述句子相似度的计算方法,其特征在于,所述步骤A之前还包括: AO、通过网络爬虫获取海量词语,组建语料库。3. 根据权利要求1所述句子相似度的检测方法,其特征在于,所述步骤D还包括: D1、获取第一句子中分词相当于第二句子中分词的第一相似度贡献值,以及第二句子 中分词相对于第一句子中分词的第二相似度贡献值; D2、计算所述第一相似度贡献值和第二相似度贡献值所对应的第一相似度和第二相似 度,取所述第一相似度和第二相似度的平均值作为所述第一句子和第二句子最终的相似 度。4. 根据权利要求1所述句子相似度的计算方法,其特征在于,所述步骤B还包括: 通过以下公式计算分词之间的相似度:其中,Vii和Vji代表两个待计算相似度分词的向量,i和j表示所述两个待计算相似度分 词分别排列在第一句子第i位置和第二句子的第j位置,Sim(wordi,wordj)代表待计算相似 度分词的相似度。5. 根据权利要求1所述句子相似度的计算方法,其特征在于,所述步骤C中相似度贡献 值的计算公式为:其中,Sim(WAi,WbiO为第一句子和第二句子中任意两个分词A和B之间的相似度; 1(八4,8)=仏|3址(^^,恥1〇>€1},0<€[<1为第二句子中分词与第一句子中第1位分词 Wm相似度大于预设阈值的分词位置集合;为第二句子B中序号在M(A,i,B)的分 词与第一句子A中分词Wm的偏移量;N为所述第一句子和第二句子中含有的分词数中较大的 分词数。6. -种句子相似度的计算系统,其特征在于,包括: 语料库训练模块,用于利用w〇rd2vec算法,对预先建立的语料库进行训练,得到语料库 中所有词语的向量; 词相似度计算模块,用于对待计算相似度的第一句子和第二句子进行智能分词,并从 语料库中查找出所述第一句子和第二句子中各个分词所对应的向量,依次计算第一句子每 个分词与第二句子各个分词之间的相似度; 贡献值计算模块,用于获取第一句子和第二句子中分词的相似度超过预定阈值的两组 分词集合,并根据所述每组分词位于句子位置的偏移量,计算每组分词在整个句子中相似 度的贡献值; 句间相似度计算模块,用于将第一句子和第二句子中分词的贡献值相加后取平均,得 到所述第一句子与第二句子之间的相似度。7. 根据权利要求6所述句子相似度的计算系统,其特征在于,所述计算系统还包括: 语料库组建模块,用于通过网络爬虫获取海量词语,组建语料库。8. 根据权利要求6所述句子相似度的计算系统,其特征在于,所述句间相似度计算模块 还包括: 贡献值获取单元,用于获取第一句子中分词相当于第二句子中分词的第一相似度贡献 值,以及第二句子中分词相对于第一句子中分词的第二相似度贡献值; 相似度平均单元,用于计算所述第一相似度贡献值和第二相似度贡献值所对应的第一 相似度和第二相似度,取所述第一相似度和第二相似度的平均值作为所述第一句子和第二 句子最终的相似度。9. 根据权利要求6所述句子相似度的计算系统,其特征在于,所述贡献值计算模块,通 过以下公式计算分词之间的相似度:其中,Vii和Vji代表两个待计算相似度分词的向量,i和j表示所述两个待计算相似度分 词分别排列在第一句子第i位置和第二句子的第j位置,Sim(wordi,wordj)代表待计算相似 度分词的相似度。10. 根据权利要求6所述句子相似度的计算系统,其特征在于,所述句间相似度计算模 块中相似度贡献值得计算公式为:其中,Sim(WAi,WbiO为第一句子和第二句子中任意两个分词A和B之间的相似度; 1(八4,8)=仏|3址(^^,恥1〇>€1},0<€[<1为第二句子中分词与第一句子中第1位分词 Wm相似度大于预设阈值的分词位置集合;J第二句子B中序号在M(A,i,B)的分 词与第一句子A中分词Wm的偏移量;N为所述第一句子和第二句子中含有的分词数中较大的 分词数。
【文档编号】G06F17/27GK106021223SQ201610305004
【公开日】2016年10月12日
【申请日】2016年5月9日
【发明人】吴成龙
【申请人】Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1