MinerU-Popo来了:让文档解析从“看懂每页”走向“读懂整篇”

MinerU 生产级部署实战:基于 Docker Compose 与 vLLM 的高可用解析服务搭建 本文详细介绍了基于Docker Compose与vLLM搭建MinerU高可用PDF解析服务的实战指南。从环境准备到生产级部署,涵盖GPU加速配置、Docker Compose编排、高可用方案设计等关键环节,帮助开发者快速构建高性能的PDF结构化解析服务,显著提升文档处理效率。 阅读详情

近年来,以 MinerU 为代表的智能文档解析系统,已经能在单页范围内识别标题、正文、图片、表格等元素,并输出文本内容、边界框和阅读顺序。

这种方式已经能很好地回答“这一页有什么”,但是 RAG、知识库和 Agent 工作流真正需要的,不只是每一页识别出了哪些文字和表格,更是整篇文档能否被还原成连续、准确、可检索、可分析的文档级语义结构。

日前,上海人工智能实验室OpenDataLab团队联合上海交通大学等单位提出 MinerU-Popo,一个面向 OCR 输出的轻量、通用后处理框架,基于4B 参数的微调模型,适用于修复跨页表格合并、跨页段落拼接、标题层级补齐、图文关联问题,可以将页面级解析结果转化为连贯的、可用于检索和分析的文档树结构,有效增强各类文档解析模型能力。

MinerU-Popo 支持本地私有化部署,模型轻量高效,适合大规模文档处理场景,欢迎使用。


技术报告:https://arxiv.org/abs/2605.24973
代码仓库:https://github.com/opendatalab/MinerU-Popo
开源模型:https://huggingface.co/DreamEternal/MinerU-Popo


一、为什么不用传统方式?

要解决跨页表格合并、跨页段落拼接、标题层级补齐、图文关联问题,传统做法要么继续提升单页 OCR 精度,要么用规则拼接段落、归并标题或合并表格。但前者受限于页面边界,后者面对金融报告、学术论文、政务材料、医疗文书等多样版式时,往往难以泛化和持续迭代。

更重要的是,不同 OCR 系统的输出标签、元素粒度和结构格式并不完全一致,单独为每个系统维护一套后处理逻辑,成本高且复用性有限。


MinerU-Popo 的思路更直接,不是重新训练一个庞大的端到端文档解析系统,也不是让模型把 PDF 再识别一遍,而是选择复用已有 OCR 或版面解析模型的页面级结果,并在统一标签空间中进一步恢复文档级逻辑结构。通过标签对齐机制支持对接多种主流 OCR 系统——不同 OCR 模型的输出标签可以通过轻量规则归一化为统一标准(如 title、text、image、table 等),从而实现即插即用。


二、MinerU-Popo 技术框架

MinerU-Popo 将文档后处理拆解为四个核心任务:文本截断恢复、表格截断恢复、标题层级重建和图文关联。通过这些任务,它可以判断断开的段落是否应合并,分页表格是否属于同一张表,标题之间的父子关系如何组织,以及图片、表格与 caption 应该挂载到哪个章节下。

围绕这些任务,MinerU-Popo 设计了面向任务的数据引擎、动态分块与同步、文档丰富化三大模块:先筛掉无关元素,再处理长文档分块边界,最后生成文档树和节点摘要,让输出更适合检索、问答和分析。


1. 面向任务的数据引擎:先筛出真正有用的信息

训练数据质量直接影响模型效果。MinerU-Popo 会先从大规模真实 OCR 文档中,利用 VLM 按视觉外观、版面特征、文档格式、内容领域和页面长度等维度进行筛选,并按领域和长度分组采样,确保数据覆盖金融、学术、政务、医疗等多种文档类型。

随后,它会针对不同子任务做任务特定过滤:标题层级分析主要保留 title,图文关联保留 title、caption、image、table,文本截断只关注候选文本块的首尾句,表格截断则重点定位页面边界处的表格候选对。这样模型不必处理整篇文档里的所有冗余信息,而是聚焦最相关的结构线索。

2. 动态分块与同步:让长文档既能切开处理,又保持全局一致

即使经过过滤,长文档仍然很难一次性处理。简单固定分块又会带来新问题:分块边界处的文本截断可能被漏掉,后续块也可能因为缺少全局标题上下文而误判章节层级。

