PDF、Word、HTML、Markdown、图片等文档解析工具MinerU和Docling
文章目录一多种文档解析意义二文档解析工具-MinerU2.1MinerU定位2.2 MinerU能干什么2.3 安装步骤2.3.2 CIL安装2.3 基本用法2.4 三种解析方式2.5 后端选择2.6 输出结果三文档解析工具-Docling3.1 Docling 定位3.2 Docling 能干什么3.3 安装步骤3.3.1 CLI 安装3.4 基本用法3.4.1 CLI 用法3.4.2 Python 用法3.5 PDF 解析配置3.6 输出结果3.7 文档分块3.7.1 HierarchicalChunker3.7.2 HybridChunker3.8 RAG 中的使用流程一多种文档解析意义我们需要把PDF、Word、HTML、Markdown、图片等不同文档解析成干净便于向量检索的文档。二文档解析工具-MinerU2.1MinerU定位MinerU 是一个文档解析引擎主要作用是把人类阅读的文档转换成机器容易处理的 Markdown、JSON 和图片。2.2 MinerU能干什么当前本地 CLI 文档明确列出的输入包括 PDF、图片、DOCX、PPTX、XLSX。2.3 安装步骤2.3.2 CIL安装# 创建虚拟环境uv venv .venv# 激活环境.venv\Scripts\Activate.ps1# 安装基础功能uv pipinstallmineru[core]# 检查安装mineru--versionmineru--help完整功能或源码开发可以使用gitclone https://github.com/opendatalab/MinerU.git Set-Location MinerU uv pipinstall-e.[all]2.3 基本用法纯 CPU 环境建议先使用 pipelinemineru-p.\samples\document.pdf-o.\output-bpipeline-mauto-lch参数含义参数作用-p输入文件或目录-o输出目录-b选择解析后端-m选择文字提取方式-lOCR 文档语言-s、-e指定开始页和结束页-t是否解析表格-f是否解析公式2.4 三种解析方式模式适用情况auto自动判断日常默认使用txtPDF 有完整且正常的文字层ocr扫描 PDF、图片 PDF、乱码 PDF示例# 自动判断mineru-pinput.pdf-ooutput-bpipeline-mauto# 强制直接提取文字mineru-pinput.pdf-ooutput-bpipeline-mtxt# 强制 OCRmineru-pinput.pdf-ooutput-bpipeline-mocr-lch2.5 后端选择后端特点建议pipeline传统解析流水线支持纯 CPU入门首选vlm-engine使用视觉语言模型复杂图文需要较多资源hybrid-engine结合多种解析能力GPU 环境和复杂文档vlm-http-client调用外部 VLM 服务服务化部署hybrid-http-client调用外部混合服务服务化部署当前版本的默认后端可能随版本变化因此以本机 mineru --help 为准。没有 GPU 时明确指定-bpipeline2.6 输出结果不同版本的具体文件名可能不同但主要有Markdown适合查看内容也可以用于简单分块。content list JSON按照阅读顺序保存标题、正文、表格、图片等元素最适合后续构建 RAG。middle JSON包含更详细的中间解析和版面信息适合排查问题。images从文档中提取的图片。可视化结果用于检查版面框和元素识别是否正确。RAG 中建议以 content list JSON 为主因为它比单纯 Markdown 更容易保留页码、类型和位置信息。三文档解析工具-Docling3.1 Docling 定位Docling 是一个多格式文档解析、转换和分块框架。它会把不同格式的文件统一转换成结构化的DoclingDocument。DoclingDocument可以继续导出为 Markdown、JSON、HTML或者直接进行 RAG 分块。Docling 支持完全本地运行文档不需要上传到云端。3.2 Docling 能干什么Docling 支持的主要输入格式包括 PDF、DOCX、PPTX、XLSX、HTML、Markdown、图片、EPUB、LaTeX、纯文本、邮件和部分音频格式。Docling 可以识别和保留以下内容内容解析结果标题保留标题及层级正文提取段落和阅读顺序列表保留列表结构表格识别行、列和单元格图片提取图片和图片标题扫描文字通过 OCR 识别公式和代码保留对应内容类型元数据保存来源、页码和位置信息3.3 安装步骤3.3.1 CLI 安装# 创建虚拟环境uv venv.venv# 激活虚拟环境.venv\Scripts\Activate.ps1# 安装 Doclinguv pip install docling# 检查安装docling--version docling--help使用 HuggingFace tokenizer 进行 RAG 分块时可以安装uv pip installdocling-core[chunking]3.4 基本用法3.4.1 CLI 用法转换成 Markdowndocling.\samples\document.pdf--to md--output.\output转换成 JSONdocling.\samples\document.pdf--to json--output.\output--to用于指定输出格式--output用于指定输出目录。3.4.2 Python 用法fromdocling.document_converterimportDocumentConverter converterDocumentConverter()resultconverter.convert(./samples/document.pdf)docresult.document markdowndoc.export_to_markdown()datadoc.export_to_dict()htmldoc.export_to_html()result.document是统一的DoclingDocument。后续导出、遍历元素和分块都基于这个对象进行。3.5 PDF 解析配置包含扫描页面和表格的 PDF可以启用 OCR 和表格结构识别fromdocling.datamodel.base_modelsimportInputFormatfromdocling.datamodel.pipeline_optionsimportPdfPipelineOptionsfromdocling.document_converterimportDocumentConverter,PdfFormatOption optionsPdfPipelineOptions(do_ocrTrue,do_table_structureTrue,)converterDocumentConverter(format_options{InputFormat.PDF:PdfFormatOption(pipeline_optionsoptions)})resultconverter.convert(./samples/document.pdf)docresult.document常用配置参数作用do_ocr对扫描页面和图片文字执行 OCRdo_table_structure识别表格行列和单元格结构generate_page_images生成完整页面图片generate_picture_images提取文档中的图片区域images_scale控制生成图片的清晰度do_picture_description使用视觉模型生成图片描述提取文档中的图片options.generate_picture_imagesTrueoptions.images_scale2.03.6 输出结果Docling 主要支持以下输出输出作用Markdown人工查看、结果校验和简单处理JSON保存完整的DoclingDocument结构HTML在网页中展示解析结果DocTagsDocling 使用的结构化标记格式DoclingDocument用于程序处理和 RAG 分块markdowndoc.export_to_markdown()json_datadoc.export_to_dict()htmldoc.export_to_html()doctagsdoc.export_to_doctags()RAG 项目建议直接使用DoclingDocument进行分块不需要先导出 Markdown 再重新解析。3.7 文档分块3.7.1 HierarchicalChunkerHierarchicalChunker根据标题、段落、列表、表格等文档结构进行分块。fromdocling.chunkingimportHierarchicalChunker chunkerHierarchicalChunker()chunkslist(chunker.chunk(doc))forchunkinchunks:print(chunk.text)3.7.2 HybridChunkerHybridChunker先按照文档结构分块再根据 tokenizer 控制 chunk 长度。超长内容会被拆分相邻且较短的同级内容可以合并。fromdocling.chunkingimportHybridChunkerfromdocling_core.transforms.chunker.tokenizer.huggingfaceimport(HuggingFaceTokenizer,)tokenizerHuggingFaceTokenizer.from_pretrained(model_nameBAAI/bge-m3,max_tokens512,)chunkerHybridChunker(tokenizertokenizer,merge_peersTrue,)chunkslist(chunker.chunk(doc))forchunkinchunks:embedding_textchunker.contextualize(chunk)print(chunk.meta.headings)print(embedding_text)分块器适用情况HierarchicalChunker强调标题和文档元素结构HybridChunker同时控制结构和 token 长度适合 RAG3.8 RAG 中的使用流程PDF、Word、HTML、Markdown、图片 ↓ DocumentConverter ↓ DoclingDocument ↓ HybridChunker ↓ BGE-M3 向量化 ↓ Milvus建议向量化chunker.contextualize(chunk)的结果。入库时保存正文、标题路径、页码、来源、内容类型和文档 ID。Markdown 主要用于人工检查JSON 用于保存完整解析结果DoclingDocument和 Chunker 用于正式的 RAG 入库流程。官方资料Docling 官方文档、Docling GitHub。

