欧氏距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。

也可以理解为:m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离

下面是具体的计算公式:

在计算用户相似度的过程中,欧几里得距离是比较直观,常见的一种相似度算法。

根据两用户之间共同评价的Item为维度,建立一个多维的空间,那么通过用户对单一维度上的评价Score组成的坐标系X(s1,s2,s3……,si)即可定位该用户在这个多维度空间中的位置,那么任意两个位置之间的距离Distance(X,Y)(即:欧式距离)就能在一定程度上反应了两用户兴趣的相似程度。

二维空间中6位用户对Snakes 和 Dupree 这两Item评价的直观体现

就其意义而言,欧氏距离越小,两个用户相似度就越大,欧氏距离越大,两个用户相似度就越小。

在日常使用中,一般习惯于将相似度与1类比,相似度在数值上反映为0<=Similarity(X,y)<=1,越接近1,相似度越高;

那么我们在使用欧几里得距离时,可以通过 1/(1+Distance(X,Y))来贯彻上一理念。

相似度取值于[0,1]
算法中用欧式距离来量化相似度,Distance(X,Y)∈[0,+∞),1+Distance(X,Y)∈【1,+∞),1/(1+Distance(X,Y))∈(0,1]

注意事项

a.因为计算是基于各维度特征的绝对数值,所以欧氏度量需要保证各维度指标在相同的刻度级别,比如对身高(cm)和体重(kg)两个单位不同的指标使用欧式距离可能使结果失效。

b.欧几里得距离是数据上的直观体现,看似简单,但在处理一些受主观影响很大的评分数据时,效果则不太明显;比如,U1对Item1,Item2 分别给出了2分,4分的评价;U2 则给出了4分,8分的评分。通过分数可以大概看出,两位用户褒Item2 ,贬Item1,也许是性格问题,U1 打分更保守点,评分偏低,U2则更粗放一点,分值略高。在逻辑上,是可以给出两用户兴趣相似度很高的结论。如果此时用欧式距离来处理,得到的结果却不尽如人意。即评价者的评价相对于平均水平偏离很大的时候欧几里德距离不能很好的揭示出真实的相似度。

基于python实现欧氏距离: 

import numpy as np
a=[1,8,3]
b=[3,4,5]
vec1 = np.array(a)
vec2 = np.array(b)# 方法一
distance= np.sqrt(np.sum(np.square(vec1-vec2)))
print(distance)
# method 2
dist = np.linalg.norm(vec1-vec2)
print(dist)

文本相似度算法之欧几里得距离(欧氏距离)相关推荐

  1. pbewithmd5anddes算法 对应.net_文本相似度算法之-simhash

    文本相似度算法种类繁多,今天先介绍一种常见的网页去重算法Simhash. 1.什么是simhash simhash是google于2007年发布的一篇论文<Detecting Near-dupl ...

  2. java算法余弦定律_自己实现文本相似度算法(余弦定理) - 呼吸的Java - 开源中国社区...

    自己实现文本相似度算法(余弦定理) 52人收藏此文章, 我要收藏 发表于9个月前(2012-03-04 16:59) , 已有5592次阅读 ,共6个评论 最近由于工作项目,需要判断两个txt文本是否 ...

  3. 【自然语言处理】文本相似度算法:TF-IDF与BM25

    文本相似度算法:TF-IDF与BM25 1.TF-IDF TF(Term Frequency)是指归一化后的词频,IDF(Inverse Document Frequency)是指逆文档频率.给定一个 ...

  4. 基于文本相似度算法,分析 Vue 是抄出来的框架吗?

    本周一篇指摘 Vue 抄袭 Angular 的文章一石激起千层浪.为此,笔者作为中立吃瓜的 React 用户,分析了 13 个主流前端框架版本上万个变量的命名风格,应用自然语言处理中的文本相似度算法进 ...

  5. [转]文本相似度算法

    来源:http://www.cnblogs.com/liangxiaxu/archive/2012/05/05/2484972.html 文本相似度算法 1.信息检索中的重要发明TF-IDF 1.1T ...

  6. 文本相似度算法的对比及python实现

    文本相似度算法的对比及python实现 前言 通常我们有这样的需求:对两篇文章或者产品内容进行重复率查询. 为了解决类似的问题,罗列了一些常见的相似度算法,用python代码实现. 五种常见的相似度算 ...

  7. python实现文本相似度算法的对比及

    文本相似度算法的对比及python实现 前言 通常我们有这样的需求:对两篇文章或者产品内容进行重复率查询. 为了解决类似的问题,罗列了一些常见的相似度算法,用python代码实现. 五种常见的相似度算 ...

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

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

  9. 文本相似度算法Jaccard相似度(杰卡德相似度)java实现

    文本相似度算法 杰卡德相似度,指的是文本A与文本B中交集的字数除以并集的字数,公式非常简单: java代码 import java.util.HashSet; import java.util.Sca ...

最新文章

  1. 通向人工智能产业落地化的道路在哪?
  2. java类加载器 架构 设计_类加载器(DexClassLoader)与插件化(动态加载)
  3. Wiki1017(乘积最大)
  4. python代码该怎么简化_Python开发简化代码的六大技巧
  5. 反射应用和获取Class对象的三种方式
  6. jQuery事件绑定(一)
  7. CentOS6.5 webserver---网络配置
  8. WINDOWS获得当前执行程序路径的办法
  9. 文化学刊杂志文化学刊杂志社文化学刊编辑部2022年第3期目录
  10. 计算机组成原理运算器实验报告及数据分析,《计算机组成原理》运算器实验报告...
  11. leetcode简单之1076.项目员工II
  12. RTT学习笔记7-中断管理
  13. github报fatal: Authentication failed解决方案(2021-08-13日之后)
  14. 数据结构--迷宫问题的四种解法
  15. python给指定目录所有图片添加水印logo,批量生成替换文件,自适应图片大小添加到图片正中间
  16. 热词解析:“脑残”英语怎么说?
  17. 1079 密码(二进制常识)
  18. Juniper入门之RIP
  19. mysqldump的使用
  20. 用 addr2line 定位 OOPS 死机代码位置

热门文章

  1. 使用git管理项目(一)搭建环境
  2. 《量化金融R语言高级教程》一1.2 波动率建模
  3. 【基本的办公软件有哪些】万彩办公大师教程丨图片EXIF信息修改工具
  4. HTML5期末大作业:简单的学生网页作业源码 基于 html css js仿腾讯课堂首页
  5. 2019寒冬中的深圳前端面试分享(附笔试题)。
  6. android 主题xml,自定义Android主题风格theme.xml方法 Android开发技术
  7. 洛谷P2341(受欢迎的牛)题解
  8. 城市地理空间数据可视化
  9. 一些关于使用SBUF输出字符串时遇到的问题
  10. Kubernetes(k8s)权限管理RBAC详解