为此,MinerU-Popo 采用动态分块与同步策略:通过三页重叠分块保留跨页参考信息,在搜索窗口内动态确定分块边界;再利用重叠区域中相同元素的预测结果计算层级偏差,校正后续块预测;对不涉及层级偏差的任务,则合并各块结果。消融实验显示,这一策略使标题层级 TEDS 从 85.8% 提升至 90.6%,文本截断召回率从 86.6% 提升至 93.8%。

3. 文档丰富化:把预测结果组装成可用的文档树

模型完成段落连接、表格合并、标题层级和图文关联预测后,还需要把结果转成下游真正能用的文档表示。

MinerU-Popo 会基于标题层级构建章节父子关系,把文本段落、合并后的表格和关联图片挂载到对应章节节点下,形成结构化文档树。为了让这棵树更适合检索和分析,它还会做语义丰富化:当节点内容过长时,在段落边界处切分;当标题过短、检索粒度不足时,利用 LLM 为节点生成摘要,提炼关键论点、方法、趋势或结论。最终得到的文档树兼顾结构、粒度和信息完整性,可为 RAG、问答和文档分析提供高质量输入。


三、效果如何?

实验显示,五种主流 OCR 模型经过 MinerU-Popo 后处理后,标题层级 TEDS 提升均超过 20 个百分点。充分验证了后处理框架的通用性和有效性。


在完整训练集上,MinerU-Popo :

● 文本截断分析精确率 87.8%、召回率 93.8%;

● 图文关联分析精确率 87.0%、召回率 79.5%;

● 标题层级 TEDS 达到 90.6%;

● 表格截断合并方法预测准确率 92.7%。

更有意思的是,MinerU-Popo 以 4B 参数量超越了 32B 的无微调通用模型(90.6 vs. 78.0),同时推理速度是同等规模模型的近两倍(0.37 vs. 0.20 文档/秒)。


下游检索分析与直接问答任务中,经过 MinerU-Popo 后处理后的文档结构,在多个 RAG 子集上超过原始 OCR 基线,并通过更简洁的节点标题和摘要降低检索延迟。


在端到端问答任务中,从文档树导出的 JSON 和 Markdown 格式也取得了更好的整体准确率。


这意味着,MinerU-Popo 解决的并不是“多识别几个字”的问题,而是复杂文档进入知识库和 Agent 工作流后,信息能被稳定召回、准确理解、可靠使用。


四、写在最后

从 MinerU2.5 到 MinerU-Popo,文档解析正在从单页精度竞争,进一步走向文档级语义结构恢复。前者让模型更准确地看懂页面,后者让系统更完整地读懂整篇文档。

面向未来,复杂文档能否高质量转化为 AI-Ready 数据,将直接影响大模型应用的可用性。MinerU-Popo 正是在这条链路上补上关键一环:让页面级 OCR 输出,真正变成可检索、可分析、可进入智能工作流的文档结构。

技术报告:https://arxiv.org/abs/2605.24973
代码仓库:https://github.com/opendatalab/MinerU-Popo
开源模型:https://huggingface.co/DreamEternal/MinerU-Popo

MinerU-Popo:面向 RAG 的文档级 OCR 后处理框架 MinerU-Popo 是一个轻量级 OCR 后处理框架,通过四个聚焦子任务(文本/表格截断恢复、标题层次重建、图像-文本关联)将页面级 OCR 输出转换为连贯的文档级结构,在保持轻量部署的同时显著提升 RAG 系统的准确率和响应速度。 阅读详情

相关推荐

Android System Slice应用加载分析,及启用Slice后,锁屏日期第一次开机正常显示,但后面锁屏不显示问题分析

最近发现Android P上锁屏界面,日期不显示,发现从P开始后,出现了Slice来允许应用以模块化,可交互的方式,插入多个使用场景。Android P的system UI 也使用到了这一特性,表现为锁屏时间,日期,勿扰图标,闹钟等。 如何使用Slice 以System UI中KeyguardSliceView.java来说明它的使用方法 首先,我们打开System UI 的mk 文件,可以看到以...

qq_33595823的博客 3036

从 OCR 到文档结构理解:MinerU-Popo 对 RAG 文档解析链路的补全

