余弦计算相似度度量

news2024/2/27 15:21:32

目录

pytorch 余弦相似度,

余弦计算相似度度量


pytorch 余弦相似度,

余弦相似度1到-1之间,1代表正相关,0代表不相关,-1代表负相关

def l2_norm(input, axis=1):
    norm = torch.norm(input, 2, axis, True)
    output = torch.div(input, norm)
    return output


if __name__ == '__main__':
    aaa = torch.tensor([-2, -1])
    bbb = torch.tensor([2, 1])

    simillar_v = torch.matmul(aaa, bbb)

    cosine_simi = torch.cosine_similarity(aaa.unsqueeze(0).float(), bbb.unsqueeze(0).float())

    print(cosine_simi)

余弦计算相似度度量

http://blog.csdn.net/u012160689/article/details/15341303

余弦计算相似度度量

相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。

对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。下面介绍一个详细成熟的向量空间余弦相似度方法计算相似度

向量空间余弦相似度(Cosine Similarity)

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

上图两个向量a,b的夹角很小可以说a向量和b向量有很高的的相似性,极端情况下,a和b向量完全重合。如下图:

如上图二:可以认为a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或者说是相等的。如果a和b向量夹角较大,或者反方向。如下图

如上图三: 两个向量a,b的夹角很大可以说a向量和b向量有很底的的相似性,或者说a和b向量代表的文本基本不相似。那么是否可以用两个向量的夹角大小的函数值来计算个体的相似度呢?

向量空间余弦相似度理论就是基于上述来计算个体相似度的一种方法。下面做详细的推理过程分析。

想到余弦公式,最基本计算方法就是初中的最简单的计算公式,计算夹角

图(4)

的余弦定值公式为:

但是这个是只适用于直角三角形的,而在非直角三角形中,余弦定理的公式是

图(5)

三角形中边a和b的夹角 的余弦计算公式为:

公式(2)

在向量表示的三角形中,假设a向量是(x1, y1),b向量是(x2, y2),那么可以将余弦定理改写成下面的形式:

图(6)

向量a和向量b的夹角 的余弦计算如下

扩展,如果向量a和b不是二维而是n维,上述余弦的计算法仍然正确。假定a和b是两个n维向量,a是  ,b是  ,则a与b的夹角 的余弦等于:

余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,夹角等于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是基本相似的

由此,我们就得到了文本相似度计算的处理流程是:

    (1)找出两篇文章的关键词;

 (2)每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合中的词的词频

 (3)生成两篇文章各自的词频向量;

 (4)计算两个向量的余弦相似度,值越大就表示越相似。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.cn/news/show-326060.html

如若内容造成侵权/违法违规/事实不符,请联系七分地网进行投诉反馈,一经查实,立即删除!

相关文章

程序员表白简短html代码,【杂谈】2018浪漫七夕:7款程序员必备表白源码(超炫酷)...

2018七夕将要来临,ki4网给大家准备了七款程序员表白专用源码,让你可以一举俘获美人心,下面就来看一看这七款表白代码大全,包含html、html5、CSS、JQ编写的一些非常简单实用的表白代码,非常炫酷、浪漫!1、CS…

哪种css实现方式优势更突出_【第十三课】更合理的CSS结构

前言从零开始学前端系列课程,与传统的视频大课堂教学不同,没有填鸭;也普通做练习题的方式不同,没有假想的模拟题。 本课程拆出80个左右必须掌握的技能点,并对其分组,从易到难地列出学习曲线。同时从真实项目…

TF-IDF与余弦相似性的应用

原文:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html TF-IDF与余弦相似性的应用(一):自动提取关键词 这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题。 有一篇很长的文章,我要用计算机提取…

webloigc12服务启动不了_一键启动知多少!

一键启动(自动挡车型)相比对手动挡的钥匙启动高大上不会出现膝盖被钥匙磕到的情况也不会出现钥匙孔边上有划痕的现象但是一键启动开关启动的顺序是什么?是长按至启动还是通电后再启动?一键启动常见问题答疑■ 问:一键启动车辆是如何启动的&a…

机器学习算法之决策树

原文:http://www.jianshu.com/p/6eecdeee5012 决策树是一种简单高效并且具有强解释性的模型,广泛应用于数据分析领域。其本质是一颗由多个判断节点组成的树,如: 决策树在使用模型进行预测时,根据输入参数依次在各个判断…

组件三层_Angular 练级之旅(8)-Zorro Select组件的实现和进阶

很久没写相关的文章,正好前两天把抄来的Select组件重写了一下,简化了一些逻辑。先看下zorro 中select组件的一个目录结构zorro将select组件分成了 三大块Input / 选择框下拉列表连接以上2层的控制器层先看 我们使用的 nz-select 内部的模板到底是什么样的…

目标检测 RCNN算法详解

原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 【目标检测】RCNN算法详解 Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on comput…

燕赵志愿云如何认证_如何获得云安全专家CCSP认证

