核心要点

  • 能讲清原则:「垃圾进垃圾出」,RAG 检索与回答质量的上限由入库前的数据治理决定,预处理不是可选项

  • 能列全流程:解析(PDF/HTML/Office/扫描件 OCR 转干净文本,保留标题与表格结构)→ 清洗(去页眉页脚、导航、广告、乱码、控制字符)→ 规范化(编码与空白标点归一)→ 去重(精确+近似)

  • 能讲元数据与特殊内容:抽取标题/章节/日期/来源/作者供过滤与 Self-Query;表格与图片单独处理;敏感信息脱敏;最后才进入分块

  • 能说清影响:脏数据直接污染检索召回与上下文,导致召回不准、答非所问甚至放大幻觉

标准回答

为什么重要

RAG 的回答建立在检索到的上下文之上,而检索的质量上限取决于入库内容的质量——「垃圾进,垃圾出」。如果入库的是带满页眉页脚、乱码、重复段落、丢失结构的文本,再好的嵌入模型和 reranker 也救不回来:召回会不准、上下文会被噪声稀释,模型据此生成时更容易答非所问或产生幻觉。所以数据清洗与预处理是 RAG 工程里投入产出比最高的环节之一。

解析(Parsing)

把各种来源转成干净、结构化的文本。PDF、HTML、Office 文档各有解析坑,扫描件和图片型 PDF 需要 OCR。关键是不仅取出文字,还要尽量保留标题层级、列表、表格等结构信息,这些结构后续对分块边界和元数据都很有价值。

清洗(Cleaning)

去掉与正文无关的噪声:重复出现的页眉页脚、网页导航与广告、版权声明、乱码字符、不可见控制字符、多余的转义符等。这一步直接决定了入库文本的信噪比。

规范化(Normalization

统一编码(统一到 UTF-8)、归一空白与换行、统一全半角标点、合并被错误换行打断的句子。规范化让相同含义的文本有一致表示,提升嵌入的稳定性与匹配度。

去重(Deduplication)

精确去重清掉完全相同的副本,近似去重(如 SimHash/MinHash 或向量相似度)清掉高度相似的冗余内容。否则检索 Top-K 会被多份近乎相同的片段占满,挤掉真正多样、互补的信息。

元数据抽取(Metadata Extraction)

抽取标题、章节、日期、来源、作者、文档类型等结构化字段,存入向量库的 metadata。它们支撑按时间/来源/权限过滤,也支撑 Self-Query(让 LLM 把自然语言里的条件转成元数据过滤),显著提升检索精度与可控性。

表格与图片单独处理

表格直接当普通文本分块往往破坏行列语义,应单独抽取并转成 Markdown 表格或结构化描述;图片可用多模态模型生成图注/描述再入库。

敏感信息脱敏

在入库前识别并脱敏个人隐私、密钥、内部机密等,避免敏感内容被检索出来泄露给用户。

进入分块

以上都处理完,得到干净、结构化、带元数据的文本后,才进入分块(chunking)与嵌入入库环节。顺序不能颠倒——先治理再切分,分块边界和元数据才会准确。

常见误区

⚠️ 常见踩坑

不要把脏文档直接丢进分块器就嵌入入库——跳过解析与清洗,页眉页脚、乱码、重复内容会污染整个向量库,后续 rerank 和提示工程都补救不了,召回精度和幻觉问题从源头就被注定。

追问

追问 1近似去重为什么必要?只做精确去重不够吗?

企业语料里常有大量「换了个版本号、改了几个字」的近重复文档,精确去重抓不到它们。若不做近似去重,检索 Top-K 会被这些高度相似的片段占满,挤掉真正互补的信息,既浪费上下文窗口又降低答案的全面性。可用 SimHash/MinHash 做粗筛,再用嵌入向量相似度做精筛,按阈值合并或保留最新版本。

追问 2抽取的元数据在检索时具体怎么用?

一是做硬过滤,比如「只查 2025 年之后、来源为官方文档」的片段,缩小检索范围、提升精度;二是支撑 Self-Query,让 LLM 把用户自然语言里的隐含条件(时间、作者、类型)解析成结构化过滤条件再检索;三是用于结果展示与溯源,把来源、章节回传给用户增强可信度。

追问 3表格内容为什么不能像普通段落一样直接分块?

表格的语义依赖二维行列关系,按字符流切分会把表头与数据行拆散、跨单元格串读,嵌入后语义混乱、检索基本失效。应单独识别表格,转成 Markdown 表格或「字段=值」的结构化文本,必要时为每行补上表头上下文,甚至让 LLM 生成一段表格摘要一并入库,让数值型问题也能被检索到。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习