MinerU-Popo:从OCR到文档智能的结构化跃迁 【摘要】 传统OCR技术虽能识别页面元素,却无法还原文档级结构关系,导致RAG系统在处理复杂PDF时面临信息割裂问题。MinerU-Popo创新性地提出四层后处理框架:通过文本续接分析修复跨页内容断层,基于上下文推理构建标题层级树,建立图文表跨页关联网络,并实现智能表格合并。该方案将扁平化的OCR输出转化为带章节路径、父子关系的JSON文档树,使Agentic RAG能沿结构推理,让检索结果具备"3.1.2节-表5"级精确引用能力。实验证明,该框架可有

零基础学Android专栏 506

盘点军工行业软件研发的那些常用GJB标准

GJB5000、2786、438、141、102、8114等...

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 9471

从 “读懂一页“ 到 “读懂一篇“:MinerU 与 MinerU-Popo 文档解析全解析

构建 RAG、知识库或 Agent 工作流时,第一步往往不是选向量数据库,而是把 PDF 解析干净。一份排版复杂的学术论文、一张嵌套表格的财务报告,用传统 PDF 工具提取出来的内容要么乱序、要么公式变乱码、要么表格被打散成无意义的文字流。更麻烦的是,页面级解析和文档级理解之间有一条巨大的鸿沟:OCR 工具能 “读懂每一页”,但页边界会切断段落、劈开表格、丢失标题层级,把图片和它的图注拆散到不同页面。

huanxingchen1的博客 312

主动式桥梁防船撞预警系统的方案汇总

本系统以精密光电测高前端(2台,上下游各1台)、固态雷达(2台,上下游各1台)、AIS(1台)、偏航辅助前端(4台,上下游各2台)为核心,通过人工智能,对画面上的船舶目标进行深度学习、精确定位,再用系统集成方法将各设备有机结合在一起,构建成套的桥梁防撞主动预警系统,全天候监控过往船舶。主动式桥梁防船撞预警系统主要船舶监测采集单元、控制单元、船舶超高、偏航信息检测单元、以及视频监控单元组成,,通过声光警示、短信文字、船舶身份识别及海事对讲频道、视频录像取证等多种手段与船舶进行信息互动,主动防止船舶碰撞桥梁!

gdxixun的博客 980

基于STM32L4XX、HAL库的BQ25713RSNR充电芯片驱动程序设计

define BQ25713_I2C_ADDR (0x6B << 1) // 7位地址为 0x6B,HAL库需要左移一位。// 示例:配置 CHARGE_OPTION_0 寄存器:使能充电,使能 ICO(输入电流优化)reg_data |= (EN_CHG_MASK | EN_ICO_MASK);

zhusl6688的博客 406

不是 OCR 不够强,而是你还缺一个“文档大脑”——MinerU-Popo 到底是什么?

MinerU-Popo是一款专注于OCR后处理的轻量级框架,其核心价值在于将页面级OCR识别结果重构为具有完整语义结构的文档树。该框架解决了跨页表格合并、断裂段落重组、标题层级还原、图文关联等关键结构性问题,而非单纯提升OCR识别精度。通过任务导向数据引擎、动态分块同步和文档语义增强等技术,其在保持处理效率(0.37Doc/s)的同时显著提升结构化指标(如TEDS从53.7提升至90.6)。特别适用于PDF解析、RAG知识库构建等需要保持文档逻辑完整性的场景,弥补了传统OCR"看得见但读不懂&qu

高丽大学人工智能硕士在读|专注大模型、RAG、OCR与AI工程实践 908

基于 高斯过程回归(Gaussian Process Regression, GPR) 的 时间序列区间预测 的 MATLAB 示例代码

基于 高斯过程回归(Gaussian Process Regression, GPR) 的 时间序列区间预测 的 MATLAB 示例代码

算法如诗的博客 155

MinerU-Popo: Universal Post-Processing Model for Structured Document Parsing——面向结构化文档解析的通用后处理模型

MinerU-Popo: Universal Post-Processing Model for Structured Document Parsing——面向结构化文档解析的通用后处理模型

Together_CZ的博客 521

微信小程序推广策略,打开小程序领域流量大门

本文旨在为小程序开发者、运营者和企业主提供一套完整的微信小程序推广策略体系,帮助他们在竞争激烈的小程序生态中获得更多流量和用户。内容涵盖从0到1的冷启动策略,到成熟期的增长技巧。本文将首先介绍小程序的基础推广设置,然后深入探讨各种流量获取渠道,接着分析数据驱动的优化方法,最后展望未来发展趋势。小程序:无需下载安装即可使用的应用,运行在微信生态内:独立访客数:页面浏览量转化率:完成目标行为的用户比例留存率:用户在一定时间后仍活跃的比例自然流量获取:通过优化搜索、完善资料等方式获得基础流量社交裂变。

