你肯定用 AI 读过文档。

把一份 PDF 扔进去,让它帮你总结重点、提取数据、回答问题。它给出的答案看起来很像那么回事,你也没有细究,直接用了。

但有一件事很多人不知道——

AI 很可能根本没读完那份 PDF。

不是因为它偷懒。是因为它压根没有"读 PDF"这个能力。


AI 看到的 PDF,不是你看到的 PDF

你打开一份 PDF,看到的是排版整齐的文字、表格、图表、公式。

AI 看到的,是一堆乱的东西。

PDF 这个格式在设计的时候,目标是"打印出来好看",不是"让程序好读"。它的底层存储不是"第一段文字、第二段文字"这种顺序,而是"在坐标 (x=142, y=387) 的位置有一个字符’A’"——一堆坐标和字符的集合,没有段落,没有表格,没有标题,什么结构都没有。

所以当你把 PDF 扔给 AI 的时候,AI 需要先"理解"这份 PDF——把坐标信息重新拼回成有意义的文字。这一步,叫文档解析。

大多数工具做这一步的方式,是直接按坐标从上到下扫,遇到字符就读。这在格式简单的 PDF 上勉强能用。但只要遇到这几种情况,就全崩了:

双栏排版(学术论文最常见):左边一栏、右边一栏,按坐标从上到下读的话,会把左栏第三段和右栏第一段拼在一起,语序完全混乱。AI 拿到这个,当然给不出正确的总结。

表格:PDF 里的表格没有"行"和"列"的概念,只有一堆数字分布在不同坐标上。简单扫描后,行列关系全丢,财报里的关键数据就这么消失了。

公式:数学公式、化学式,解析出来要么是乱码,要么变成残缺的符号。技术文档里最重要的内容,反而最容易在这一步消失。

扫描件:很多合同、老文档是扫描出来的 PDF,里面压根没有文字信息,只有图片。直接扔给 AI,它读到的是一片空白。


为什么你没发现

因为 AI 很擅长用它读到的残缺内容,拼出一个听起来像模像样的答案。

它不会告诉你"我没读完"或者"这部分我没读懂"。它会用它拿到的那一小部分,给你一个流畅的回复。表格数据丢了,它会给你一个模糊的描述;公式读错了,它会给你一个接近但不准确的解释;双栏混排,它会给你一个语序混乱但表面通顺的总结。

你以为它理解了,它只是在掩盖它没读到的部分。


这个问题怎么解决

工程师解决这个问题的方式,是在把 PDF 扔给 AI 之前,先用专门的工具做一次"翻译"——把 PDF 转成 AI 真正能读懂的格式。

MinerU 是上海人工智能实验室做的一个开源工具,专门干这件事。GitHub 目前超过 6 万星标,Apache 2.0 协议,免费商用。

它的工作方式不是简单地按坐标扫文字,而是先"看懂"整份文档的结构:哪块是标题,哪块是正文,哪块是表格,哪块是图片,哪块是公式——就像一个人真正阅读文档时会做的判断。然后按照人类实际的阅读顺序输出内容,AI 拿到的才是结构完整、顺序正确的文本。

装起来其实很快

# 安装(3.0 之后包名从 magic-pdf 改成了 mineru)
pip install uv
uv pip install -U "mineru[all]"

# 第一次用需要下载模型(约 8GB,国内走镜像)
export HF_ENDPOINT=https://hf-mirror.com
mineru-models-download

解析一份 PDF 只需要一行命令

# 自动模式(MinerU 自己判断用哪个引擎)
mineru -p 你的文件.pdf -o 输出目录/ -m auto

# 精度优先(VLM 模式,复杂文档用这个)
mineru -p 你的文件.pdf -o 输出目录/ -m vlm

# 速度优先(pipeline 模式,简单文档够用)
mineru -p 你的文件.pdf -o 输出目录/ -m pipeline

输出的是干净的 Markdown 文件,直接可以扔给任何 AI 工具使用。


解析质量差多少——有数据说话

文档解析有一个专项评测基准叫 OmniDocBench,CVPR 2025 发布。下面是几个主流工具在这个评测上的得分对比:

工具

综合得分

文字提取

公式识别

表格识别

阅读顺序

MinerU 2.5-Pro

95.69

96.1

91.2

88.3

96.8

MinerU 2.5

90.7

93.2

87.4

85.6

94.1

Gemini 2.5 Pro

~89

~91

~83

~82

~88

GPT-4o

~85

~88

~76

~79

~84

LlamaParse

~76

82

65

74

78

Marker

~72

78

58

69

75

PyPDF2

~45

68

42

注意看 PyPDF2 那行:文字提取 68 分,公式和表格直接是零,阅读顺序 42 分。这是很多人默认用的工具,差距有多大一目了然。

MinerU 2.5-Pro 的公式识别和表格识别是最难拉分的两项,也是传统工具最容易翻车的地方。


三类场景,差距最明显

学术论文:几乎所有 arXiv 论文都是双栏排版,公式密集。用 PyPDF2 解析完再喂给 AI,AI 拿到的是左右两栏混排的乱文,摘要可能还行,细节全错。

财务报告:合并单元格的复杂表格,解析不对就是数据全错。MinerU 输出带行列结构的 HTML 表格,数字和对应的科目、期间都在正确的位置。

扫描版文件:合同、档案、有手写批注的材料,不经过 OCR 这一步,AI 读到的是空白。MinerU 自动检测是否是扫描件,是的话走 OCR 路径,支持 109 种语言,还能识别印章和竖排文字。


接到你的工具里也不麻烦

如果你在用 Claude Code 或者 Cursor,MinerU 有官方的 MCP Server,三分钟能配好:

pip install mineru-mcp

在 Claude Desktop 设置里加一段配置:

{
  "mcpServers": {
    "mineru": {
      "command": "uvx",
      "args": ["mineru-mcp"]
    }
  }
}

配置好之后,你直接跟 Claude 说"帮我解析这个 PDF",它会自动调用 MinerU,解析完再处理,不用你手动转格式。

如果你在用 Python 做自动化:

from langchain_mineru import MinerULoader

# 本地解析模式
loader = MinerULoader("research_paper.pdf", mode="local")
docs = loader.load()

# docs 是标准的 LangChain Document 列表
# 可以直接接 ChromaDB、FAISS 等向量库
for doc in docs:
    print(doc.page_content[:200])

一件值得顺带知道的事

MinerU 最近发了新版本(MinerU2.5-Pro),做了一件很反直觉的事:没有换更大的模型,只是把训练数据从 1000 万份文档扩充到了 6550 万份,重点补充了那些复杂的、罕见的文档格式。

结果用 12 亿参数的小模型,在评测里打败了谷歌 Gemini 和千亿参数级别的大模型。

这件事说明了一个很朴素的道理:要做好一件具体的事,不一定需要最大的通用工具,需要的是真正在这件事上下够功夫。

就像你要读懂一份化工行业的合同,不需要找最聪明的人,需要找一个真的读过很多化工合同的人。


这个工具本身是免费开源的。如果你在工作里经常需要 AI 处理文档,值得了解一下这一层到底是怎么工作的。

项目地址:github.com/opendatalab/MinerU技术报告:arXiv:2604.04771

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