文档解析:脏文档与多模态

RAG 工程化入门6讲解 2

RAG 的上游是把文档解析干净:表格要保住结构、代码要保住块、扫描件要 OCR、图表与版面要靠 VLM 或 ColPali 这类视觉检索。解析质量决定后面所有环节的上限 —— 多数「检索不准」的根因在这一步。

也叫:文档解析 · 脏文档 · OCR · 版面理解 · 多模态 RAG · ColPali

上游:先把文档解析干净出自 T2-2

面试里很多人直接从「切块」开讲,跳过了解析——这恰恰是生产中最脏最花时间的一环。

文档类型 难点 常用手段
原生 PDF 多栏排版、页眉页脚、跨页段落 pdfplumber / PyMuPDF;先做版面分析再抽文字
扫描件 PDF / 图片 根本没有文字层 OCR;或直接交给多模态模型识别
Word / PPT 样式噪音多 python-docx / python-pptx,保留标题层级
表格 一行行抽出来语义全丢 转 Markdown 表格或整表加一句自然语言摘要
网页 导航栏、广告污染 正文抽取(trafilatura 等)
代码 按行切会切断函数 按 AST 的函数/类边界切

两条实用经验:

  • 保住标题层级。把「一级标题 > 二级标题」作为元数据挂在每个 chunk 上,检索时既能过滤又能在 prompt 里给模型交代上下文——这是投入产出比最高的一招。
  • 表格单独处理。表格拍扁成文本几乎必丢语义。常见做法是整张表存为一个 chunk(Markdown 格式),额外用模型生成一句「本表描述 X 产品各型号的功率参数」作为检索用的摘要向量。

以上节选自T2-2 文档解析与 Chunking:从固定切分到语义切割,读全文能看到前后语境。

延伸阅读

考这个知识点的题2

会连带问到4