相关新闻

LangChain Go应用安全实战:7大关键策略防御提示词注入与资源滥用

LangChain Go应用安全实战:7大关键策略防御提示词注入与资源滥用

1. 项目概述:为什么LangChain Go应用需要专门的安全防护?最近在几个Go语言技术社区里,看到不少朋友在讨论用LangChain框架结合Go来开发AI应用。大家聊得热火朝天,都在说怎么快速集成大模型、怎么设计Agent流程、怎么提升RAG的召回…

2026/10/12 10:55:12 阅读更多 →
Python高效处理CSV数据的实战技巧与性能优化

Python高效处理CSV数据的实战技巧与性能优化

1. CSV数据处理的核心价值与痛点在数据密集型工作场景中,CSV格式始终保持着不可替代的地位。作为数据交换的"通用语言",CSV文件以纯文本形式存储表格数据的特点,使其在数据分析、系统迁移、报表导出等场景中展现出独特的优势。我处…

2026/10/11 18:38:41 阅读更多 →
2026年AI问答代运营服务选型与优化指南

2026年AI问答代运营服务选型与优化指南

1. 项目概述:AI问答代运营服务的市场现状 2026年的企业服务市场,AI问答代运营已成为中小企业数字化转型的标配需求。根据第三方调研数据显示,采用专业AI问答服务的中小企业客户转化率平均提升37%,客服人力成本下降52%。这个领域目…