小程序开发 1031

K8s-K8s部署Zookeeper+Kafka+ELFK+持久化数据

K8s环境下容器化部署`Zookeeper+Kafka+ELFK`日志收集系统

✅ 专注企业级 Linux/DevOps 运维的实战派 ✅ 已输出上百篇可落地方案 ✅ Shell 脚本开箱即用 ✅ K8s/YAML 环境验证 ✅ 故障排查链路完整复现 1916

多模态文档解析后处理开源模型:MinerU-Popo方案思路提升RAG性能

在RAG场景,需要。MinerU-Popo是一个后处理方案,在后对文档级结构进行重构。

余俊晖,NLP炼丹师,目前专注自然语言处理领域研究。曾获得国内外自然语言处理算法竞赛TOP奖项近二十项。 352

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

别只卷 Parser 主干了:最近一周文档解析开始转向“校正层”,MinerU 该放在什么位置

关键点不是“有没有 correction”,而是“只修高价值错误,不要把本来正确的部分也重写坏了”。MinerU 不该只被放在“生成结果”这一步,更适合放在“先判断这份结果能不能进下游”这一步。这也是为什么企业知识库和科研论文处理比普通 OCR 更难,因为它们真正依赖的是文档级连续性。没有这一步,后面的 chunk、检索、规则抽取、审批和 Agent 工具调用都会更脆弱。字段名、状态名和下载字段请以你运行当天的官方 API 文档为准。这比单纯追一个更高的 OCR 指标,更接近企业今天真正会部署的系统。

m0_61134850的博客 374

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

多页文档解析进入 Agent 验收阶段:MinerU 能否成为企业知识库的稳定入口

文档解析领域正从OCR准确性转向Agent可用性,MinerU作为新一代解析基础设施,支持多格式输入(PDF/DOCX/PPTX等)并输出结构化数据(Markdown/JSON),保留标题、表格等关键信息,适合企业知识库、科研数据处理和Agent工作流。其价值在于降低上下文损耗,但需注意并非万能,仍需人工核验低质量文档。文章提供了可复现的实验方案评估解析效果,建议测试多页复杂文档的阅读顺序、标题层级、表格结构等关键维度。 (149字)

m0_61134850的博客 549

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MinerU 3.3 之后,企业知识库为什么该重做文档入口:一套面向 Agent 的多页解析验收方案

文档解析领域近期从OCR准确性转向关注Agent和知识库的实用性,评测重点转向语义格式、跨页表格等结构化能力。MinerU作为文档解析基础设施,支持多种格式输入和结构化输出(Markdown/JSON),保留标题层级、表格等关键信息,并提供丰富的接入方式(API/SDK等)。其价值在于为Agent和知识库提供稳定入口,但仍需后续处理和人工验收。当前主线版本已更新至3.3,评测方案应注重可消费性而非单纯文本识别,建议选取真实复杂文档进行结构化能力验证。使用需注意版本差异和官方实时文档的更新。

m0_61134850的博客 678

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MinerU如何处理跨页表格?长文档连续解析的分块策略实战

本文介绍了基于星图GPU平台自动化部署OpenDataLab MinerU 智能文档理解镜像的实践方案。该平台支持高效部署MinerU2.5-1.2B等轻量级文档理解模型,适用于长文档中跨页表格的连续解析场景,通过语义分块与上下文融合策略,实现高精度表格结构重建,助力企业知识管理、金融报告分析等AI应用开发。

weixin_30951515的博客 243

MCP 热起来以后,企业知识库缺的不是聊天框:MinerU 能补上的,是可验证的文档入口层

文档解析技术演进:从基础OCR到Agent工作流入口治理 近期行业技术发展表明,文档解析领域正从基础OCR能力向结构化输出和Agent工作流集成演进。2026年发布的多个评测基准(ParseBench、MPDocBench-Parse等)将重点转向跨页表格、语义连续性和文档级逻辑结构恢复,反映出企业知识库和Agent系统对高质量文档入口层的迫切需求。 核心观点: MinerU等工具的价值在于提供结构化输出(Markdown/JSON/HTML),而非单纯文本提取 文档解析质量直接影响后续RAG、Agent工

m0_61134850的博客 231

MinerU政府公文提取实战:红头文件格式还原详细步骤

