通过MCP连接 →

输入计算

数学公式

广告

结果

余弦相似度
0.974632
取值范围 −1 至 1
点积(a·b) 32
|A|(模长) 3.741657
|B|(模长) 8.774964
夹角(度) 12.9332°
夹角(弧度) 0.225726

什么是余弦相似度?

余弦相似度用来衡量两个向量指向方向的接近程度,本质上就是这两个向量夹角的余弦值。它的取值范围从 −1(方向完全相反)经过 0(互相垂直)一直到 1(方向完全相同)。由于它只取决于方向,而与向量长度无关,因此在机器学习、文本挖掘和推荐系统中被广泛用于比较文档、词向量(embedding)和特征向量之间的相似性。

从同一原点出发的两个向量,二者之间为夹角 theta
余弦相似度衡量的是两个向量之间的夹角 \(\theta\),而非它们的长度。

如何使用本计算器

分别填入向量 A 和向量 B 的 x、y 以及(可选的)z 分量。如果只需处理二维向量,把 z 字段留空或填 0 即可。计算器会返回余弦相似度,并同时给出点积、每个向量的模长,以及两向量之间的夹角(角度与弧度两种单位)。

计算公式详解

点积是各对应分量乘积之和:

$$\vec{a}\cdot\vec{b} = a_x b_x + a_y b_y + a_z b_z$$

向量的模长则是各分量平方和的平方根:

$$\lVert\vec{a}\rVert = \sqrt{a_x^{2} + a_y^{2} + a_z^{2}}$$

用点积除以两个模长的乘积,可以把结果归一化到 −1 到 1 之间,得到夹角 \(\theta\) 的余弦值。再对其取反余弦(arccos),就能还原出夹角本身。

Advertisement
数轴显示余弦相似度的取值范围,从负一到一
余弦相似度的取值范围从 -1(方向相反)经过 0(正交)到 1(方向相同)。

实例演算

设 \(A = (1, 2, 3)\),\(B = (4, 5, 6)\)。点积为

$$1\cdot 4 + 2\cdot 5 + 3\cdot 6 = 4 + 10 + 18 = 32$$

两向量的模长分别为

$$\lVert A\rVert = \sqrt{1+4+9} = \sqrt{14} \approx 3.7417$$$$\lVert B\rVert = \sqrt{16+25+36} = \sqrt{77} \approx 8.7750$$

因此

$$\cos\theta = \frac{32}{3.7417 \times 8.7750} \approx 0.9746$$

对应的夹角约为 \(12.93^\circ\)。

常见问题

余弦相似度为 0 代表什么?说明两个向量正交(互相垂直),夹角为 \(90^\circ\),方向上没有任何相似性。

结果可能是负数吗?会的。负值表示两个向量大体指向相反方向;−1 则表示它们方向完全相反(反平行)。

它和欧氏距离有什么区别?余弦相似度忽略向量长度,只比较方向;而欧氏距离衡量的是两个向量端点之间的直线距离。

最后更新: