汉语宝典

余弦相似度

输入两个向量,计算余弦相似度以衡量方向一致性,适用于文本语义匹配、推荐召回与嵌入向量比对。

🤖 Cosine Similarity Calculator

Compute the cosine similarity of two vectors to measure how closely their directions agree. Common in text matching, recall and embedding comparison.

📐 计算公式 / 原理
cos θ = (Σaᵢbᵢ) / (√Σaᵢ² · √Σbᵢ²)
余弦相似度取值范围 [−1,1],1 为同向、0 为正交、−1 为反向。因为做了模长归一化,它对向量整体缩放不敏感,适合比较长度差异很大的文本或特征向量;若需要同时反映模长差异应改回欧氏距离。

📐 计算公式与说明

cos = (A·B)/(|A|·|B|)

取值 −1 到 1,越接近 1 越相似。

📚 深度解析:余弦相似度

💡 常见使用场景

  • cos(x,y)=Σxᵢyᵢ/(‖x‖·‖y‖),取值 [−1,1],1 为同方向、0 正交、−1 反向。
  • 对向量归一化后,余弦等价于内积,计算更快且利于检索索引。
  • 文本/图像嵌入比对几乎都用余弦,因模长常受频率或亮度干扰不代表语义。
x=(1,2,2), y=(2,4,4):‖x‖=3,‖y‖=6,内积=2+8+8=18 → cos=18/(3×6)=1,两向量同向(实际 y=2x),完全相似。

❓ 常见问题(FAQ)

余弦为负说明什么?
说明两向量夹角大于 90°,语义倾向相反(如反义句、对立情感)。多数相似度场景只取非负区间,需按业务决定是否保留负值。
为什么先归一化?
归一化后模长均为 1,余弦=内积,便于用内积加速检索(如 FAISS);且消除向量长度对相似度的影响,聚焦方向。