NLP基础 - 计算文本的相似度

  • 一、计算文本的相似度简介
  • 二、举例

一、计算文本的相似度简介

计算两个文本间的相似度在NLP领域中的应用非常广,包括:搜索引擎、问答系统、聊天机器人、文本分类等。

计算两个文本之间(我们用向量s1、s2来表示)的相似度有很多种方法,这里主要介绍两种方法**“欧式距离”和“余弦相似度”**。(这里假设向量s1 = (x1,x2,x3)、s2 = (y1,y2,y3))

欧式距离是指在N维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。“两个向量间”距离越小,相似度越大;距离越大,相似度越小。公式:


但是,欧氏距离有一个缺点,即“没有考虑向量的方向”;而余弦相似度“即考虑向量的方向,又考虑向量的大小”

余弦相似度是指在一个向量空间中,将两个向量夹角间的余弦值作为衡量两个个体之间差异的大小。“两个向量间”余弦值越接近1(夹角趋于0),相似度越大余弦值越接近于0(夹角趋于90度),相似度越小。公式:

二、举例

(注:这里的向量采用词频统计的方式)

词典为:[我们,又,去,爬山,今天,你们,昨天,跑步]

s1: “我们 今天 去 爬山” = [1,0,1,1,1,0,0,0]
s2: “你们 昨天 跑步” = [0,0,0,0,0,1,1,1]
s3: “你们 又 去 爬山 又 去 跑步” = [0,2,2,1,0,1,0,1]

  • 欧式距离计算:

  • 余弦相似度计算:

NLP基础 - 计算文本的相似度相关推荐

  1. 文本相似度php,分析php计算文本字符串相似度函数similar_text()的原理

    PHP有个计算两个文本字符串相似度的函数similar_text(),可以得出一个百分比来表示两个字符串的相似程度.效果如下: similar_text('aaaa', 'aaaa', $percen ...

  2. 文本比较算法Ⅲ——计算文本的相似度

    在"文本比较算法Ⅰ--LD算法"中,介绍了编辑距离的计算. 在"文本比较算法Ⅱ--Needleman/Wunsch算法"中,介绍了最长公共子串的计算. 在给定的 ...

  3. 从0到1,了解NLP中的文本相似度

    本文由云+社区发表 作者:netkiddy 导语 AI在2018年应该是互联网界最火的名词,没有之一.时间来到了9102年,也是项目相关,涉及到了一些AI写作相关的功能,为客户生成一些素材文章.但是, ...

  4. 从0到1,了解NLP中的文本相似度 1

    导语 AI在2018年应该是互联网界最火的名词,没有之一.时间来到了9102年,也是项目相关,涉及到了一些AI写作相关的功能,为客户生成一些素材文章.但是,AI并不一定最懂你,客户对于AI写出来的文章 ...

  5. Java实现余弦定理计算文本相似度

    相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大. 对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何 ...

  6. Java实现标题相似度计算,文本内容相似度匹配,Java通过SimHash计算标题文本内容相似度

     目录 一.前言 二.关于SimHash 补充知识 一).什么是海明距离 二).海明距离的应用 三).什么是编辑距离 三.SimHash算法的几何意义和原理 一).SimHash算法的几何意义 二). ...

  7. python汉明距离_simhash+汉明距离计算文本相似度

    ****由于最近需要做大规模的文本相似度的计算,所以用到了simhash+汉明距离来快速计算文本的相似度.** **simhash的原理如下图:其中的weight采用的是jieba的tf-idf的结果 ...

  8. 浅谈文本的相似度问题

    今天要研究的问题是如何计算两个文本的相似度.正如上篇文章描述,计算文本的相似度在工程中有着重要的应用, 比如文本去重,搜索引擎网页判重,论文的反抄袭,ACM竞赛中反作弊等等. 上篇文章介绍的SimHa ...

  9. NLP——计算文本相似度的常用算法

    文章目录 一.绪论 二.余弦相似度 2.1 余弦相似度定义 2.2 计算相似度步骤 2.3 举例 2.4 改进方式 2.5 代码 三.TF-IDF计算 3.1 TF.IDE.TF-IDF的计算方法 3 ...

最新文章

  1. 《小学生都能看懂的快速沃尔什变换从入门到升天教程》(FWT / FMT / FMI)(最最严谨清晰的证明!零基础也能得学会!)
  2. html android canvas兼容_快来!这里有5分钟看完马上学会的HTML基础大全
  3. Linux文本比较命令:diff
  4. 解决:TypeError: ‘(slice(None, None, None), 1)‘ is an invalid key
  5. 3-4:类与对象中篇——默认成员函数之拷贝构造函数
  6. Flutter中嵌入Android 原生TextView
  7. 系统什么时候会用到swap分区?
  8. 【★】百度网盘背后的真实策略!
  9. Spring4.x(7)---对象的生命周期方法
  10. 听歌识曲java_homework_3
  11. vue.config.js代理配置失效 如何解决
  12. 红帽linux进阶,Linux进阶第二天
  13. 工业照明节能减碳难?致远ZWS云平台有妙招
  14. 手机传感器数据导出_旧手机先别扔丨简单改造秒变黑科技监测器
  15. 购买域名不得不注意的事项
  16. mysql中引号的作用是什么_mysql单引号和双引号的用法
  17. Excel中COUNTIFS函数统计词频个数出现次数
  18. 小学五年级计算机教学工作总结,小学五年级信息技术教学工作总结
  19. itx机箱尺寸_鞋盒大小的ITX机箱初体验 | FORMULA X1装机展示
  20. python语言+selenium自动化,编写脚本调用Chrome、Firefox浏览器打开百度网站

热门文章

  1. 在Ubuntu上如何卸载nginx
  2. 基金从业资格考试必备考试内容,你了解多少?
  3. 【面试准备】游戏开发中的几个岗位分别做什么考察侧重点
  4. 1242 -- 绩点换算
  5. scrapy pipeline 管道 (图片,文件)
  6. 如何去掉windows10左下角的搜索栏
  7. oracle闪回空间使用率,oracle闪回区满了解决方案
  8. html 查看更多,如何展开输出显示以查看更多列?
  9. 信捷PLC通过EtherCat与松下伺服通讯时的断电重启时会产生巨大异响的Bug原因及解决办法
  10. 报错:ERROR org.springframework.boot.diagnostics.LoggingFailure和An attempt was made to call the method