第 2 节 · 本站原创中文课程 · 建议 25 分钟
向量与相似度检索
学完能做:区分相似、匹配和事实证明。
相似度只是排序信号
嵌入将文本或图像映射成数值向量。近距离不证明事实相同;不同用户、时间的内容也可能很像。排序前结合权限、来源和字段过滤。
计算一次余弦
下例是教学向量,不是真实嵌入。零向量需显式处理,维度不同拒绝,不能静默截断。
import math
def cosine(a, b):
if len(a) != len(b): raise ValueError('维度不同')
na = math.sqrt(sum(x*x for x in a))
nb = math.sqrt(sum(x*x for x in b))
if na == 0 or nb == 0: return 0.0
return sum(x*y for x,y in zip(a,b))/(na*nb)
print(cosine([1,0],[1,1])) 模型版本决定空间
不同模型通常不能混用,即使维度相同。换模型重建索引或分版本保存。阈值用自己的样本验证,不直接照抄别人的分数。
这是本站独立编写的讲解与示例,并非官方课程逐字翻译。理解之后,请完成下面的练习、自测和笔记。