文本相似度计算的几个距离公式(欧氏距离、余弦相似度、Jaccard距离、编辑距离)
来源:互联网 发布:男鞋 知乎 编辑:程序博客网 时间:2024/05/09 01:14
本文主要讲一下文本相似度计算的几个距离公式,主要包括:欧氏距离、余弦相似度、Jaccard距离、编辑距离。
距离计算在文本很多场景下都可以用到,比如:聚类、K近邻、机器学习中的特征、文本相似度等等。接下来就一一介绍一下:
假设两个文本X=(x1, x2, x3,...xn)和Y=(y1, y2, y3, ..., yn),其向量表示分别为:Vec(X) = (v1, v2, v3, ... vp), Vec(Y) = (l1, l2, l3, ... lp)
1.欧式距离
欧式距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。
计算公式如下:
2.余弦相似度
余弦相似度用向量空间中两个向量的夹角的余弦值来衡量两个文本间的相似度,相比距离度量,余弦相似度更加注重两个向量在方向上的差异,一般情况下,用Embedding得到两个文本的向量表示之后,可以使用余弦相似度计算两个文本之间的相似度。
计算公式如下:
3.Jaccard距离
Jaccard距离用于计算符号度量或者布尔值度量的两个个体之间的相似度,由于个体的特征属性是用符号或者布尔值度量的,所以只能统计包含的共同特征个数。
计算公式如下:
4.编辑距离
编辑距离主要用来计算两个字符串的相似度,其定义如下:
设有字符串A和B,B为模式串,现给定以下操作:从字符串中删除一个字符;从字符串中插入一个字符;从字符串中替换一个字符。通过以上三种操作,将字符串A编辑为模式串B所需的最小操作数称为A和B的最短编辑距离,记为ED(A,B)。
求解最短编辑距离的算法描述如下:
用一个二维数组ED[i][j]表示字符串A的前i个字符编辑成字符串B的前j个字符所需的最小操作数。则ED[i][j]的递推公式为:
⑴ ED[i][0]=i,ED[0][j]=j,其中0≤i≤A.len,0≤j≤B.len;
⑵ 若A[i]=B[j],则ED[i][j]=ED[i-1][j-1];
⑶ 若A[i]≠B[j],则ED[i][j]=min(ED[i-1][j-1],ED[i][j-1],ED[i-1][j])+1。
编辑距离越小,说明两个字符串越相似。反之,越不相似。
以上只是距离计算公式的常见的四种,还有很多种距离计算公式,以后如果用到了会继续添上。
- 文本相似度计算的几个距离公式(欧氏距离、余弦相似度、Jaccard距离、编辑距离)
- 欧氏距离和余弦相似度
- 欧氏距离和余弦相似度
- 欧氏距离和余弦相似度
- 欧氏距离与余弦相似度
- 欧氏距离和余弦相似度
- 计算字符串的相似度---编辑距离
- 基于词的编辑距离文本相似度计算
- 一些距离及相似度计算公式
- 文本相似度 -- 最小编辑距离算法
- 计算两向量的欧式距离,余弦相似度
- 计算两向量的欧式距离,余弦相似度
- 计算字符串的相似度(编辑距离)
- 计算字符串的相似度(编辑距离)
- 计算字符串的相似度(编辑距离)
- 初学hadoop之一:相似度计算(余弦距离)
- 分布的相似度(距离)计算
- 相似度/距离公式汇总
- 任务调度开源框架Quartz动态添加、修改和删除定时任务
- C
- Linux中__init、__exit 、__devinit等初始化宏
- 一款抓屏工具FSCapture 注册码 序列号
- 欢迎使用CSDN-markdown编辑器
- 文本相似度计算的几个距离公式(欧氏距离、余弦相似度、Jaccard距离、编辑距离)
- An abandoned sentiment from past
- USB 4P封装 焊盘计算 位号字体 正片热风焊盘 CAM350V10软件
- 【LNOI2014】bzoj3626 LCA
- Python numpy模块的数据分析实验(1)
- C++ 中的运算符重载
- EF速度优化
- Java IO
- 从文件中加载数据到内存