怎么考「表格、代码、扫描件这类「脏文档」怎么处理进 RAG?

Q2-05文档解析常见

谁在问:有真实落地经验的面试官;toB 项目团队必问

开场怎么问

你们的文档都是什么格式?PDF 里的表格怎么处理的?

换个问法

  • 客户给的是扫描件怎么办?
  • 文档预处理这块你们花了多少精力?

五层追问链

左边照着问,右边对着听。最后一层是压力面,不必每个候选人都问到。

表格转成 Markdown 之后,用户问「A 型号的功率是多少」能检索到吗?

期望
直接匹配往往不行——表格里的内容是密集的数字和短标签,和自然语言问句在向量空间距离远。所以要靠上面说的「摘要向量 + 原表内容」双表示,或者把关键行展开成自然语言句子(「A 型号的额定功率为 500W」)额外建索引。
信号
坚持说「转成 Markdown 就能检索到」的,没实际测过表格问答。

扫描件 OCR 出来有错字,怎么降低影响?

期望
BM25 侧受影响最大(错字直接匹配不上),所以要提高向量检索权重;OCR 后可用 LLM 做一遍纠错;关键字段(型号、金额)人工抽检;在答案里标注「本内容来自 OCR 识别,可能存在误差」。
信号
能想到「OCR 错字对 BM25 的伤害大于对向量」的,理解很到位。

一个段落跨页了,页眉页脚夹在中间,怎么处理?

期望
先做页眉页脚识别与剔除(位置规则或重复文本检测),再做跨页段落合并(依据段落是否以句号结尾、缩进、字号);这类清洗规则最好可配置,因为不同客户的文档模板差异很大。
信号
能说出「用重复出现的文本识别页眉页脚」这种具体手段的,是实操过的。

解析这一环你怎么做质量验收?

期望
抽样人眼检查是最有效的;自动化侧可以做字符数/文件大小比例告警、空 chunk 检测、乱码率检测;建立「解析失败清单」单独人工处理,不要静默入库。
信号
答「解析完就入库」的,知识库大概率已经被污染。

客户扔来 5000 份格式各异的历史文档,工期两周,你怎么排优先级?

期望
先做文档分布统计(哪几类占了 80% 的量和访问频次),集中处理高频高价值的类型;小众格式先降级处理或标注为「暂不支持」;先跑通端到端链路再回头补解析质量;明确告知客户哪些类型当前覆盖、哪些不覆盖,而不是承诺全量高质量。
信号
想一次性把所有格式都做完美的,缺乏交付节奏感。

危险信号

听到这些话,基本可以判定是背题而不是做过。

只答「用 PyPDF 抽文本」,没有类型分流。
认为表格转 Markdown 就万事大吉。
完全不提元数据和标题层级。
没有任何质量验收环节——解析失败的文件静默入库是知识库慢性中毒的主因。
说「这块交给算法同学/开源库处理就行」——这题问的就是工程细节,甩锅式回答直接暴露没参与过。

评分卡

  1. 按文档类型分类给出处理手段
  2. 知道表格不能简单拍扁,能说出摘要/双表示或行展开的思路
  3. 提到保留标题层级作为元数据
  4. 知道代码按 AST/函数边界切
  5. 提到扫描件走 OCR 或多模态
  6. 加分:有解析质量验收意识(抽检、告警、失败清单)
  7. 加分:能说出多模态模型在复杂版面上的性价比变化
参考答案与考察意图面试中途别看这一段

考察意图

这题几乎只有真做过项目的人能答好,因为解析是 demo 和生产之间最大的落差。教程里的 RAG 都从干净的 txt 开始,真实项目里 60% 的时间耗在把 PDF 变成能用的文本上。面试官问这题,就是在快速验证你是「跑过教程」还是「交付过系统」。

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

按文档类型分类处理:原生 PDF 用 pdfplumber / PyMuPDF 抽文字,注意多栏排版和页眉页脚要去掉;扫描件没有文字层,要走 OCR 或直接交给多模态模型识别;Word/PPT 用 python-docx / python-pptx 并保留标题层级;网页要做正文抽取去掉导航和广告;表格拍扁成文本会丢语义,一般转成 Markdown 表格整表存为一个 chunk;代码按函数或类的边界切,不能按行数切。

90

90 分答案(有生产经验的回答)

补三个只有踩过坑才知道的点:

  • 表格的双表示法:整张表存为一个 chunk(Markdown 格式,保留行列关系),但额外用模型生成一句自然语言摘要(「本表描述 X 产品各型号的功率与接口参数」)作为检索用的向量。因为用户的提问是自然语言,直接和表格的数字文本做向量匹配几乎匹配不上——检索用摘要,回答用原表
  • 标题层级是最高性价比的投入:把「一级标题 > 二级标题 > 三级标题」这条路径作为元数据挂在每个 chunk 上。它同时服务三件事:检索过滤、给模型交代上下文、引用溯源显示出处。做这一件事的收益往往超过调半天参数。
  • 解析质量要有验收:不能解析完就直接入库。实用做法是抽样人眼检查 + 自动化规则告警(比如某文档抽出的字符数远低于文件大小预期,多半是扫描件或解析失败),把解析失败的文件挑出来单独处理,而不是让它们静默地变成空 chunk 污染知识库。

再补一句判断:2026 年多模态模型的成熟改变了这一环的性价比——复杂版面的 PDF(图文混排、多栏、表格跨页)直接交给多模态模型做版面理解,往往比传统解析库调一堆规则更省事,代价是成本更高。所以策略是规则解析打底,复杂文档兜底给多模态模型

攒够了去组卷页一键生成可打印的面试题单