piapia123
zh

向量相似度计算

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

每行一个向量,一次算出它们两两之间的五种度量:余弦相似度、点积、欧氏距离、曼哈顿距离、切比雪夫距离 —— 全部给出,方便对照。之所以五种一起给,是因为它们回答的常被混淆的两个问题:余弦问「方向像不像」(把向量拉长一倍,余弦不变),欧氏问「离多远」(拉长一倍,距离就变)。结果里还列出每个向量的模,并把你选的那个度量最相似的一对单独标出来。⚠️ 余弦相似度遇到零向量(模为 0)时没有定义,工具一律报错,不会给你 0 或 NaN。全部在浏览器本地完成,数据不出这台设备。

功能

  • 五种度量一次给全:余弦、点积、欧氏、曼哈顿、切比雪夫
  • 两两之间的完整对照,每组一行
  • 列出每个向量的模(L2 范数)
  • 单独标出你选的度量下最相似的一对
  • ⚠️ 零向量的余弦报错,绝不返回 0 或 NaN
  • 维数不一致时指出是第几个向量
  • 可先把向量归一化成单位向量(余弦不变、点积变成余弦)
  • 小数位数可调(0–10)

使用方法

  1. 每行输入一个向量,用逗号或空格分隔
  2. 选择用于挑「最相似的一对」的度量
  3. 需要时打开归一化,或调整小数位数
  4. 点「复制」取走结果

常见问题

余弦相似度和欧氏距离该怎么选?
看你在意的是「方向」还是「大小」。余弦只看方向:`(1,2,3)` 和 `(2,4,6)` 的余弦是 1(完全同向),尽管后者长度是前者的两倍。欧氏距离会计入长度:这两点的欧氏距离不为 0。文本向量(词频、TF-IDF)通常用余弦,因为文档长短不该改变「主题是否相同」的判断。
为什么零向量会让余弦相似度报错?
余弦相似度是两个向量的点积除以两个模的乘积,而零向量的模是 0 —— 除以 0 没有定义。给 0 会被读成「完全不相似」,给 NaN 更是无意义的。所以工具如实报错,并指出是第几个向量。
归一化之后结果为什么会变?
归一化把每个向量缩放到长度 1,于是长度信息被丢掉、只剩下方向。归一化后点积就等于余弦相似度,欧氏距离与余弦之间也有了固定的换算关系。如果你怀疑「长度差异」在干扰判断,可以先归一化再看。
两个向量长度不同也能算吗?
不能。所有向量必须维数相同,否则点积、距离都无从谈起。工具会在某一行的数字个数与第一个不一致时明确指出是第几个向量,而不是补零或截断。

相关工具