本文介绍了如何在星图GPU平台上自动化部署MinerU 2.5-1.2B 深度学习 PDF 提取镜像,高效还原政府红头文件格式。该镜像可精准识别国徽、红标题、多级编号、嵌套表格及签章区域,实现政务公文从PDF到结构化Markdown的一键转换,显著提升公文处理效率与准确性。

weixin_35370061的博客 847

MinerU智能文档服务效果展示:多语言混合文档(中英混排/日文PDF截图)准确识别

本文介绍了如何在星图GPU平台上自动化部署MinerU智能文档理解服务镜像,高效处理中英日多语言混合文档。该镜像可精准识别PDF截图中的混排文本、数学公式与表格结构,典型应用于跨国企业财报解析、学术论文数字化及技术文档本地化等场景。

weixin_42511373的博客 217

【智能体学习】pdf转md——MinerU 集成与应用指南:从 API 调用到 LangGraph 节点

MinerU 提供两种文档解析 API,满足不同场景需求。实践说明Token 管理通过环境变量管理,定期检查有效期超时设置轮询超时建议 300-600 秒,批量任务取 600 秒以上三级匹配优先<stem>.md→ 其次full.md→ 最后取第一个.md,适应不同文件命名错误分类仅对5xx和网络/超时异常实施指数退避重试,4xx直接报错批量上传先收集失败清单,最后统一报错,便于一次性修复资源清理tempfile与配合手动清理,确保临时文件不残留请求复用使用复用连接,设置避免代理干扰。

d1005u的博客 1050

暴雨也挡不住交流热情,MinerU 开发者线下沙龙上海站圆满收官!

5月24日,MinerU开发者沙龙在上海成功举办,吸引了众多开发者和AI实践者参与。活动围绕科学数据赋能AGI4S展开,重点介绍了Sciverse科学智能数据库的三层数据体系,以及MinerU在文档解析技术上的迭代进展。此外,会议还探讨了科学数据质量评测体系的重要性,强调了解析准确性和检索相关性的关键作用。现场交流环节气氛热烈,参与者就实际应用场景提出具体问题。本次活动促进了开发者与MinerU团队的深度互动,为未来技术发展和生态建设提供了宝贵反馈。

OpenDataLab的博客 228

告别手动录入!MinerU智能文档理解服务保姆级使用指南

本文介绍了如何在星图GPU平台上自动化部署📑 MinerU 智能文档理解服务镜像,实现高效文档处理功能。该服务能精准解析PDF、扫描件等复杂文档,支持智能问答和结构化数据提取,特别适用于财务分析、法律文书处理等场景,大幅提升办公效率。

weixin_32673065的博客 346

别急着把 PDF 交给 Agent:MCP 解析网关才是知识库上线前的胜负手

本文探讨了2026年文档解析技术的发展趋势,指出传统"PDF转文本"模式已无法满足MCP时代的需求。文章提出"解析网关"新范式,强调文档解析应具备授权、观测、审计等系统级能力,而非单一功能工具。 通过对比四类技术路线,作者认为MinerU的价值在于其结构化输出、多格式支持和系统集成能力,特别适合企业知识库、科研数据管线和MCP/Agent系统。文章反对简单功能对比,主张从系统集成、失败处理、版本治理等维度评估解析方案。 核心观点包括: 文档解析应升级为包含权限管理、任务编排的"网关"层 MinerU的优势在

m0_61134850的博客 309

MinerU 3.4.5 + Magic-PDF:中文PDF结构化解析与Markdown生成实战指南

PDF结构化解析是构建高质量RAG知识库、教材数字化和文档自动化归档的核心基础能力。其本质是融合版面分析(Layout Analysis)、OCR文本识别与公式/表格语义理解的多模态文档理解过程,而非简单字符提取。Magic-PDF作为MinerU的视觉中枢,通过中文排版强适配、表格结构保真引擎和LaTeX公式智能隔离三大能力,显著提升标题层级识别准确率、跨页表格还原度及数学表达式源码级捕获质量。该技术已广泛应用于高校教材数字化、技术文档知识图谱构建与企业内部知识中台建设等场景,尤其适合处理含多栏布局、扫描

weixin_31715171的博客 221
上一篇: 干货满满丨MinerU 3.0 系列更新:一次不止于模型的全面进化
下一篇: 暴雨也挡不住交流热情,MinerU 开发者线下沙龙上海站圆满收官!
OpenDataLab
博客等级 码龄4年 636粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值