余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。

我们知道,对于两个向量,如果他们之间的夹角越小,那么我们认为这两个向量是越相似的。余弦相似性就是利用了这个理论思想。它通过计算两个向量的夹角的余弦值来衡量向量之间的相似度值。余弦相似性推导公式如下:

【下面举一个例子,来说明余弦计算文本相似度】

举一个例子来说明,用上述理论计算文本的相似性。为了简单起见,先从句子着手。

句子A:这只皮靴号码大了。那只号码合适

句子B:这只皮靴号码不小,那只更合适

怎样计算上面两句话的相似程度?

基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。因此,可以从词频入手,计算它们的相似程度。

第一步,分词。

句子A:这只/皮靴/号码/大了。那只/号码/合适。

句子B:这只/皮靴/号码/不/小,那只/更/合适。

第二步,列出所有的词。

这只,皮靴,号码,大了。那只,合适,不,小,很

第三步,计算词频。

句子A:这只1,皮靴1,号码2,大了1。那只1,合适1,不0,小0,更0

句子B:这只1,皮靴1,号码1,大了0。那只1,合适1,不1,小1,更1

第四步,写出词频向量。

句子A:(1,1,2,1,1,1,0,0,0)

句子B:(1,1,1,0,1,1,1,1,1)

到这里,问题就变成了如何计算这两个向量的相似程度。我们可以把它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合,这是表示两个向量代表的文本完全相等;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

使用上面的公式(4)

计算两个句子向量

句子A:(1,1,2,1,1,1,0,0,0)

和句子B:(1,1,1,0,1,1,1,1,1)的向量余弦值来确定两个句子的相似度。

计算过程如下:

计算结果中夹角的余弦值为0.81非常接近于1,所以,上面的句子A和句子B是基本相似的。

java余弦相似度算法_余弦相似度计算相关推荐

  1. 标题相似度算法_一个简单的计算文章相似度功能!

    在做文章系统的时候,很多时候需要为这篇文章推荐最相近的文章. 解决思路是:给文章设定关键词然后模糊查询进行匹配.找到包含这个关键词的标题,然后给显示出来,作为最接近的文章. 但是有问题:这样的文章,排 ...

  2. 【推荐系统->相似度算法】余弦相似度

    转自相似度算法之余弦相似度 余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量. 余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫&qu ...

  3. 图片对比相似度算法标准,图片相似度匹配算法

    怎么对比两张图片的相似度 1.首先打开微信,选择底部"发现".如图所示.2.然后在点击进入"小程序".如图所示.3.然后输入"腾讯AI体验中心&quo ...

  4. 海量图片相似度算法软件,海量数据相似度匹配

    计算图像相似度的算法有哪些 SIM=StructuralSIMilarity(结构相似性),这是一种用来评测图像质量的一种方法. 由于人类视觉很容易从图像中抽取出结构信息,因此计算两幅图像结构信息的相 ...

  5. python中文相似度_基于TF-IDF、余弦相似度算法实现文本相似度算法的Python应用

    基于TF-IDF算法.余弦相似度算法实现相似文本推荐--文本相似度算法,主要应用于文本聚类.相似文本推荐等场景. 设计说明 使用jieba切词,设置自定义字典 使用TF-IDF算法,找出文章的关键词: ...

  6. 相似度算法之余弦相似度

    转自:http://blog.csdn.net/u012160689/article/details/15341303 余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间 ...

  7. 文本相识度算法(余弦相似性、简单共有词、编辑距离、SimHash、汉明距离、Jaccard相似性系数、欧几里得距离、曼哈顿距离 )

    文本相似度计算在信息检索.数据挖掘.机器翻译.文档复制检测等领域有着广泛的应用. 比如舆论控制,我们假设你开发了一个微博网站,并且已经把世界上骂人的句子都已经收录进了数据库,那么当一个用户发微博时会先 ...

  8. mysql数据相似度算法_相似度计算方法

    相似度就是比较两个事物的相似性.一般通过计算事物的特征之间的距离,如果距离小,那么相似度大:如果距离大,那么相似度小. 问题定义:有两个对象X,Y,都包含N维特征,X=(x1,x2,x3,...,xn ...

  9. 标题相似度算法_相似度计算方法

    相似度就是比较两个事物的相似性.一般通过计算事物的特征之间的距离,如果距离小,那么相似度大:如果距离大,那么相似度小. 问题定义:有两个对象X,Y,都包含N维特征,X=(x1,x2,x3,...,xn ...

最新文章

  1. python数据写入CSV
  2. 如何理解路由中的IP选路,修改,ICMP重定向差错?—Vecloud微云
  3. ctrl+Enter 自动加上 .com 而不是 .com.cn
  4. find_in_set()和in()比较
  5. jquery获取浏览器版本号_前端为什么弃用jQuery?有这六个原因
  6. 来首都初次就医的感受
  7. m.2接口和nvme区别_透明款散热不好,那么ORICO 全铝NVMe固态硬盘盒了解一下?
  8. Blazor 事件处理开发指南
  9. 突发!Python再次第一,Java和C下降,凭什么? ​
  10. java token redis生成算法_如何访问 Redis 中的海量数据,服务才不会挂掉?
  11. idea2020.2中@test是怎么测试的_Sklearn 划分训练集和测试集
  12. JAVA——JVM参数设置规则以及参数含义
  13. 14万程序员挑战过的算法趣题
  14. IDEA+Java控制台实现教材管理系统
  15. 列线图、nomogram到底是什么东西?如何实施?如何解读?
  16. stata陈强:计量经济学及stata应用_陈强 第五章 多元线性回归
  17. 什么是robots.txt文件
  18. win7系统下,手机投屏到电脑
  19. 原生JS实现移动端弹幕(虎牙,斗鱼简易版)
  20. 使用telnet命令检测端口是否正常报错“telnet: connect to address 192.168.88.132: Connection refused“

热门文章

  1. 计算机应用基础个人教学计划,《计算机应用基础》教学计划
  2. These critical programs are missing or too old: make compiler
  3. nRF52832 mesh环境搭建及配置【附下载连接】
  4. 前端开发中遇到的问题及解决方法
  5. java报错出现未知源,java.io.FileInputStream.(未知来源)
  6. 废止173项国家建筑标准设计
  7. 思讯服装之星V8盘点机条码数据采集器无线条码扫描枪智能终端PDA-汉码盘点机无缝对接
  8. 第1章使用神经网络识别手写数字
  9. 漫谈互联网历史【9】- 90年代:互联网时代的来临
  10. 专家推荐Java期末作业——王者荣耀的洛克王国版游戏