无向图中两点之间的距离_自然语言处理中距离计算总结
距离计算在自然语言处理中得到广泛使用,不同距离计算方式应用与不同的环境,其中也产生了很多不同的效果。
1 余弦距离
余弦夹角也可以叫余弦相似度。集合中夹角可以用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。
余弦取值范围为[-1,1]。求得两个向量的夹角,并得出夹角对应的余弦值,词余弦值就可以用来表示这两个向量的相似性。夹角越小,趋近于0度,余弦值越接近于1,它们的方向就更加吻合,即更加相似。当两个向量的方向完全相反时,夹角的余弦取最小值-1。当余弦值为0时,两向量正交,夹角为90度。因此可以看出,余弦相似度于向量的幅值无关,于向量的方向相关。
公式描述:
Python代码实现:
import numpy as np # np.dot(vec1,vec2) 量向量(数组):两个数组的点积,即元素对应相乘后求和 # np.linalg.norm(vec1):即求vec1向量的二范数(向量的模) vec1 = [1,2,3,4] vec2 = [5,6,7,8] dist1 = np.dot(vec1, vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2)) print("余弦距离测试结果为:"+str(dist1))
2 欧氏距离
欧几里得距离即欧几里得空间中两点间的直线距离。
Python实现:
import numpy as np vec1 = np.mat([1,2,3,4]) # 生成numpy矩阵 vec2 = np.mat([5,6,7,8]) # 根据公式求解1 dist1 = np.sqrt(np.sum(np.square(vec1 - vec2))) print("欧式距离测试结果是:"+ str(dist1)) dist2 = np.sqrt((vec1-vec2)*(vec1-vec2).T) # 根据公式求解2 print("欧式距离测试结果是:"+ str(dist2))
3 曼哈顿距离
曼哈顿距离也成为城市街区距离。用来表示两个点在标准坐标系上的绝对轴距之和,即从一个路口到另外一个路口,驾驶距离不是两点之间的直线距离。
Python实现
import numpy as np vec1 = np.mat([1,2,3,4]) vec2 = np.mat([6,7,8,9]) dist = np.sum(np.abs(vec1 - vec2)) print("曼哈顿距离测试结果是:"+str(dist))
4 明可夫斯基距离
明氏距离又叫明可夫斯基距离,是欧氏空间中的一种测度,被看作欧氏距离和曼哈顿距离的一种推广。
- 当p=1时,就是曼哈顿距离
- 当p=2时,就是欧氏距离
- 当p=3时,就是切比雪夫距离
python实现
可参照之前代码
5 切比雪夫距离
python实现
import numpy as np vec1 = np.mat([1,2,3,4]) vec2 = np.mat([5,6,7,8]) dist = np.max(np.abs(vec1 - vec2)) print("切比雪夫距离测试结果是:" + str(dist))
6 杰卡德距离
杰卡德(Jaccard)相似系数:两个集合A和B的交集在元素在A、B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。杰卡德距离:在占比中所取的是两个集合中不同元素。
Python实现:
import numpy as np v1 = np.random.random(10) > 0.5 # 生成10个true false数据(即0,1) v2 = np.random.random(10) > 0.5 vec1 = np.asanyarray(v1, np.int32) # 转换位0、1矩阵 vec2 = np.asanyarray(v2, np.int32) # 距离计算 up = np.double(np.bitwise_and((vec1 != vec2),np.bitwise_or(vec1 !=0,vec2!=0)).sum()) # 涉及到数学逻辑运算 down = np.double(np.bitwise_or(vec1 !=0 ,vec2!=0).sum()) # 取并集, (vec1 !=0 ,vec2!=0)先转对应元素为true ,false的矩阵 dist = (up/down) print("杰卡德距离测试结果是:"+str(dist))
7 汉明距离
在信息论中,两个登场字符串之间的汉明距离对应位置上的不同字符的个数。也就是说,将一个字符串变换成另一个字符串所需要替换的字符个数。
例如:“toned”与“roses”之间的汉明距离就是3
python实现:
import numpy as np v1=np.random.random(10)>0.5 v2=np.random.random(10)>0.5 vec1=np.asarray(v1,np.int32) vec2=np.asarray(v2,np.int32) dist=np.mean(vec1!=vec2) # 取均值 print("汉明距离测试结果是:"+str(dist))
无向图中两点之间的距离_自然语言处理中距离计算总结相关推荐
- 无向图中两点之间的距离_九上数学:二次函数图像,一动点到两定点距离和最小...
题目: 这是九年级上册数学配套练习册<人教金学典>上的一道选择题,学生普遍反映较难. 析解: 本题求△PMF周长的最小值,而两个定点之距FM已为定值,故实质上是求PF+PM最小值.由于已知 ...
- 根据经纬度计算地球上两点之间的距离——Haversine公式介绍及计算步骤
目录 摘要 1.半正矢公式(Haversine Formula)介绍 2.半正矢公式应用 3.半正矢公式计算 3.1 主要思路 3.2 计算步骤 3.2.1 平面向量计算方法 3.2.2 空间向量计算 ...
- python 两点之间的距离_手把手教你HTML5实现根据LBS定位到商家两点之间距离多少...
转载链接:https://juejin.im/post/5e7e126b51882573c508be13 背景 最近在做一个类似支付宝口碑商家的功能模块,其中有个功能就是计算出用户与商家的距离,如下图 ...
- python中求两点之间的距离_python – 列表中两点之间的距离公式
我需要创建一个列表,找到最接近的两个点,然后打印出来.如何比较列表中的每个点? 没有任何需要绘制或任何东西,只是比较点,找到列表中最接近的两个. import math # 'math' needed ...
- pythonopencv测距_如何在opencv中测量两点之间的距离(像素到厘米)
你好,我有一个代码,可以测量两点之间的距离,但我认为结果是以像素为单位的,所以想得到距离,但以厘米为单位. 我使用的是微软LifecamHD-3000摄像头,我真的不知道在代码的这一点上该怎么做. T ...
- JAVA利用数组求两点距离_利用java、js或mysql计算高德地图中两坐标之间的距离
利用java.js或mysql计算高德地图中两坐标之间的距离 2019-09-19 编程之家收集整理的这篇文章主要介绍了利用java.js或mysql计算高德地图中两坐标之间的距离,编程之家小编觉得挺 ...
- 一般柱子与柱子的距离_建筑中柱子之间的距离多少为好?
建筑中柱子之间的距离在3.8米到8米左右为好.建筑中最佳柱间距:办公建筑的柱间距6米:商铺柱间距8米:别墅柱间距4-5米:一般砖混结构柱间距3-4米:一般框架结构柱间距6-8米. 现代框架结构一般合理 ...
- Java对接高德地图计算距离_高德地图计算两点之间的距离java+html
高德地图现在使用比较多了,但是高德地图计算两点之间的距离有些问题.下面提供一个很好的解决方案. 代码如下: /** * 两点的经纬度获取两点距离米 * @param (121.293986,37.27 ...
- 给定经纬度计算距离_根据经纬度计算地球上两点之间的距离js实现代码
利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面 ...
最新文章
- 汇编语言中带点/小数点的是什么
- 猜数字游戏:随机键盘录入一个数字,看是否能猜正确
- 《AlwaysRun团队》第三次作业:团队项目的原型设计
- html传值方式有哪几种,关于html页面间传值的几种方法
- vue 2.0 :key的作用
- tcpwrapper的使用方法
- 上阿坤的课程的注意事项
- 安全手册(初稿)[转]
- Spark数据倾斜-采样倾斜key并分拆join操作-详细图解与代码
- drools。drools_Drools:fireAllRules,fireUntilHalt和Timers内部代码清理的详细说明
- 不说“安全”俩字,如何证明自己是做安全的?
- 哪个计算机无法做到双屏显示,[工具/ PC]如何在计算机上实现双屏显示?
- ubuntu终端颜色配置
- String的indexOf()用于获取字符串中某个子字符串的位置
- 软件外包中常见的七个错误之一 - 不懂用户需求
- SqliteDev如何突破限制
- Mac新手操作指南(三)
- 如何用c语言编辑定时关机程序有说明的,C语言编写的定时关机程序
- 用transform:scale();缩放
- java数据结构 农夫过河_数据结构笔记分享:18 农夫过河(图的算法运用)
热门文章
- 设置c++程序的堆栈空间解决栈溢出问题
- javascript:void(0)的作用示例
- GitHub:攻击者正在利用被盗 OAuth 令牌攻击数十家组织机构
- Squirrel Engine 曝漏洞,可导致攻击者入侵游戏和云服务
- Google Update Service 被曝提权 0day,谷歌拒绝修复
- 攻击者可提前检测到 Linux 内核的补丁并开发 exploit
- 近300个 Windows 10 可执行文件易受 DLL 劫持攻击
- VMware 软件被曝其史上最严重的信息泄露漏洞之一,影响大量虚拟机和主机
- linux Redhat6.5 中 编译安装apache
- Mycat适合场景及不适合场景