通过MCP连接 →

输入计算

数学公式

广告

结果

余弦相似度
0.974632
取值范围 −1 至 1
点积(A·B) 32
模长 |A| 3.741657
模长 |B| 8.774964
两向量之间的夹角 12.93°
使用的维度数 3

什么是余弦相似度?

余弦相似度通过测量两个向量之间的夹角(而非它们的长度)来衡量两者的相似程度。其取值范围在 −1 到 1 之间:1 表示两向量方向完全一致,0 表示两向量正交(互不相关),−1 则表示两向量方向完全相反。它在文本挖掘、推荐系统、信息检索和机器学习等领域应用广泛,常用于比较文档、词向量(embedding)或特征向量之间的相似性。

共享同一原点的两个向量,二者之间为夹角 theta
余弦相似度测量两个向量之间的夹角 \(\theta\),而忽略它们的大小。

如何使用本计算器

请将向量 A 和向量 B 的各个分量以逗号分隔的数字形式输入。两个向量的维度数量必须一致(若维度不同,计算器会按较短向量的长度进行计算)。点击「计算」后,即可看到余弦相似度、点积、每个向量的模长,以及两向量之间的夹角(以度为单位)。

公式详解

余弦相似度等于两个向量的点积除以它们欧几里得范数(模长)的乘积:

$$\cos\theta = \frac{\vec{A} \cdot \vec{B}}{\lVert \vec{A} \rVert \, \lVert \vec{B} \rVert} = \frac{\sum_{i=1}^{n} A_i B_i}{\sqrt{\sum_{i=1}^{n} A_i^{2}} \; \sqrt{\sum_{i=1}^{n} B_i^{2}}}$$

点积 \(\vec{A} \cdot \vec{B}\) 是对应元素逐项相乘后求和的结果。模长 \(\lVert \vec{A} \rVert\) 则是各分量平方和的平方根。除以模长可对结果进行归一化处理,使其只取决于向量的方向,而与向量的长度无关。

Advertisement
余弦相似度公式各部分示意图:点积除以模长的乘积
该公式将 A 和 B 的点积除以它们模长的乘积。

实例演算

设 A = [1, 2, 3],B = [4, 5, 6]。点积为 \(1\cdot4 + 2\cdot5 + 3\cdot6 = 4 + 10 + 18 = 32\)。向量 A 的模长为 \(\sqrt{1+4+9} = \sqrt{14} \approx 3.7417\),向量 B 的模长为 \(\sqrt{16+25+36} = \sqrt{77} \approx 8.7750\)。因此 $$\cos\theta = \frac{32}{3.7417 \times 8.7750} \approx \frac{32}{32.8329} \approx 0.9746$$ 对应的夹角约为 \(12.93°\)。

常见问题

计算结果可以是负数吗? 可以。当两个向量的方向大致相反时,余弦相似度为负值;当方向完全相反时,结果为 −1。

如果两个向量的长度不同怎么办? 计算器只会比较重叠的维度(即较短向量的长度)。为获得有意义的结果,建议使用维度相同的向量。

它与欧几里得距离有何区别? 余弦相似度忽略向量的大小,只关注其方向。因此,即使一个向量比另一个长得多,只要两者方向一致,它们就被视为完全相似。

最后更新: