opendatalab/MinerU

跨页表格合并问题

Closed this issue · 5 comments

🔎 Search before asking | 提交之前请先搜索

  • I have searched the MinerU Readme and found no similar bug report.
  • I have searched the MinerU Issues and found no similar bug report.
  • I have searched the MinerU Discussions and found no similar bug report.

🤖 Consult the online AI assistant for assistance | 在线 AI 助手咨询

Description of the bug | 错误描述

发现跨页表格无法合并的原因,主要在于解析出来的空列会被自动合并,如第一页表格本来有6列,下一页的表格中后两列为空就会自动合并成4列,且colspan都为1。我在utils的table merge的合并逻辑中查到关于实际列数和视觉列数的匹配,但是问题不在于逻辑,可能出现在了表格解析所用的模型上

How to reproduce the bug | 如何复现

pipeline backend,cli mode,只要出现这一列所有单元格内都为空就会消失在解析出的html标签中

Operating System Mode | 操作系统类型

MacOS

Operating System Version| 操作系统版本

macos

Python version | Python 版本

3.10

Software version | 软件版本 (mineru --version)

2.0.x

Device mode | 设备模式

mps

Hi @Hlizzzzz! I'm Dosu and I’m helping the MinerU team.

你反馈的跨页表格空列丢失问题,确实是 MinerU 2.0.x 版本表格解析模型的已知局限:当某一列整页为空时,模型直接省略该列,导致后续合并时列数不一致,无法正确跨页合并。merge 逻辑本身只做结构比对和拼接,没有能力“补全”被模型省略的空列,也没有任何配置项可以强制保留空列或自定义合并行为(merge 逻辑假设输入 HTML 结构一致)代码参考

这个问题在 2.2.0 及 2.5.0 版本有了显著改善:新模型和混合结构解析算法大幅提升了表格结构还原能力,跨页合并准确率和空列保留效果都更好升级说明。如果可以,建议直接升级到 2.5.0 或更高版本。

如果暂时无法升级,唯一的变通办法是后处理:根据首页表头结构,手动补全后续页缺失的空列(如用空字符串填充),再合并为统一结构。

总结:2.0.x 没有配置项或代码层 workaround,根因在模型,升级新版本是根本解决方案。

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

@dosu 如何更新pipeline?modelscope上下载的版本pdf-extract-kit-1.0不是最新版本吗?

目前 pipeline 模式下,无论是 ModelScope 还是 HuggingFace,唯一支持的模型就是 pdf-extract-kit-1.0,没有更高版本。所有表格解析和跨页合并的准确率提升,主要来自 MinerU 主程序本身的升级(比如 2.5.0+),而不是 pipeline 模型包的更新。如果你已经从 ModelScope 下载了 pdf-extract-kit-1.0,就是最新版,无需额外更新模型包。

如需获得最新的表格解析能力,建议升级 MinerU 到最新版本,并用如下命令重新下载 pipeline 模型并自动配置路径(如有仓库迁移或模型包更新时):

mineru download-models -s modelscope -m pipeline

升级后,mineru.json 的 models-dir.pipeline 路径应指向新下载的 models 目录即可。VLM 模式(vlm-transformers/vlm-vllm)才用到了 MinerU2.5-2509-1.2B 等新模型,pipeline 模式暂未支持参考

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

pipeline的表格模型对空列会做删除处理,主要原因是模型经常会在正常的表后增加额外空列。而单元格的合并操作对行列的匹配程度要求较高,如果对表格合并需求较强,可以切换至vlm模型,拥有更高的表格结构识别精度与更好的合并效果

有没有参数可以控制是否开启表格合并,某些场景下,不太希望跨页表格合并