2026/10/8 14:30:13 阅读更多 →

最新新闻

从信息焦虑到自动化日报:AI信息聚合与筛选的工程实践

从信息焦虑到自动化日报:AI信息聚合与筛选的工程实践

1. 当"日报"变成一场信息焦虑的自我救赎每天早上七点半,我的手机闹钟还没响,微信里已经躺着三条"AI日报"推送。点开一看,十条新闻里有八条是昨天在另一个号上刷到过的,剩下两条是标题党——"某大模型一夜…

2026/10/12 10:55:02 阅读更多 →
自适应OFDM的MATLAB仿真:链路搭建、信道估计与吞吐量优化

自适应OFDM的MATLAB仿真:链路搭建、信道估计与吞吐量优化

简介:自适应OFDM是面向无线通信研究者的MATLAB仿真实现包,聚焦OFDM与自适应调制结合,解决多径衰落及频率选择性衰落信道下动态选择BPSK/QPSK/16QAM/64QAM以降低误码率、提升频谱效率的问题。压缩包仅4个文件,包含3个MATLAB脚本&am…

2026/10/12 10:55:02 阅读更多 →
为ESP32多设备调试自建本地工作台:从SDK到工程流程管理

为ESP32多设备调试自建本地工作台:从SDK到工程流程管理

大概一年多前,我负责的一个设备类项目从原型阶段进入批量调试。那会儿我每天的工作路径非常固定:打开终端,先idf.py build编译,再用esptool烧录,最后打开一个串口工具看日志。说实话,这套基于官方 SDK 的流…

2026/10/12 10:55:02 阅读更多 →
人工智能|大模型——大语言模型提示词缓存详解(Claude Code案例):把 settings 改到 TaoToken 后如何验证缓存命中率

人工智能|大模型——大语言模型提示词缓存详解(Claude Code案例):把 settings 改到 TaoToken 后如何验证缓存命中率

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 10:55:02 阅读更多 →
Verilog编译指令实战指南:从宏定义到条件编译的工程化避坑

Verilog编译指令实战指南:从宏定义到条件编译的工程化避坑

1. 被大多数人忽略的编译指令:从“能跑就行”到“可控可维护”刚接触Verilog那会儿,我写代码的习惯很粗暴:模块能综合、仿真能跑通、上板子有波形,就算完事。直到有一次接手一个跨平台项目,同一份RTL代码在两家不同厂商…

2026/10/12 10:55:02 阅读更多 →
微波通信原理与工程实践:从链路预算到天线安装

微波通信原理与工程实践:从链路预算到天线安装

提到微波通信,很多刚入行或者正在学通信的朋友第一反应是:这东西是不是太老了?光纤都铺进了村里,5G基站密密麻麻,谁还用微波?说实话,我做了十来年通信工程,微波不但没被淘汰&#xf…

2026/10/12 10:54:02 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →