文档解析学习目录

知识库简介

文档解析(document parsing)把文件中的字节、页面和布局转换成可检索、可引用、可验证的结构元素。对 RAG 来说,拿到“一大串文字”还不算完成:标题层级、阅读顺序、表格单元格、页码、坐标、权限和解析警告都会影响后续切块与回答证据。

本库采用一条重要边界:先做确定性检测与原生解析,必要时才进入 OCR 或视觉模型;任何概率性结果都必须保留来源与质量状态。 学习项目不会假装仅靠标准库就能解析 PDF 或 Office 文件,而是演示如何安全地登记、分流和拒绝它们。

在总路线中的位置

这是“RAG 与知识库”阶段的入口。先完成 数据清洗 与 JSON,再学习本库。解析产物随后交给 知识库构建 管理版本,并由 Chunking 策略 组合成检索单元。

学习目标

完成后,你应能:

  • 区分扩展名、传输 Content-Type、magic bytes 与容器内部检测;
  • 设计“发现—登记—检测—解析—规范化—验收—发布”的可重放流水线;
  • 用严格解码处理 UTF-8、BOM、换行和 Unicode 规范化;
  • 保存标题、列表、代码、表格、阅读顺序与来源坐标;
  • 区分数字 PDF、扫描 PDF、隐藏文本层、OCR 和 VLM 的能力边界;
  • 为未信任文件设置类型、大小、数量、时间、权限和隔离门禁;
  • 用自动指标与人工 gold set 判断“可用”,而不是只看进程是否退出成功。

前置知识

  • 会使用 Python 字符串、字典、异常、pathlib 和 unittest;
  • 理解 API 中的媒体类型与请求响应;
  • 理解 Markdown、JSON 和 CSV 的基本结构。

推荐学习顺序

  1. 格式识别与解析流水线:从字节、文件名和内容信号建立安全的路由契约。
  2. 编码、文本与规范化:避免乱码、静默丢字和不可审计的“清洗”。
  3. 结构、标题、列表与表格:把正文升级为有层级、顺序和坐标的元素。
  4. PDF 与 OCR 边界:按页选择原生抽取、OCR、版面模型或人工复核。
  5. 元数据、质量验证与项目:运行离线检查器,解释通过、复核和失败三种门禁。

建议按“阅读一节—完成节末练习—改一条项目规则—运行测试”的节奏学习。不要先安装大型解析框架;先理解输入、输出、失败和证据契约,之后才能判断框架结果是否可信。

动手实践或项目入口

项目文件:

它只读扫描一个指定目录,对 UTF 文本、Markdown、HTML、CSV 和 JSON 产生确定性清单;对 PDF、Office、压缩包和图片停止在“需要外部适配器”。27 项测试覆盖格式伪装、严格解码、JSON 重复键、CSV 嵌入换行、parse revision、来源行号、内容/元素哈希、符号链接和资源预算等边界;文件在 stat() 预检查后变大时也会在有界读取处被拒绝,不会整份读入内存。

专题项目只验证 parser manifest;先用来源到引用 reference model学习目标不变量,再在跨模块来源适配项目中 fresh 调用当前 parser,并处理原生行坐标、namespaced element ID 与 release crosswalk;External Provenance Artifact v2继续验证 parser record、raw/canonical representation 与 crosswalk 跨 strict JSON boundary 后能否 fresh 重建。

掌握标准

  • 我能解释为什么 .pdf 后缀、HTTP Content-Type 或单个 magic pattern 都不能单独证明文件类型。
  • 我能为标题、段落、表格和代码设计带 source_id、顺序、位置和哈希的元素 schema。
  • 我不会用 errors="ignore" 把解码失败伪装成成功。
  • 我能判断某页应原生抽取、OCR、视觉理解还是人工复核。
  • 我能说明 OCR 置信度为什么不是“事实正确概率”。
  • 我能让相同输入和配置得到相同清单,并在源文件变化时得到新版本 ID。
  • 我能设计自动门禁、分层抽样集和关键字段人工验收。
  • 我能明确说出项目已验证和未验证的格式能力。

与其他知识库的关系

  • 知识库构建:管理原始文件、解析版本、失败队列与发布状态。
  • Chunking 策略:组合解析元素,不应重复昂贵的 OCR。
  • OCR:深入图像预处理、文字识别和 OCR 评测。
  • 多模态 AI:处理图表、公式、视觉问答等超出纯文本解析的任务。
  • RAG:检索与回答的质量上限受解析完整性和可追溯性约束。
  • AI 安全:未信任文档可能包含恶意容器、脚本、提示注入与敏感信息。

主要参考资料

来源获取日期:2026-07-22。工具版本会变化;涉及安装参数和支持格式时,应以当前官方文档为准。