首页/AI/AI 应用速查/文档解析:入库前的格式清洗

文档解析:入库前的格式清洗

RAG 的第一道工序:把 PDF/Word/HTML 还原成可切分的文本与结构。解析质量直接决定召回上限,扫描件需先 OCR、双栏与表格需特殊处理。

AI 应用速查AI更新于 2026-10-13

文档解析是什么

文档解析是知识库入库前的第一道工序:把 PDF、Word、HTML、表格这类格式还原成可切分的文本,并尽量保留标题层级、列表与表格结构。它决定了后续检索的上限——解析时把两栏排版的正文串行、把表格拆成散字,后面无论换多好的嵌入模型都补不回来。扫描件还需要先做文字识别,识别质量同样是瓶颈。

基本信息

目标把各种格式还原成带结构的干净文本
输入格式PDF、Word、HTML、Markdown、表格、图片与扫描件
关键输出正文文本、标题层级、表格结构、来源页码
核心难点多栏排版、表格、页眉页脚、扫描件识别
质量影响解析错误会永久降低召回上限,后续无法补救
常见做法先自动解析,再抽样人工校验并沉淀清洗规则

常见格式的处理方式

格式处理方式注意
文本型 PDF版式解析库按区块抽取多栏与表格容易串行,要抽样检查
扫描型 PDF先做文字识别再解析结构清晰度与倾斜角度直接决定上限
Word 与 HTML按标签解析并保留标题层级层级信息对切分帮助很大
表格资料按表结构解析后再转文本表头、合并单元格要单独处理
图片与图表用视觉模型或识别工具转文字数值与图例容易看错,关键数据要复核

典型使用场景

  • 知识库入库:把制度、手册、说明书转成可检索片段
  • 合同与报告处理:抽取条款与关键指标,保留页码便于引用
  • 历史资料数字化:扫描件批量识别后进入检索链路
  • 多来源汇总:同一主题的多个格式文档统一成同一种结构
  • 数据核对:从解析结果中检查关键字段是否完整

解析后的清洗要点

解析后的清洗要点
text = parse_pdf(path)            # 得到带区块信息的文本
# 去掉页眉页脚与页码噪声:它们会重复出现在每个片段里,浪费检索名额
text = drop_running_headers(text)
# 保留标题层级,供切分时按章节边界断开
text = keep_heading_levels(text)
# 表格转成结构化文本,避免行列错位
for t in extract_tables(text):
    print(table_to_markdown(t))
# 每个片段都带上来源文件与页码,方便答案标注依据

解析质量的检查清单

检查项问题表现处理
段落完整性句子被栏位切断或顺序错乱换解析器或先做版面分析
标题层级层级丢失,切分只能按长度保留并利用层级信息
表格正确性行列错位、合并单元格丢失改用表格专用解析方式
噪声内容页眉页脚与广告文案混入正文按重复模式过滤
识别准确率错字与数字识别错误抽样人工校验关键字段
抽样校验是必要投入:随机抽几十页人工比对,往往能发现批量性的解析缺陷,比逐页检查效率高得多。
解析结果里保留来源信息(文件名与页码)成本极低,但缺失它会让答案无法引用与核对,出问题时也无从回溯。

易错点

  • 直接整篇灌入不做结构解析:标题与表格信息全部丢失,切分只能按长度硬切
  • 忽略页眉页脚噪声:重复内容占据检索名额,召回质量明显下降
  • 扫描件跳过识别质量核查:错字与错数字进入知识库,答案看起来有依据但内容是错的
  • 不保留来源与页码:答案无法标注依据,问题定位只能靠人工翻原文
  • 解析完不抽样校验:批量缺陷在上线后才暴露,返工成本成倍增加

数据来源与参考

  • PyMuPDF 官方文档 pymupdf.readthedocs.io;unstructured 项目文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