余弦相似度计算器 - 向量相似性分析

立即计算两个向量之间的余弦相似度。值为 1 表示方向相同,0 表示垂直,−1 表示方向相反。

输入两个长度相同的数字向量,使用逗号或空格分隔,然后点击“计算”查看余弦相似度及相关指标。

余弦相似度计算器 - 向量相似性分析
立即计算两个向量之间的余弦相似度。值为 1 表示方向相同,0 表示垂直,−1 表示方向相反。

输入以逗号或空格分隔的数字

输入以逗号或空格分隔的数字

关于余弦相似度计算器

余弦相似度是多维空间中比较两个非零向量相似性的最常用指标之一。与衡量两个点相距多远的欧几里得距离不同,余弦相似度只关注向量的朝向——具体来说,就是它们夹角的余弦值。因此,当大小不重要而方向更关键时,它尤其有用,例如比较不同长度的文档,或活动水平不同的用户偏好画像。 公式很简单:cos(θ) = (A · B) / (‖A‖ × ‖B‖),其中 A · B 是两个向量的点积,‖A‖ 和 ‖B‖ 分别是它们的欧几里得模长(范数)。点积通过对应元素相乘再求和得到。向量的模长则是各分量平方和的平方根。 结果始终落在 [−1, 1] 范围内。余弦相似度为 1 表示两个向量指向完全相同的方向——它们完全一致。值为 0 表示它们互相垂直(正交)——方向上没有相关性。值为 −1 表示它们指向完全相反的方向。实际应用中,许多场景只考虑非负特征(如词频或评分次数),这时相似度会被限制在 [0, 1]。 在自然语言处理和信息检索中,余弦相似度是比较用 TF-IDF 或词袋向量表示的文本的标准方法。由于长文档天然具有更大的向量模长,直接比较原始点积会不公平地偏向它们。通过用模长乘积进行归一化,余弦相似度消除了长度偏差,只关注词项的比例构成。 推荐系统使用余弦相似度来匹配用户偏好向量。如果两个用户对相似项目的相对喜好模式相近——即使其中一位用户总共评分的项目更多——他们的余弦相似度也会很高,说明口味相近。同样的逻辑也适用于图像识别:神经网络提取的特征描述向量可用余弦相似度进行比较,从而找到视觉上相似的图像。 对于这个计算器,你可以输入任意长度的向量,只要两个向量的维度数量相同即可。数值可用逗号或空格分隔。计算器会显示余弦相似度、点积以及每个向量的模长,方便你逐步验证计算过程。

余弦相似度示例

三个代表性场景,展示不同程度的向量相似性。

向量相似度解释
A = [1, 2, 3], B = [2, 4, 6]1.000000B 是 A 的标量倍数(方向相同)。无论缩放因子如何,余弦相似度都等于 1。
A = [1, 0, 0], B = [0, 1, 0]0.000000标准基向量彼此垂直。点积 = 0,因此余弦相似度 = 0。
A = [5, 3, 0, 2], B = [4, 2, 1, 3]0.947758在文档或用户偏好比较中很常见的高相似度,大多数维度都有重叠。A·B=32,|A|=√38≈6.164,|B|=√30≈5.477。
A = [1, 0], B = [-1, 0]-1.000000完全相反方向的向量会得到余弦相似度 = −1。

如何使用余弦相似度计算器

  1. 在“第一个向量(A)”字段中输入第一个向量,数值可用逗号或空格分隔,例如:1, 2, 3。
  2. 在“第二个向量(B)”字段中输入第二个向量,它必须与第一个向量具有相同的元素个数。
  3. 点击“计算相似度”。结果面板会显示余弦相似度分数、点积以及每个向量的模长。
  4. 使用表格下方的示例按钮,可立即加载预设向量对并查看计算过程。
  5. 点击“重置”即可清空所有字段并开始新的计算。

余弦相似度常见问题

余弦相似度为 0.85 表示什么?
这表示两个向量之间的夹角约为 31.8 度,说明方向相似度很高。在文本分析中,这通常意味着两篇文档在关键术语上有很大比例的重合,而且相对频率也相近。对于大多数应用,0.7 以上一般都可视为高度相似。
为什么文本更常用余弦相似度而不是欧几里得距离?
欧几里得距离对向量大小很敏感,因此一篇长文和一篇短文即便主题相同,也会因为长文的词项计数更大而显得差异很大。余弦相似度会把大小归一化,只关注夹角,因此无论长度如何都能比较文档。这种与长度无关的特性,是余弦相似度主导文本应用的主要原因。
余弦相似度可以为负吗?
可以,余弦相似度的范围是 −1 到 1。负值表示两个向量之间的夹角大于 90 度——它们彼此更偏离,而不是彼此接近。在只使用非负特征的应用中(如词频、评分),相似度都落在 [0, 1];但若使用有符号特征,例如均值中心化后的评分或情感分数,就可能出现有意义的负相似度。
当一个向量全为零时会怎样?
如果任一向量是零向量,余弦相似度在数学上是未定义的,因为归一化步骤会发生除以零。这个计算器在这种情况下会报错。实际上,在文本处理中出现零向量通常意味着文档不包含词汇表中的任何词,这种情况本来也不适合做相似性比较。
向量可以有多少维?
这个计算器支持任意长度的向量,只受浏览器性能限制。实际上,真实应用中常会使用成千上万甚至数百万维(例如词嵌入空间)。无论维度多高,数学公式都完全相同。只要两个向量的元素个数完全一致,计算就是有效的。
余弦相似度和相关系数是一回事吗?
余弦相似度和皮尔逊相关系数关系密切,但并不相同。皮尔逊相关系数会先对每个向量做均值中心化(减去元素平均值),再计算中心化后向量的余弦相似度。如果你的向量已经做过均值中心化,这两个指标会得到相同结果。对于未做均值中心化的原始特征向量,余弦相似度和相关系数通常会不同。