从 PDF 到 Markdown:为什么文档解析对 RAG 很重要

发布: (2026年3月16日 GMT+8 01:15)
3 分钟阅读
原文: Dev.to

Source: Dev.to

为什么解析质量对检索很重要

RAG 通过对文本块进行嵌入、将其存入向量数据库,并在查询时检索最相关的块来工作。块越能准确反映文档的结构和含义,模型就越能回答问题。

糟糕的解析(原始文本提取、朴素的 PDF‑to‑text)

  • 表格损坏 → 数字和标题混入段落;检索返回不完整或毫无意义的行
  • 标题丢失 → 没有语义层次;块边界忽视章节逻辑
  • 布局混乱 → 多列或复杂文档产生乱序的阅读顺序
  • 噪声 → 页眉、页脚、页码污染块并稀释相关性

良好的解析(结构化 Markdown,考虑布局的提取)

  • 表格整洁 → 以 HTML 或结构化块保留;块可以包含连贯的行和单元格
  • 层次保留 → 标题成为自然的块边界;章节保持完整
  • 逻辑流畅 → 阅读顺序遵循文档的预期结构
  • 噪声更少 → 可过滤模板内容;块更能代表实际内容

结果:嵌入捕获真实意义,检索返回的块真正回答问题,而不是垃圾片段。

Markdown 作为理想的 RAG 输入格式

Markdown 天然适合 RAG 流程,因为它:

  • 保持 结构(标题、列表、表格)显式,而不是隐藏在布局中
  • 易于分块 —— 可在 ## 或块类型处拆分,无需随意的字符切割
  • 保留 语义单元 —— 表格行、代码块或章节保持完整
  • 嵌入 配合良好 —— 模型通常在 Markdown 上进行训练;结构化文本的嵌入更可预测

相反,原始 PDF 文本往往是一长串没有明确边界的文字。你只能按固定 token 数量分块(丢失上下文),或自行推断结构(成本高且脆弱)。从干净的 Markdown 开始,就能免费获得结构。

选型时应关注的解析器特性

在为 RAG 构建文档摄取流水线时,选择能够:

  • 保留结构 —— 标题、表格、列表、代码块
  • 输出 Markdown —— 或可转换为 Markdown 的结构化 JSON
  • 处理布局 —— 多列、复杂格式、正确的阅读顺序
  • 暴露块元数据 —— 块类型、边界框、阅读顺序,以便自定义分块
0 浏览
Back to Blog

相关文章

阅读更多 »

如何使用混合搜索构建 Agentic RAG

检索增强生成(Retrieval‑Augmented Generation,RAG)和混合搜索(Hybrid Search)是一种强大的技术,用于从语料库中检索相关文档……