网站大量收购独家精品文档,联系QQ:2885784924

文本相似度的设计与实现要点.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文本相似度的设计与实现要点

文本相似度的设计与实现 摘要:本文主要设计并实现了一个文本相似度系统,该系统主要功能计算文档之间的相似度,通过使用向量空间模型(VSM, Vector Space Model)及余弦相似度计算公式计算文档之间的相似度,数据预处理过程中加入word2vec模型进行语义扩充,从而能够匹配到更多相关文档。 向量空间模型 向量空间模型(VSM, Vector Space Model)由Salton等人于20世纪70年代年提出[1,2]。向量空间模型的主要思想是将文本内容的处理简化为向量空间中的向量运算,这样将空间上的相似度转化为语义上的相似度。当文档被表示为文档空间的向量时,便可通过计算向量之间的相似性来度量文档间的相似性。文本处理中最常用的 HYPERLINK /view/3839126.htm \t _blank 相似性度量方式是余弦距离。 向量空间模型的基本思想: 给定一篇文档D=D(T1,T2,…Ti,…,Tn),若Ti在文档中既可以重复出现又存在先???次序,因此分析起来会较为困难。针对上述情况,暂不考虑Ti的顺序,并要求Ti互异,此时可将T1,T2,…Ti,…,Tn看作n维坐标,每一维对应相应值Wi,因此D(W1,W2,…,Wi,…,Wn)便可以看作一个n维向量。 例如:有一篇文档D={大家好,才是真的好},首先进行分词后转换为D={大家/好/才是/真的/好},之后提取出公因词D={大家,好,才是,真的},最后通过向量空间模型将文档转换为对应的向量D={1,2,1,1}。 向量空间模型只是将文档转换为方便计算的格式,若进行相似度计算,还需使用相似度计算公式进行计算。本文使用余弦相似度计算公式。 余弦相似度 余弦相似度计算公式广泛应用于文本数据之间的相似度计算过程中。其数学表达如下: 计算过程如下: 例如,有2个文档D1={大家好},D2={才是真的好},首先将D1、D2分词后,D1={大家/好},D2={才是/真的/好},其次提取出公因词D={大家,好,才是,真的},然后通过向量空间模型转换成向量表达,D1={1,1,0,0},D2={0,1,1,1},最后进行相似度计算 文本相似度系统 本文主要使用向量空间模型及余弦相似度距离公式进行文本相似度计算任务,系统的基本架构如下图1所示: 图1 系统架构 其基本思想为:将文档输入系统,对文档进行数据预处理操作,数据预处理完成后使用向量空间模型将词组转化为向量,之后使用余弦相似度计算公式求解文档之间的相似度,最终将计算后的结果展示出来。 数据预处理阶段,包括分词、取停用词、word2vec语义扩展,其流程如下图2所示: 图2 数据预处理 在word2vec语义扩展阶段,Word2vec是Google于2013年发布的一款基于深度学习的开源工具包,主要用于将单词以向量形式表示[3]。Word2vec首先使用语料训练模型,待模型训练结束后,将新的单词输入模型进行预测,模型可按相关度排序将最相近的预测单词展现给用户,通常而言,会将top30展示给用户。 针对文档语义扩充,系统会先使用搜狗新闻语料训练CBOW模型,待模型训练结束后,将本档中的单词输入CBOW模型进行预测,最终将预测结果扩充回文档中,用于向量空间模型。 同样以之前的2篇文档为例,D1={大家/好},D2={才是/真的/好},通过word2vec模型后,D1={大家/好/很好/不错},D2={才是/真的/好/很好/不错},提取出公因词D={大家,好,很好,不错,才是,真的},然后通过向量空间模型转换成向量表达,D1={1,1,1,1,0,0},D2={0,1,1,1,1,1},最后进行相似度计算 通过比较两次的Score值可得出,通过word2vec能够提高文本相似度的计算分值。 另外系统会计算文档中每一句话所对应的最大匹配及其相似度值,针对文档与文档的相似度计算,本文提出一种平均相似度计算公式,即: 其中n(dicList1)是所求文档中包含的句子个数,公式的主要思路即将每句话的最大匹配相似度叠加后求取平均值。 系统设计 相应代码如下: /** * 程序运行入口 * @throws IOException */ public static void main(String[] args) throws IOException { String dir,inputPath1,inputPath2,outputPath,word2vecModel,str1,str2; long start,end,dur; start = System.currentTimeMillis(); dir = data/test/; inputPath1 = dir + doc3.txt; input

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档