关注↑↑↑我们获得更多精彩内容!千呼万唤始出来,云安全专家CCSP认证正式上线,全文皆重点,请仔细查看。CCSP云安全专家认证是什么?两家国际顶尖的安全组织,云安全联盟Cloud Security Alliance与 (ISC),在20…

替代方法_ASD干预:替代行为的正确使用方法和注意事项

在我们的日常干预中,孤独症的儿童的行为问题一直是我们干预的一个重点,和普通的儿童不一样,自闭症孩子由于其认知和社交方面的障碍,都会采取很多的"不恰当行为"来表达自己的不满和需求,比如尖叫,…

长沙医学院计算机系怎么样,长沙医学院有哪些专业及什么专业好

本文讲述了长沙医学院最新的专业介绍,主要包含长沙医学院有哪些专业及每个专业的收费标准、长沙医学院都有什么专业比较好等,更多信息请访问大学高考。本文目录:长沙医学院什么专业好长沙医学院比较好的专业有:临床医学、中医学、…

goahead如何使用cgi服务_北斗导航系统现已提供全球服务!你知道如何使用这个服务吗?...

在11月份的时候,我国传来了一个好消息,北斗导航全球组网成功!这意味着我国23年的努力没有白费,取得了圆满的成功。此项研究成果也迅速让中国的国际地位提高,很多国家都想和我们谈生意,一起参加北斗导航系统…

fullcalendar 显示的时间间隔只有四十五分钟_Linux命令行监控程序,还能实时高亮显示差异,我就选它了...

引言watch用于定期运行任意命令,并在终端窗口上显示该命令的输出。当你必须重复执行命令并观察命令输出随时间变化时,它非常有用。例如,可以使用watch命令来监视系统正常运行时间或磁盘使用情况。watch程序是procps(或procps-ng)软件包的一部…

计算机快速看图教程,CAD快速看图使用电脑版软件操作教程

下面给大家介绍一个非常好用的操作方法,能够解决大家在CAD快速看图、编辑与修改、格式转换、版本转换等问题。拿到图纸都能够打开浏览,转换成可以转换的文件格式,发送给客户都可以。1我们可以上网搜索,CAD快速看图或CAD编辑器&…

计算机考试不用输入扩展名吗,本周末的 计算机等级考试,如果不想考0分,一定要花2分钟看完...

原标题:本周末的 计算机等级考试,如果不想考0分,一定要花2分钟看完嗨喽~下午好!我是超甜的小虎泰戈尔的爱情诗《世上最远的距离》里有一段“世上最远的距离不是生与死的距离,而是我站在你面前你不知道我爱你。”现在对…

win7计算机睡眠怎么设置方法,win7系统更改(设置)计算机睡眠时间的操作方法...

很多小伙伴都遇到过对win7系统更改(设置)计算机睡眠时间进行设置的困惑吧,一些朋友看过网上对win7系统更改(设置)计算机睡眠时间设置的零散处理方法,并没有完完全全明白win7系统更改(设置)计算机睡眠时间是如何设置的,今天小编准备了简单的操…

删除表格数据后自动刷新_Calliope: 表格数据的自动故事生成系统

视觉数据故事以叙事可视化的形式呈现,如海报或数据视频,通常用于面向数据的故事讲述中,以促进对故事内容的理解和记忆。虽然有用,但技术障碍(如数据分析、可视化和脚本)使可视化数据故事的生成变得困难。现有的创作工具依赖于用户…

乌鲁木齐计算机老师待遇,如果月薪超过10000元,安排去新疆当教学教师,愿意吗?...

小编注意到,社会上对于教师工资有一种误会,他们会认为只要是教师,现在的工资起码有5000以上。这个5000的月薪他们还觉得是到手的工资,还没算五险一金。因为他们不相信,教师的到手工资其实比打工者还低,小编…

small用于不连续数组_用Small、If、Index、Indirect、Row、Char、Match实现一对多查找...

一.应用实例:1.要求:通过G2单元格的下拉菜单选择不同的班级,在右侧单元格区域可以查找出对应班级所有的学生的姓名和对应的成绩。(返回查找结果区域的表头可以与原表头区域不对应)2.话不多少,先给朋友们上照效果图看看是不是你们想…

python gamma矫正

原文:http://blog.csdn.net/matrix_space/article/details/52415503 Python: scikit-image gamma and log 对比度调整 标签: python2016-09-02 17:34 1453人阅读 评论(0) 收藏 举报分类:图像处理(145) 这个函数&#x…

消息队列服务器安装失败,开发环境下的RocketMQ完整安装步骤、错误分析以及示例...

在看这文章之前建议先看看先前架构原理介绍文章:RocketMQ服务器启动linux环境下载编译源码 # 下载$> wget wget http://mirror.bit.edu.cn/apache/rocketmq/4.6.0/rocketmq-all-4.6.0-source- ># 解压$>unzip rocketmq-all-4.7.0-source-release.zip> c…