文档解析

最后更新:2026-06-08 数据来源:data/data-and-knowledge.yaml 自动生成


📄 文档解析的坑

把 PDF 变成文本,听起来简单,实际上是 RAG 流程中最容易翻车的环节。

文档类型 难度 常见坑 推荐方案
纯文本 PDF ⭐ 几乎没有 PyMuPDF 直接提取
扫描件 PDF ⭐⭐⭐ OCR 识别错误、排版混乱 Marker / Docling
含表格的 PDF ⭐⭐⭐⭐ 表格结构丢失、列错位 MinerU / Docling
多栏排版 PDF ⭐⭐⭐ 阅读顺序错乱 Nougat / Marker
含图片的 PDF ⭐⭐⭐⭐ 图片说明文字丢失 多模态模型直接理解
网页 / HTML ⭐⭐ 噪声多(广告、导航) Crawl4AI / Jina Reader

[!TIP] 90% 的 PDF 解析问题可以用 MinerU 解决 MinerU 是目前国内开源社区最活跃的文档解析工具,对中文 PDF 支持极好,表格、公式、多栏都能处理。pip install magic-pdf 即可使用。


📋 文档解析引擎总览

⭐ 活跃项目 (10K-50K Stars)

名称 简介 标签 亮点
MinerU 国内最活跃的开源文档解析工具,中文 PDF 支持极好 document, data-analysis, chinese 中文 PDF 解析首选
表格/公式/多栏支持
32K Stars
Unstructured 最流行的文档解析库,支持 PDF/Word/HTML 等 20+ 格式,RAG 标配 document, data-analysis, rag 28K Stars
20+ 格式支持
RAG 标配
Firecrawl 为 LLM 设计的网页爬取 API,输出干净 Markdown/结构化数据 search, document, api-gateway 28K Stars
输出干净 Markdown
API 优先
Crawl4AI 为 LLM 设计的网页抓取工具,输出 Markdown search, document 为 LLM 设计
网页转 Markdown
25K Stars
Docling IBM 出品的文档解析工具,支持多种格式 document, data-analysis, enterprise IBM 出品的结构化高保真解析器
完美还原复杂的语义层级与表格
内置 MCP Server,生态绝佳
Marker AI 驱动的 PDF 解析工具,支持扫描件、表格、公式 document, data-analysis 极速深度学习模型流水线
完美适配科研文献与复杂公式转换
支持可选的大模型增强 (LLM-boost)
GOT-OCR 阶跃星辰出品的通用 OCR 模型,支持复杂文档/乐谱/数学公式 data-analysis, chinese 12K Stars
通用 OCR
公式+乐谱

🆕 新兴项目 (<10K Stars)

名称 简介 标签 亮点
Nougat Meta 出品的学术文档解析模型,擅长公式识别 document, data-analysis, academic Meta 出品
学术论文解析
公式识别
PyMuPDF 高性能 PDF 处理库,纯文本提取首选 document, open-source, fast-inference 高性能 PDF 库
纯文本提取
轻量级
LlamaParse LlamaIndex 出品的文档解析 API,专为 RAG 优化 document, api-gateway, rag 专为 LLM 设计的高效闭源 API 解析服务
无需配置本地环境,开箱即用
原生无缝集成 LlamaIndex 生态
Jina Reader 网页转 Markdown API,最简单的网页解析方案 search, api-gateway, document 网页转 Markdown API
最简单方案
无需部署

🔧 解析方案对比

方案 类型 表格 公式 OCR 中文 适合谁
PyMuPDF 库 ❌ ❌ ❌ ✅ 纯文本 PDF,最轻量
Marker 工具 ✅ ✅ ✅ ✅ 扫描件、多语言
MinerU 工具 ✅ ✅ ✅ ✅ 中文 PDF 首选
Docling 工具 ✅ ✅ ✅ ✅ IBM 出品,企业级
Nougat 模型 ✅ ✅ ✅ ❌ 学术论文,公式密集
Crawl4AI 工具 — — — ✅ 网页抓取,LLM 友好
Jina Reader API — — — ✅ 网页转 Markdown,最简单

💡 最简文档解析流程

# 方案 1:纯文本 PDF(最简单)
import pymupdf
doc = pymupdf.open("document.pdf")
text = "\n".join(page.get_text() for page in doc)

# 方案 2:复杂 PDF(表格、扫描件)
# pip install magic-pdf
from magic_pdf.data.data_reader_writer import FileBasedDataWriter
# 参考 MinerU 官方文档

# 方案 3:网页抓取
# pip install crawl4ai
from crawl4ai import AsyncWebCrawler
async with AsyncWebCrawler() as crawler:
    result = await crawler.arun("https://example.com")
    print(result.markdown)  # 直接得到 Markdown

[!TIP] 解析后的文本质量直接决定 RAG 效果 如果解析出来的文本表格错位、公式丢失、阅读顺序混乱,后面再怎么优化 Embedding 和检索都没用。建议先人工检查 10 个文档的解析结果,确认质量后再批量处理。


更新频率:每季度更新 自动化:运行 python scripts/build_docs.py 从 YAML 重新渲染表格。