检索与知识系统 / 知识库

13 · Embedding 与混合检索

从关键词基线开始,理解语义搜索的收益与局限。

检索与知识系统原创导读

本站原创入门导读与合成教学示例。原始资料核实:2026-09-05。建议先读:12 · 规划、上下文与记忆。

理解概念

Embedding 把内容编码成向量,用距离或相似度寻找候选。查询和文档需要兼容的编码方式;更换模型后通常要重建索引。语义相近不等于事实相关,精确编号、日期和人名往往仍需要关键词检索。

混合检索结合关键词与向量候选,再去重或重排。先在小语料上建立可解释的关键词基线,再比较向量方法是否真正找回更多证据。每个返回片段保留文档编号、段落编号、版本与权限;过滤权限应发生在任何结果展示之前。

一个最小例子

代码
# 关键词基线,用于比较;没有使用真实 Embedding
corpus = {"A": "实验室 周三 开放", "B": "图书馆 周五 关闭"}
query = set("实验室 周三".split())
scores = {key: len(query & set(text.split()))
          for key, text in corpus.items()}
print(sorted(scores, key=scores.get, reverse=True))

动手练习

加入同义词“化学实验室星期三能进去吗”。记录关键词基线失败的原因,再列出向量检索可能改善的情况与仍需精确匹配的字段。

验收与预期结果

基线把 A 排在 B 前;能够说明分词与同义词影响。评估用人工标注相关文档,而不是只看搜索结果似乎顺眼。

  • 我能解释输入、过程与结果。
  • 我保留了一个失败例与运行记录。

常见误区

相似度阈值不能跨模型直接复用。不要把原始向量当作匿名化保证,也不要忽略索引中的私有文档权限。

延伸阅读

以下是相关方向的原始资料;本站练习不是官方课程作业或逐字翻译。

课程状态与先修说明 · 核心术语

理解需要时间,记录让每一步都有迹可循。

回到学习路线图