信息速览
PubTabNet
§0 导读:这个数据集解决什么问题
在生物医学文献里,数据往往不在正文句子里,而在表格里。遗传数据库整理领域的一组经典数字是:只有 2% 到 8% 的信息出现在文章的叙述性文本中,其余绝大部分埋在表格或附录的表列结构里。要把这些信息变成机器可读、可检索、可比对的知识,第一步就是把版面上那张渲染好的表格图像还原成结构化的数据——这一步在学术圈有个专有名词,叫做图像表格识别(image-based table recognition)。
这个任务的困难之处在于:表格是排版给人看的,不是给机器看的。人类一眼就能看出表头在哪、行列如何对齐、某个跨行跨列的合并单元格覆盖了哪些位置,但对算法来说,一张 PDF 截图或扫描图像里的表格几乎没有先验结构——不同期刊的排版风格千差万别,三线表、全框线表、嵌套多层表头、跨行跨列合并单元格应有尽有。要让深度学习模型学会这件事,第一步是需要一个足够大、足够多样、标注足够干净的训练集。
2019 年之前,这个领域的公开数据集几乎都停留在几百到几千张的量级:ICDAR2013 只有 156 张表,ICDAR2019 也不到 4 千张,SciTSR 约 1.5 万张。用这么小的数据训练深度模型,就像用几句话教一个人认字。2019 年 11 月,IBM Research Australia 的 Xu Zhong、Elaheh ShafieiBavani 和 Antonio Jimeno Yepes 发布了 PubTabNet——一个包含 568k+ 张表格图像及对应 HTML 结构化标注的数据集,规模直接比此前最大的同类数据集放大了一个数量级以上,至今仍是图像表格识别领域事实上的基准。
PubTabNet 的聪明之处在于它的标注方式:完全自动生成。 PubMed Central(PMC)开放获取子集里的每篇论文同时有 PDF 和 XML 两种表示——PDF 是排版后的呈现层,XML 是出版社提供的结构层。把两者在表格区域上做匹配对齐,就能让 XML 里的表格结构信息自动「贴」到 PDF 对应的图像区域上,得到图像与 HTML 标注的成对样本,全程不需要人工看一眼。这个思路与 IBM 同期发布的 PubLayNet(文档版面分析数据集,ICDAR 2019 最佳论文)一脉相承,构成了「用 PMC 自动生产文档理解数据集」的方法家族。
数据集之外,这篇论文还给出了两件后来被整个领域反复引用的遗产:一是 EDD(encoder-dual-decoder)模型——一个编码器加两个解码器(结构解码器负责还原表格骨架,单元格解码器负责识别格内文字)的注意力架构,在测试集上取得 0.883 的平均 TEDS;二是 TEDS(Tree-Edit-Distance-based Similarity)评测指标——把表格建模为树、用树编辑距离衡量识别结果与真值的相似度,解决了此前 Hurst 关系型指标忽略空单元格、忽略全局结构、无法细分 OCR 错误的三大缺陷。今天几乎所有表格识别论文的实验表格里都有 TEDS 这一列,而它们的训练集十有八九就是 PubTabNet。
对医学 AI 从业者而言,PubTabNet 的价值有三层:其一,它是把海量医学文献表格结构化的基础设施——任何想从 PMC 文献里抽取临床试验入排标准、药物剂量表、基线特征表(Table 1)的下游系统,几乎都要先过表格识别这一关;其二,它是多模态大模型时代难得的结构化输出训练料——表格图像到 HTML 的映射天然是「图像输入、结构化输出」的任务形态,与当下视觉语言模型的 JSON/HTML 生成训练直接兼容;其三,它是一套经过 ICDAR 2021 国际比赛检验的评测协议,可以做横向对比。
本条目将从数据构成、自动标注流水线、任务与格式、EDD 与 TEDS、双层许可(标注 CDLA-Permissive 与图像 PMC 条款的分层)、获取方式、生态影响、避坑清单等十个维度,把这个数据集讲透。全文以论文(arXiv:1911.10683,ECCV 2020)、官方 GitHub 仓库(ibm-aur-nlp/PubTabNet)与许可文档(LICENSE.md 及 CDLA/PMC 官方条款)三源互证为准。
§1 数据集速览:十问十答
问 1:PubTabNet 到底是什么?
一个面向图像表格识别(image-based table recognition)的大规模数据集,包含 568k+ 张表格图像,每张配有对应的 HTML 结构化标注(表格骨架 + 单元格文本 + 非空单元格边界框)。目标是训练与评测「从表格图像直接输出机器可读 HTML」的模型。官方 GitHub 仓库为 ibm-aur-nlp/PubTabNet,论文发表于 ECCV 2020(arXiv:1911.10683)。
问 2:规模有多大?比前人大多少?
568k+ 张表格图像。对比同期:ICDAR2013 表格识别子集 156 张、ICDAR2019 约 3.6k 张、SciTSR 约 15k 张、Table2Latex 450k 张(LaTeX 输出、非 HTML)。PubTabNet 是发布时最大的公开表格识别数据集,且是其中唯一同时提供 HTML 结构与单元格文本成对标注的最大集合。
问 3:数据从哪来?标注是人工的吗?
来源是 PubMed Central 开放获取子集(PMCOA)中的已发表论文,具体取自其中允许商用的 commercial use collection。标注完全自动生成:把每篇文章的 PDF 表示与 XML 表示做匹配,在两者共同认定的表格区域上,用 XML 中的表格结构信息自动标注 PDF 图像,零人工介入。这也意味着标注质量取决于出版商 XML 的规范性。
问 4:怎么划分 train/val/test?
论文口径:按 60%/20%/20% 随机划分,训练集 548,592 个样本。由于含跨行跨列合并单元格的复杂表格占比很小,原始 20% 的 dev/test 集会偏向简单表格,作者因此从原始 dev/test 池中各均衡抽取了「有跨格 5,000 + 无跨格 5,000」共 10,000 张作为开发集、10,000 张作为测试集,以更好地暴露模型在复杂结构上的短板。注意:HuggingFace 镜像(ajimeno/PubTabNet)常见口径与此不同(train/val/test 约 507,560/60,309/600),复现实验前务必确认切片(详见 §2.4 双口径存照)。
问 5:标注格式长什么样?
JSONL(jsonlines)格式,每行一个样本,字段包括:filename(PNG 文件名)、split(train/val/test)、imgid(序号)、html.structure.tokens(thead/tbody/tr/td 结构 token 序列,含 colspan/rowspan)、html.cell(单元格列表,每个含 tokens 文本,非空单元格附 bbox 坐标)。表格被建模为树:根节点下分 thead(表头)与 tbody(表体),行是 tr,叶节点是 td。完整结构示例见 §4.3。
问 6:官方配套模型是什么?成绩如何?
EDD(encoder-dual-decoder):一个 CNN/RNN 编码器提取图像视觉特征,结构解码器(隐藏层 256)先生成表格结构 token,单元格解码器(隐藏层 512)再在结构引导下识别格内文本,两解码器均带软注意力,推理用 beam search(beam=3)。在测试集上平均 TEDS 0.883(简单表 0.912 / 复杂表 0.854),比同数据训练的 WYGIWYS 基线高 9.7% 绝对值,也大幅领先 Acrobat Pro、Camelot、Tabula 等现成工具。注意:EDD 模型源码因法律约束未公开,官方只发布了 TEDS 代码与数据集。
问 7:TEDS 是什么?为什么重要?
Tree-Edit-Distance-based Similarity:把真值表格与识别结果都建模为树,用树编辑距离(插入/删除代价 1,td 节点替换代价按跨格属性与文本 Levenshtein 相似度计算)除以两树节点数的最大值取相似度。它同时惩罚结构错误(行列错位、跨格属性错)与内容错误(OCR 级别的字符差异),且能感知空单元格与全局结构——这些恰是旧的 Hurst 关系型指标的盲区。TEDS 已成为表格识别领域的事实标准指标。
问 8:许可怎么算?能商用吗?
双层许可,必须分开看:标注(JSONL 文件)为 CDLA-Permissive 1.0,IBM 版权,允许自由使用、修改、再分发,商用无碍;表格图像(PNG)IBM 不持有版权,遵循各源文章的 PMC Open Access Subset 条款——本数据集取自 commercial use collection,研究性使用普遍没问题,但任何商用或再分发图像的行为都应逐篇核对原始文章的许可条款。源码(src/,含 TEDS 实现)为 Apache-2.0。详见 §6 的分层说明。
问 9:在哪下载?文件多大?
官方 GitHub 仓库 README(2025 年 7 月最后更新)将获取入口指向 HuggingFace 数据集 ajimeno/PubTabNet(作者本人账号);ICDAR 2021 Scientific Literature Parsing Task B 的比赛测试集与真值另行发布于 github.com/ajjimeno/icdar-task-b。全量图像加标注为数十 GB 量级,建议预留磁盘并分段下载。早期 Zenodo 分发链已被 HF 镜像取代。
问 10:它和库内哪些条目是亲戚?
同源(PMCOA)兄弟:本库已收录的 pmc-oa、pmc-oa-subset、open-pmc、pubtator-central、pubmedqa、pmc-vqa 全部来自同一个 PMC 开放获取生态,只是切面不同——那些条目拿的是全文文本或图文对,PubTabNet 拿的是表格切面。姊妹数据集 PubLayNet 同出 IBM 澳洲研究院同一方法(PDF-XML 对齐),只是切的是版面区域而非表格。互链明细见 §9。
§1.5 一页速查卡
| 维度 | 内容 |
|---|---|
| 名称 | PubTabNet |
| 发布方 | IBM Research Australia |
| 首发时间 | 2019-11(arXiv),2020-07 ECCV 2020 接收 |
| 版本 | 2.0.0(2020-07-21:加 bbox、json 改 jsonl) |
| 规模 | 568k+ 表格图像 + HTML 标注 |
| 论文口径划分 | 60/20/20,train 548,592;dev/test 各 10,000(跨格/无跨格各半) |
| HF 镜像口径 | train/val/test ≈ 507,560/60,309/600(双口径,见 §2.4) |
| 任务 | 表格图像 → HTML(结构 + 单元格文本) |
| 标注方式 | PDF/XML 自动对齐,零人工 |
| 配套模型 | EDD,平均 TEDS 0.883 |
| 评测指标 | TEDS(树编辑距离相似度) |
| 标注许可 | CDLA-Permissive 1.0 |
| 图像许可 | PMC Open Access Subset 条款(commercial use collection) |
| 源码许可 | Apache-2.0(TEDS 代码) |
| 获取 | GitHub ibm-aur-nlp/PubTabNet → HF ajimeno/PubTabNet |
| 比赛集 | ICDAR 2021 SLP Task B(ajjimeno/icdar-task-b) |
| 姊妹数据集 | PubLayNet(同法生产,ICDAR 2019 最佳论文) |
§2 数据构成与规格
§2.1 总体构成
PubTabNet 的每一个样本都是一对物料的绑定:一张表格区域的 PNG 图像(从源论文 PDF 中裁出),和一份 HTML 结构化标注(从源论文 XML 中提取并自动对齐)。全库 568k+ 对,覆盖 PMCOA commercial use collection 中数千种期刊的排版风格——从单栏的保守型医学期刊到双栏的工程类刊物,从三线表到多层嵌套表头,风格异质性正是这个数据集最有训练价值的地方。论文在相关工作对比表中给出的定位是:与 Marmot(958)、PubLayNet(113k,版面)、DeepFigures(1.4m,仅检测)、ICDAR2013(156)、ICDAR2019(3.6k)、UNLV(558)、TableBank(TD 417k / TSR 145k)、SciTSR(15k)、Table2Latex(450k)相比,PubTabNet 是「表格结构识别 + 表格识别」两项目标上规模最大的公开资源,且是其中唯一以 HTML 为输出目标、同时区分表头与表体单元格的大型数据集。
HTML 作为输出格式有三个被论文明说的理由:第一,HTML 可以直接嵌入 Web 应用,识别结果即拿即用;第二,HTML 天然把表格表达为树(thead/tbody 分组、tr 为行、td 为叶),使树编辑距离式的评价成为可能;第三,HTML 的 colspan/rowspan 属性能无损表达跨行跨列合并单元格——这在 LaTeX 或纯关系型表示里要么表达不了、要么表达得很别扭。
§2.2 表格的树表示与 TEDS 代价函数
在 TEDS 的建模里,一张表格是一棵树:根节点下两个子节点 thead 与 tbody,分别聚合表头单元格与表体单元格;thead/tbody 的子节点是表格行 tr;树的叶子是单元格 td。每个 td 节点携带三个属性:colspan(跨列数)、rowspan(跨行数)和 content(单元格文本)。树编辑距离按如下代价计算:插入与删除一个节点代价为 1;替换操作中,若两节点不都是 td,代价为 1;若都是 td 且跨格属性不同,代价为 1;若都是 td 且跨格属性相同,代价为 1 减去两段文本的归一化 Levenshtein 相似度(取值 0 到 1)。最终的 TEDS 相似度等于 1 减去编辑距离除以两树节点数的最大值,对整个测试集取平均即为模型成绩。
这个设计的巧妙在于把「结构错」和「内容错」放进同一个连续尺度:行列完全错位的识别结果 TEDS 会很低,而结构全对但某格多了两个字符的识别结果只会受到与字符差异成比例的小惩罚。相比之下,旧的 Hurst 关系型指标把表格压平成非空单元格的相邻关系对,任何 OCR 错误(哪怕只错一个字符)都导致整条关系判负——既无法区分错误严重程度,又完全无视空单元格和全局结构。
§2.3 训练/验证/测试划分(论文口径)
论文的划分分两步。第一步,所有样本随机按 60%/20%/20% 切成训练、开发、测试三个原始池,其中训练集 548,592 个样本。第二步,对开发集与测试集做再均衡:因为含跨行跨列合并单元格(spanning cells)的表格在自然分布里只占少数,直接用原始 20% 评测会让成绩被「简单表」淹没,模型在复杂结构上的失败会被平均掉。作者因此从对应的原始池里分别随机抽取「有跨格单元格的表 5,000 张 + 无跨格单元格的表 5,000 张」,各构成 10,000 张的均衡开发集与测试集。论文实验报告的所有 TEDS 数字都是在这套均衡测试集上算的,其中 complex 一档指有跨格的表、simple 一档指无跨格的表。
§2.4 双口径存照:论文划分 vs HuggingFace 镜像划分
这是复现实验最容易踩的坑,必须单独存照:
- 论文口径(arXiv:1911.10683 及其 ECCV 2020 版):60/20/20 随机划分,train = 548,592;dev/test 为均衡重抽集(各 10,000,跨格/无跨格各 5,000)。jsonl 标注中的 split 字段反映的是数据集发布时的划分标记。
- HuggingFace 镜像口径(ajimeno/PubTabNet):社区与镜像站上广泛流传的统计是 train/val/test ≈ 507,560/60,309/600(合计约 568,469)。这一口径与论文均衡评测集的定义不同(600 张的 test 与 10,000 张的均衡测试集显然不是同一回事)。
- 后果:同一个模型在两种 test 上报出的 TEDS 不可直接对比。读论文或跑基准时,第一步应确认作者用的是哪种 test;自己训练时,建议在论文中显式声明所用切片。本条目正文其余部分的性能数字一律指论文口径的均衡测试集。
§2.5 标注文件结构
PubTabNet 2.0.0 起标注为 JSONL 格式(此前是单个大 JSON,因加载需要大内存而改为逐行的 jsonl)。每行一个样本:
{
"filename": "PMC1234567_003.png",
"split": "train",
"imgid": 12345,
"html": {
"structure": {"tokens": ["<tbody>", "<tr>", "<td>", "</td>", ...]},
"cell": [
{"tokens": ["Mean", "age"], "bbox": [12, 34, 200, 78]},
{"tokens": []}
]
}
}
要点:filename 对应 PNG 图像文件名;imgid 为整数序号;structure.tokens 是 HTML 序列化后的 token 流,含 thead/tbody/tr/td 开闭标签与 colspan/rowspan 属性 token;cell 列表与 structure 中的 td 出现顺序一一对应,每个单元格给出文本 tokens,非空单元格额外携带 bbox 四元组(x0, y0, x1, y1,像素坐标)——bbox 是 2.0.0 版新增的,这使得「单元格定位 + 内容识别」的联合评测与可视化成为可能;空单元格只有 tokens 空列表而没有 bbox 字段。
§2.6 图像规格
表格图像从源论文 PDF 以高分辨率渲染裁切,保持原始版面的像素尺度,不做统一缩放。论文的误差分析部分按宽度、高度、结构 token 数、最长单元格 token 数四个属性把测试集分成 15 等距分组做了性能-规模曲线:模型性能随表格尺寸增大而下降,主因是训练与推理时为组 batch 而做的图像重采样对大表的下采样更狠。这意味着实际部署时对超大表格(宽或高超过训练分布阈值的)要做专门的尺寸分组预处理。
§3 自动标注流水线:PDF 与 XML 的自动对齐
§3.1 为什么能全自动
PMC 开放获取子集的每篇文章都同时存在两种表示:排版渲染后的 PDF(呈现层,给读者看)和出版商提供的 XML(结构层,机器可读,通常遵循 NLM/JATS DTD)。XML 里每个 <table> 元素都携带完整的表格结构——行列、表头表体、跨格合并、单元格文本。同一篇文章的 PDF 与 XML 是同一内容的两种编码,只要能确定「XML 里第 i 个表格」对应「PDF 页面上的哪块区域」,就能把 XML 的结构信息自动投射到 PDF 图像上。这就是 PubTabNet 零人工标注的原理:真值不是标出来的,是从同一内容的结构层「投影」出来的。
§3.2 对齐流程
论文第三章描述的生成流程可概括为:① 对 PMCOA commercial use collection 中的每篇文章,取其 PDF 与 XML;② 在 PDF 上检测/定位表格候选区域(论文实现中通过 PDF 内部的文本与线条信息定位表格边界);③ 将 XML 中的表格元素与 PDF 上定位到的表格区域按出现顺序或内容特征做匹配;④ 匹配成功的样本,从 PDF 渲染裁切出表格图像 PNG,并从 XML 提取 HTML 结构与单元格文本作为标注;⑤ 匹配失败或对齐质量存疑的样本被丢弃。全程无人工质检环节——这是规模换来的取舍,也是 §10 坑点清单里「标注固有噪声」的来源。
§3.3 表头与表体的语义区分
PubTabNet 标注把单元格分为 header 单元格(thead 内)与 body 单元格(tbody 内)两类,论文在与其他数据集对比时把这一点列为三大优势之一。这不只是形式差异:在生物医学文献的信息抽取场景里,表头承载的是变量名(如「Dose」「Response rate」),表体承载的是取值,两者的下游用法完全不同——检索与列对齐算法依赖表头,数值解析依赖表体。旧数据集或把所有单元格一视同仁,或根本不输出单元格级内容,PubTabNet 的 HTML 标注(thead/tbody 分组)让这种语义层级在数据层面就成立了。
§3.4 自动标注的边界与噪声来源
自动对齐标注的天花板由三件事决定。其一,出版商 XML 的规范性参差:少数出版商的 XML 表格标记残缺或非标准,这些样本要么被丢弃、要么带着噪声进入数据集。其二,PDF 表格区域定位不完美:嵌套在图文混排里的小表、跨页表、被旋转的表都可能漏检或错裁。其三,匹配策略按顺序或内容对齐,遇到「一页多表」或「表图混杂」的版面可能错位。论文没有给出逐类噪声率的量化,但从 EDD 在复杂表上 0.854(低于简单表的 0.912)的成绩可以间接看出复杂结构样本的标注难度。使用者应把 PubTabNet 当作「大规模弱噪声但结构正确的标注」而非「逐像素精标」,并善用 bbox 与可视化工具(官方提供了检查 20 个样本的 Jupyter notebook)做抽样质检。
§3.5 与 PubLayNet 的方法同源性
PubTabNet 的生产方法与 PubLayNet 完全同族:同一批作者、同一个 PDF-XML 对齐思路、同一个数据源(PMCOA commercial use collection),只是切割目标不同——PubLayNet 切的是文档版面区域(标题、正文、图、表等 6 类 bbox 与分割标注,36 万+ 文档页),PubTabNet 切的是表格内部结构。两者合起来构成了一套「从 PMC 免费量产文档理解数据集」的方法论示范:只要有结构层与呈现层的双重编码,标注成本可以压到接近零。这个方法论后来被包括 DocLayNet、ScienceQA 类数据在内的众多文档 AI 数据集以不同形式效仿。
§4 任务谱系:PubTabNet 覆盖什么、不覆盖什么
§4.1 表格理解三任务与 PubTabNet 的定位
学术圈把版面上的表格理解拆成三个递进任务:表格检测(Table Detection,在页面里框出表格在哪)、表格结构识别(Table Structure Recognition,解析行列与跨格的骨架)、表格识别(Table Recognition,骨架 + 单元格内容一步到位)。PubTabNet 明确不做表格检测(输入就是裁好的表格图像),它瞄准并主导的是后两项,尤其是「表格识别」这个最难的全任务形态——图像进、带单元格文本的 HTML 出。论文的数据集对比表把它与只做 TD 的 Marmot/PubLayNet/DeepFigures、只做到 TSR 的部分基准清楚区分开来。
§4.2 输入输出契约
输入:一张表格区域的 RGB 图像(PNG)。输出:该表格的 HTML 序列——thead/tbody 分组、tr 行序列、td 单元格(含 colspan/rowspan 属性与格内文本)。评估:输出 HTML 与真值 HTML 各建树,算 TEDS。这个契约对下游开发者非常友好:模型输出无需二次解析即可直接转 pandas DataFrame 或插入数据库,也是它被广泛用于「文献表格 → 结构化数据」流水线的原因。
§4.3 一张真值标注的解剖
以下面这类典型样本为例(示意性重构,非逐字节拷贝):一张含两层表头、一处跨列合并的临床试验结果表,其标注的 structure.tokens 大致形如 <thead>、<tr>、<td colspan="2">、</td>、……、</thead>、<tbody>、<tr>、<td>、……。cell 列表按 td 出现顺序给出各格文本 tokens;非空格附 bbox。识别模型若把一处 colspan 属性漏掉,TEDS 会按「跨格属性不同的 td 替换代价 1」重罚;若只是把某格的「12.3」认成「12.8」,代价仅为 1 减去两串文本的相似度——这正是 TEDS 区分错误严重性的具体机制。
§5 EDD 模型与基线:官方成绩单
§5.1 EDD 架构
EDD(encoder-dual-decoder)由三部分组成:编码器提取表格图像的视觉特征图;结构解码器(单层 LSTM,隐藏层 256,软注意力 256)自回归地生成 HTML 结构 token 序列,相当于先「画出」表格骨架;单元格解码器(单层 LSTM,隐藏层 512,软注意力)在结构序列的引导下逐格识别文本内容——结构解码器的输出帮助单元格解码器对齐到正确的图像区域。结构 token 与单元格 token 的嵌入维度分别为 16 与 80。推理时两解码器均用 beam search(beam=3)。训练分两阶段:先只训编码器+结构解码器(λ=1,batch 10,学习率 0.001 训 10 epochs 后降 10 倍再训 3 epochs)预热结构预测;再联合训练整个网络同时输出结构与内容(λ=0.5,batch 8,学习率 0.001 训 10 epochs 后降为 0.0001 再训 2 epochs)。总训练时间约 16 天(2 块 V100)。这份超参配置是社区复现 EDD 类架构的常用起点。
§5.2 基线与主结果
论文在均衡测试集上对比了 7 个基线(PDF 输入:Tabula、Traprange、Camelot、PDFPlumber、Acrobat Pro;图像输入:Acrobat Pro、WYGIWYS):
| 输入 | 方法 | 平均 TEDS | Simple | Complex |
|---|---|---|---|---|
| Tabula | 0.583 | 0.677 | 0.489 | |
| Traprange | 0.554 | 0.608 | 0.499 | |
| Camelot | 0.620 | 0.691 | 0.548 | |
| PDFPlumber | 0.338 | 0.383 | 0.292 | |
| Acrobat Pro | 0.653 | 0.689 | 0.618 | |
| 图像 | Acrobat Pro | 0.537 | 0.538 | 0.535 |
| 图像 | WYGIWYS | 0.786 | 0.817 | 0.755 |
| 图像 | EDD | 0.883 | 0.912 | 0.854 |
三个值得咀嚼的观察:① 最好的现成 PDF 工具(Acrobat Pro 拿着 PDF)也只有 0.653,远低于拿着纯图像的 EDD(0.883)——说明在异质文献表格上,规则/启发式工具的天花板很低,学出来的端到端模型才有出路;② Acrobat Pro 从 PDF 换成图像输入成绩崩到 0.537,而人类看图像毫无障碍——这正是图像表格识别任务存在的理由(很多场景里只有扫描件或截图可用);③ EDD 比 WYGIWYS 高 9.7% 绝对值,且在复杂表上优势更大(+9.9% vs 简单表 +9.5%),证明结构解码器与单元格解码器的联合训练确实各司其职。
§5.3 规模-性能曲线与失效模式
论文的误差分析把测试集按宽度、高度、结构 token 数、最长单元格 token 数四个维度各分 15 组,画了样本分布与 EDD/WYGIWYS 的分组 TEDS 曲线。两个模型都在大表上衰减,EDD 全程占优。论文归因:训练时为组 batch 做的图像重采样把大表压得更小、细节丢失更多。作者训练时对这四个维度设了截断阈值(论文图中的竖直虚线),超过阈值的表不参与训练——这意味着直接拿官方 EDD 配方推理超大表会跌出分布,工程上要按尺寸分组、分组重采样或分块识别来兜底。
§5.4 EDD 之后的生态位
EDD 源码因法律约束未公开,但它验证的两个设计(双解码器分工、结构先行的两阶段训练)成为后续表格识别模型的标配思想。以 PubTabNet 为共同训练/评测底座的后续知名模型包括 TableFormer、SEM、LGPMA+OCR、TableMaster、WSTabNet、SPPLTR(结构 token 重排预训练)、VCGoup 等——它们在论文摘要里被并列为 SOTA 比较对象即为例证。可以说 PubTabNet + TEDS 这一「数据 + 指标」组合,定义了 2020 年之后图像表格识别的公共竞技场。
§5.5 ICDAR 2021 科学文献解析比赛
2020 年 7 月,PubTabNet 被 ICDAR 2021 Competition on Scientific Literature Parsing 选为 Task B(表格识别)的官方数据,比赛测试集与真值后来(2022 年 3 月)公开于 github.com/ajjimeno/icdar-task-b,2021 年 5 月发布比赛报告。这是 PubTabNet 作为公共基准获得国际学术共同体背书的直接证据,也是外部使用者获取「官方认可的测试集 + 真值」的替代路径——比从主数据集里自切 test 更规范可比。
§6 获取与许可:双层许可的分层说明
PubTabNet 的许可是双层结构,这一点被官方 LICENSE.md 明确分层、也最容易被使用者一笔带过而踩坑。本节按层拆开说。
§6.1 第一层:标注(JSONL)—— CDLA-Permissive 1.0
PubTabNet 所有标注数据(JSONL 文件中的结构 token、单元格文本、bbox 坐标等)由 IBM Corporation 版权所有,采用 Community Data License Agreement – Permissive – Version 1.0(CDLA-Permissive 1.0) 发布。CDLA-Permissive 是 Linux 基金会主导的社区数据许可,语义类似代码界的 Apache/MIT:允许任意使用、修改、再分发(含商业用途),唯一实质义务是保留许可与归属声明、并在分发修改版时附带变更说明。对使用者而言,标注层基本没有法律负担。
§6.2 第二层:表格图像(PNG)—— PMC Open Access Subset 条款
与标注层不同,PubTabNet 中的表格图像 IBM 并不拥有版权——它们裁自成千上万个出版商的论文版面,版权归各原始文章的出版商所有。图像层的许可遵循 PubMed Central Open Access Subset 的条款:PubTabNet 专门取自其中的 commercial use collection(PMC 把 OA 子集按是否允许商用分了两个集合,PubTabNet 与 PubLayNet 都取自允许商用的那个),但即便如此,每篇文章的具体复用条款仍取决于该出版商对 CC 协议的选择(CC BY、CC BY-NC 等)。实务结论:
- 学术研究、教育、个人使用:普遍安全。
- 训练非商业模型:普遍安全(follow PMC attribution guidelines,注明来源)。
- 商业训练或再分发图像:允许进入(collection 层面)但需逐篇核对图像所源自文章的许可,无法给出一份总括的绿灯;IBM 的官方场景表也正是这么写的(Training ML Models (Commercial) 一栏对图像标 ⚠️ Check individual article licenses)。
- 派生数据集:标注层随 CDLA 自由,图像层同样逐篇自查并保留许可文档。
§6.3 第三层(附带):源码—— Apache-2.0
仓库 src/ 目录下的 Python 源码与脚本(含 TEDS 指标实现)采用 Apache License 2.0,随仓库 LICENSE 文件分发。注意仓库里有两个许可文件:根目录 LICENSE.md(数据集许可摘要,约 5 行)与 src/LICENSE(Apache 2.0 全文),分别对应数据与代码。
§6.4 明确不给的东西
两样官方明说保留:EDD 模型源码(因法律约束不发布——模型本身是 IBM 的财产而非数据集的一部分);完整测试集 ground truth(发布时保留作未来比赛,后经 ICDAR 2021 Task B 渠道部分公开于 ajjimeno/icdar-task-b)。想跑官方口径测试集的团队,要么走官方评测服务,要么用 ICDAR 比赛集,要么自己在 train 副本里切验证集。
§6.5 获取路径
- 主入口:GitHub 仓库 ibm-aur-nlp/PubTabNet 的 README「Getting data」节指向 HuggingFace 数据集 ajimeno/PubTabNet(作者 Antonio Jimeno Yepes 的账号;README 于 2025-07-08 更新后以此为准,早期 Zenodo 链路已退役)。
- 比赛集:ICDAR 2021 SLP Task B 测试集与真值,github.com/ajjimeno/icdar-task-b。
- 示例:仓库自带 exploring_PubTabNet_dataset.ipynb,可检视 20 个样本的标注,是动手前最好的第一站。
- 体量提示:568k+ 张 PNG 加标注是数十 GB 量级,HF 下载建议用 hf_transfer 或分段 snapshot-download;沙箱环境访问 HF 主站受限时走 hf-mirror.com 镜像。
§6.6 许可速查表
| 对象 | 许可 | 版权方 | 商用 |
|---|---|---|---|
| 标注 JSONL | CDLA-Permissive 1.0 | IBM Corporation | 允许 |
| 表格图像 PNG | PMC Open Access Subset 条款(commercial use collection) | 各原始文章出版商 | 需逐篇核对 |
| src/ 源码(含 TEDS) | Apache-2.0 | IBM Corporation | 允许 |
| EDD 模型源码 | 未发布 | — | — |
| 完整 test GT | 未随主数据发布(ICDAR Task B 渠道部分公开) | — | — |
§7 生态与影响:一个数据集如何定义一个赛道
§7.1 学术影响力轨迹
PubTabNet 的时间线清晰:2019 年 11 月 arXiv 首发;2020 年 7 月被 ECCV 2020 接收,同月 2.0.0 版发布(加 bbox、改 jsonl),同月被 ICDAR 2021 SLP 比赛选为 Task B 官方数据;2021 年比赛报告发布;此后成为几乎所有表格识别论文的标准配置——训练用它、评测用它、指标用 TEDS。前文列举的 TableFormer、SEM、LGPMA、TableMaster、WSTabNet、SPPLTR、VCGoup 等后续模型均以 PubTabNet 为公共底座。一个数据集同时提供了数据、指标、比赛三条基础设施,这在文档 AI 各子领域里属于最强生态位(同类地位的有版面分析的 PubLayNet、信息抽取的 FUNSD)。
§7.2 对医学 AI 的特殊意义
对生物医学领域,PubTabNet 的影响远不止「一个 CV 数据集」。临床研究的关键证据高度表格化:随机对照试验的基线特征表(Table 1)、亚组分析表、不良事件表、剂量递增表——系统综述与证据合成工具若要自动化,第一道工序就是把成千上万篇 PDF 里的表 1 抽成结构化数据。PubTabNet 提供的正是这道工序的训练料与评测尺。它与库内的 pmc-oa 全文语料、pubtator-central 实体标注、pubmedqa 问答对形成互补:那些条目解决「读文字」,PubTabNet 解决「读表格」。在多模态大模型时代,表格图像→HTML 的成对数据还是视觉结构化输出(visual structured output)任务的天然训练集,多条视觉语言模型的数据配方都吸收了它或其衍生集。
§7.3 方法论外溢
PDF-XML 自动对齐的标注范式(§3.5)是 PubTabNet 的隐性贡献:它示范了「同一内容的结构层与呈现层互为真值」的思路,此后被文档智能领域的多个数据集以不同变体复用。对医学数据集建设者的启发是:在动辄标注成本每例数百元的今天,先盘点领域内是否已存在「双重编码」的资源(结构化登记 vs 报告 PDF、DICOM 元数据 vs 影像截图、模板化病历 vs 排版文书),可能比直接外包人工标注便宜一个数量级。
§8 方法学启示:三条可迁移的经验
- 从结构层投影真值,而非人工重标。 PubTabNet 的 568k 标注没有花一分钱人工费,代价只是写好 PDF-XML 对齐算法并接受一定的噪声率。凡是同时存在机器可读结构层与人类可读呈现层的领域,都可复制这套「投影式标注」。
- 评测指标与数据集同等重要。 TEDS 的出现纠正了关系型指标的三重盲区(空单元格、全局结构、错误粒度),使后续模型的进步变得可度量、可比对。一个新任务领域在放数据集时若能配套一个正确的指标,其对领域的塑形作用不亚于数据本身。
- 为复杂样本做均衡评测。 自然分布里复杂表占比小,直接按原始比例评测会把模型的短板平均掉。PubTabNet 对 dev/test 做「跨格/无跨格各半」的均衡重抽,保证了评测信号对复杂结构敏感。做任何长尾任务的基准设计都值得抄这一步。
§9 与库内条目的关系
PubTabNet 在本库中的定位是「医学文献表格切面」的结构化数据集,与下列在架条目构成一个 PMC 生态的互补网络(rid 以库内实测 status=1 AND del_sign=0 为准,均以占位 /0 形式互链,正式 rid 由入库后统一回填):
| 条目 | rid | 与 PubTabNet 的关系 |
|---|---|---|
| pmc-oa | 320 | 同源(PMCOA):该条目收录 PMC 开放获取全文语料,PubTabNet 从同一集合切出表格;做文献级 NLP 与表格抽取联合系统时两者是上下游 |
| pmc-oa-subset | 360 | 同源子集:PMC OA 的另一组织切面,可与 PubTabNet 按文章 ID 交叉定位表格所在文献 |
| open-pmc | 45 | 同源:开放 PMC 生态条目,提供文本/元数据切面,与表格切面拼合可做「正文叙述 + 表格数据」联合抽取 |
| pubtator-central | 752 | 语义层互补:PubTator 提供文献的实体标注(基因/疾病/化学物质),PubTabNet 提供表格结构;实体链接到表格单元格是证据挖掘的典型管线 |
| pubmedqa | 49 | 任务互补:PubMedQA 考「读正文答问题」,表格理解考「读表格得数据」,同属文献智能基础件 |
| pmc-vqa | 270 | 模态互补:PMC-VQA 做文献图像的视觉问答,PubTabNet 提供表格类图像的结构化输出监督信号,可用于增强 VQA 模型对表格图像的理解 |
姊妹数据集说明:PubLayNet(IBM 同法生产的版面分析数据集,ICDAR 2019 最佳论文)目前不在库内,是后续侦察的天然候选;两者同仓同源,入库时建议在 notes 里注明避免别名撞库争议(同一家族但确为不同资源,非别名关系)。
§10 避坑清单:八个已踩过的坑
坑 1:拿 HF 镜像的 test 当论文的 test 报成绩。 论文口径的测试集是 10,000 张均衡抽取(跨格/无跨格各半),HF 镜像常见口径是约 600 张的 test。两者不可混用,混用即产生不可比数字。复现任何论文前先问:作者用的哪套 test?
坑 2:把图像层当 IBM 版权自由商用。 标注是 CDLA-Permissive 没错,但 PNG 图像版权归各出版商。批量把 PubTabNet 图像再分发进商业产品或派生数据集,必须逐篇核对源文章许可,至少要建立「文章 ID → 许可」的台账。
坑 3:想下载官方 EDD 权重或源码。 没有这回事——模型源码因法律约束官方明说不发布。社区复现 EDD 的第三方实现质量参差,引用 EDD 数字时须注明「论文自报成绩」还是「第三方复现成绩」。
坑 4:用主仓库测试集真值做评测。 主仓库的完整 test GT 发布时被保留(原定作比赛),别在 jsonl 里翻找不存在的 test 标签;规范路径是 ICDAR 2021 Task B 的公开测试集与真值(ajjimeno/icdar-task-b)。
坑 5:跨格表格训练前不做尺寸处理。 官方 EDD 配方对四个尺寸维度设了训练截断阈值,超阈表直接跌出分布、性能骤降。推理超大表要按尺寸分组重采样或分块,评测超阈样本要单独报告。
坑 6:把标注当逐像素精标。 PDF-XML 自动对齐意味着噪声是设计内的:出版商 XML 缺陷、表格区域错裁、顺序匹配错位都会进数据。抽样质检(官方 notebook 可视化 bbox)应成为训练前的固定动作,清洗规则要容忍 bbox 偏移而非假设完美对齐。
坑 7:只看平均 TEDS。 平均数掩盖简单/复杂两档差异(0.912 vs 0.854)。报告成绩时永远分档报 simple/complex/all 三列,对比他人模型时确认对方也是三列口径,否则结论可能反转。
坑 8:内存暴力读 1.0 时代的单个大 JSON。 2.0.0 改 jsonl 正是为了解决单个大 JSON 的内存问题;拿旧版本标注或第三方转存的大 JSON 时,注意流式读取或先确认版本,避免 OOM。
§11 DAIMS 评估:数据资产成熟度评分
按 DAIMS(Data-set AI-readiness Maturity Scale)对本数据集逐维评估:
| 维度 | 得分(满分 5) | 评语 |
|---|---|---|
| D1 规模充分性 | 5 | 568k+ 样本,同类最大,深度模型充分训练无争议 |
| D2 标注质量 | 4 | 自动对齐零人工,结构正确率高但存在固有噪声(XML 缺陷/错裁),无逐类噪声率量化 |
| D3 标注一致性 | 4 | 同一算法生成,口径天然一致;一致性瓶颈在源出版商 XML 规范性 |
| D4 任务定义清晰度 | 5 | 输入输出契约(图像→HTML)与指标(TEDS)完全明确,含比赛背书 |
| D5 元数据完备性 | 4 | filename/split/imgid 齐备;缺逐样本源文章许可字段,商用核查需自行回溯 |
| D6 获取便利性 | 4 | 公开直链无注册门槛;数十 GB 体量与 HF 镜像依赖是轻微摩擦 |
| D7 许可清晰度 | 4 | 双层许可官方明文分层(CDLA + PMC OA),诚实但商用需逐篇核查图像层 |
| D8 版本治理 | 3 | 1.0→2.0.0 有清晰变更记录;此后无活跃迭代,测试 GT 部分保留 |
| D9 可复现性 | 4 | 论文超参完整公开,但 EDD 源码未发布,精确复现依赖第三方实现 |
| D10 生态成熟度 | 5 | 数据+指标+国际比赛三件套,后续数十个模型以此为基准 |
| 总分 | 41/50 | AI-ready 就绪度高,短板集中在版本治理停滞与图像层商用核查成本 |
§12 与同类表格数据集的系统对比
§12.1 对比总表
| 数据集 | 规模 | 输出格式 | 表头语义 | 跨格支持 | 数据来源域 | 指标 |
|---|---|---|---|---|---|---|
| PubTabNet | 568k+ | HTML | 有(thead/tbody) | 有(colspan/rowspan) | 生物医学期刊 PDF | TEDS |
| TableBank | 417k(TD)/145k(TSR) | LaTeX/HTML | 无 | 部分 | LaTeX/Word 通用文档 | 关系型 |
| SciTSR | 15k | 结构列表 | 无 | 有 | 科学 PDF | 关系型 |
| ICDAR2013 | 156 | XML | 无 | 有 | 混合 | 关系型 |
| ICDAR2019 | ~3.6k | HTML/LaTeX | 部分 | 有 | 混合 | 关系型+TEDS 类 |
| Table2Latex | 450k | LaTeX | 无 | 有 | arXiv 论文 | 编辑距离 |
| FinTabNet | ~112k | HTML | 有 | 有 | 财报 PDF | TEDS |
| PubLayNet | 113k 页 | 版面 bbox | —(不做表格内部) | — | PMCOA | mAP |
§12.2 选型建议
- 做生物医学文献表格抽取:PubTabNet 首选,域匹配、表头语义可直接服务列对齐。
- 做金融报表解析:FinTabNet 域更贴(其作者 Wenyuan Yu 等同法生成),PubTabNet 可作预训练。
- 做通用文档表格:TableBank 覆盖更广域,但缺表头语义与 TEDS 生态。
- 做版面分析(表格在哪):用 PubLayNet,PubTabNet 明确不做 TD。
- 做评测:优先 PubTabNet+TEDS 组合,可比性最强。
§12.3 与 FinTabNet 的同族关系
FinTabNet(IBM 后续发布)与 PubTabNet 是同一方法论的续作:同样是结构层/呈现层对齐自动生成,同样输出 HTML,同样配 TEDS,只是把域从生物医学期刊换成了标普 500 公司年报。两者常被同篇论文并列使用(预训练跨域 + 领域内评测),注意两者 test 互不可替代。
§13 常见误解澄清
误解 1:PubTabNet 是医学影像数据集。 错。图像内容是论文版面上的表格截图,不是任何临床影像;把它挂到影像预训练管线上是范畴错误。
误解 2:56.8 万张 = 56.8 万患者/病人。 错。样本单位是表格,来源是已发表论文,与患者数量无关,也不携带任何患者级隐私数据(表格里的聚合统计是发表内容)。
误解 3:标注是人工精标的。 错。全自动 PDF-XML 对齐生成,质量上限取决于出版商 XML;应按「大规模弱噪声标注」对待。
误解 4:CDLA-Permissive 意味着整个数据集可自由商用。 只对了一半。标注层可以,图像层遵循 PMC OA 条款,商用需逐篇核对。
误解 5:官方提供了 EDD 预训练权重。 没有。模型源码与权重均未发布,只有论文数字与 TEDS 代码。
误解 6:test 集真值可从 jsonl 里直接取。 主数据集的完整 test GT 未随包发布;规范外部评测走 ICDAR 2021 Task B 公开集。
误解 7:TEDS 是准确率类指标,越高越接近整数 1。 TEDS 是连续相似度(0-1),字符级错误只造成连续小惩罚,不是二元对错;解读 0.883 这类数字要看分档(simple/complex)。
误解 8:既然 TableBank 更大就选 TableBank。 规模不是唯一维度;表头语义、跨格表达、TEDS 生态、域匹配往往比多几万张样本更影响下游效果。
§14 案例解剖:一张文献表格从 PDF 到 DataFrame 的全流程
§14.1 场景
假设要为一个系统综述工具构建「RCT 基线特征表自动抽取」模块:输入一批 PMC 论文 PDF,输出每篇 Table 1 的结构化 DataFrame。
§14.2 管线设计(五步)
- 表格检测:对每页 PDF 用版面模型(如 PubLayNet 训练的检测器)定位表格区域,裁出图像。
- 表格识别:将以 PubTabNet 预训练的识别模型作用于裁出图像,得到 HTML(thead/tbody/tr/td + colspan/rowspan)。
- HTML 后处理:展开跨格属性为物理网格;对表头做行合并判断。
- 单元格文本规范化:数值列解析(±号、百分号、区间括号)、单位归一。
- 质量闸门:对识别 HTML 跑 TEDS 自一致性校验或规则校验(行列数合理性、表头非空率),低于阈值的人工复核。
§14.3 关键代码骨架(示意)
import json, pandas as pd
from bs4 import BeautifulSoup
# 1) 读 jsonl,取一个样本的 HTML 结构 + 单元格文本
sample = json.loads(next(open("pubtabnet_val.jsonl")))
tokens = sample["html"]["structure"]["tokens"]
cells = ([c["tokens"] for c in sample["html"]["cell"]]
if isinstance(sample["html"]["cell"], list) else sample["html"]["cell"]["tokens"])
# 2) 把 token 流重组成 HTML 字符串(td 按出现顺序填入单元格文本)
html = rebuild_html(tokens, cells) # 需自行实现:按 td 开闭配对填文本
# 3) 展开 colspan/rowspan 并转 DataFrame
soup = BeautifulSoup(html, "html.parser")
grid = expand_grid(soup) # 需自行实现跨格展开
df = pd.DataFrame(grid[1:], columns=grid[0])
§14.4 踩坑点回放
- 跨格展开顺序:先列后行或先行后列结果不同,务必与可视化对照验证。
- 表头多层嵌套:两层表头展开后列名要做拼接(如「组别|安慰剂|第 4 周」)。
- 空单元格:tokens 为空但表格网格里必须占位,丢弃占位会导致列错位。
- bbox 系是原图像素坐标,做版面回溯(把抽取结果高亮回 PDF 截图)时直接可用。
§15 实战 FAQ 补编(工程视角 12 问)
Q21:下载 HF 镜像时被墙或超时怎么办? 沙箱与部分内网环境访问 HF 主站受限,设置 HF_ENDPOINT=https://hf-mirror.com 后用 huggingface-cli download ajimeno/PubTabNet 分段拉取;建议先拉标注 jsonl 与少量样例图,确认可用再拉全量图像。
Q22:jsonl 里 split 字段与我想做的划分不一致怎么办? 以字段为准但保留原始值另存;自定义划分时禁止让同篇文章的表格跨 train/test(按 filename 前缀的 PMC ID 分组切分),否则发生文章级泄漏、成绩虚高。
Q23:怎么判断我用的第三方 EDD 复现是靠谱的? 看三点:是否按论文两阶段训练、是否用论文均衡测试集、是否报 simple/complex/all 三列 TEDS。三缺一即可疑。
Q24:表格里出现小图(如 Kaplan-Meier 曲线)怎么办? PubTabNet 只覆盖真表格;图文混排区域的误裁属于源数据噪声,训练前按图像宽高比与 bbox 规则过滤,评测遇到则单独报告。
Q25:单元格文本里的上下标、希腊字母怎么处理? tokens 是从 PDF 文本层抽取的字符流,上下标已扁平化(如 x2 可能成 x2);下游数值解析需自定义规范化规则,无官方标准化器。
Q26:能否用 PubTabNet 训练表格检测模型? 不能直接用(无整页样本与页级负样本),但可用其 bbox 做弱监督信号;TD 任务应选 PubLayNet/TableBank。
Q27:多个模型对比时训练集应只用 PubTabNet 吗? 论文设定是仅用 PubTabNet 训练。若你的模型加了合成数据预训练,对比表中要显式声明,否则与 EDD/TableFormer 的数字不可直接并列。
Q28:TEDS 计算在大表上很慢怎么办? 树编辑距离是 NP-hard 的经典实现,官方实现有剪枝但超大表仍慢;评测时可按节点数分桶并行,或限制最大节点数并声明截断。
Q29:模型输出的 HTML 不合法(标签不闭合)怎么评分? 官方评测假设模型输出是合法 token 序列(约束解码保证);自研模型应做结构约束解码(beam search 中维护标签栈),否则 TEDS 解析阶段即失败。
Q30:如何把成绩和 ICDAR 2021 Task B 排行榜对齐? 用比赛官方测试集与官方评测器,遵守其提交格式;主数据集自切评测与比赛成绩不可混排。
Q31:表格图像要不要做 OCR 预处理? 不需要,EDD 类模型端到端从像素学;只有走「检测+OCR+结构化」传统管线的系统才需要 OCR,两套体系成绩口径不同。
Q32:想给样本补上源文章元数据(期刊、年份、许可)可行吗? filename 含 PMC ID,可通过 PMC OA 的元数据服务回查(本库 pmc-oa/open-pmc 条目即该切面);补许可台账做商用合规时正是这么做的。
§16 面向工程团队的部署清单
以下清单按「拿到数据到上线服务」的时间顺序排列,每条均为 PubTabNet 生态实测会遇到的点:
- 磁盘预算:全量数十 GB,预留 2 倍空间(解压 + 训练缓存)。
- 下载渠道:HF(ajimeno/PubTabNet)为主,hf-mirror 兜底;校验样本数是否 568k 量级。
- 内存策略:用 jsonl 流式读取;若拿到旧版单 JSON,先脚本转 jsonl。
- 数据审计:抽样 100 例,检查 bbox 对齐、thead/tbody 语义、跨格属性正确性;记录噪声率基线。
- 划分策略:按 PMC 文章 ID 分组切分防泄漏;保留官方 split 字段备查。
- 尺寸处理:统计宽高分布,按 §5.3 的四个维度做分组重采样或变长 batch。
- 解码约束:beam search 维护 HTML 标签栈,杜绝非法结构输出。
- 评测:simple/complex/all 三列 TEDS + 分尺寸分组曲线;声明 test 口径。
- 许可台账:商用前按 PMC ID 回查每篇源文章许可,落表存档。
- 监控:上线后监控「超尺寸表占比」「空识别率」「结构非法率」三个漂移信号。
- 回滚物料:保留训练版本与数据版本(1.0 vs 2.0.0)的映射表。
- 降级路径:识别失败或低置信样本回落到传统 PDF 解析工具(Camelot 等)兜底。
§17 数据质量与清洗实操
§17.1 已知质量风险点分级
| 风险 | 典型表现 | 建议处理 |
|---|---|---|
| 区域错裁 | bbox 覆盖不全或带正文残行 | 按宽高比/边缘留白规则过滤 + 抽样人工确认 |
| XML 结构缺陷 | 空表头、无 tbody、标签残缺 | structure token 合法性校验器 |
| 跨格属性错误 | colspan 数与实际列数不符 | 行列数一致性反算校验 |
| 文本层噪声 | 上下标扁平化、连字符断词 | 下游文本规范化模块承担 |
| 图文混排误入 | 表内嵌图样本 | 宽高比与连通域规则过滤 |
§17.2 一个最小校验器骨架
def validate(sample):
toks = sample["html"]["structure"]["tokens"]
# 1) 标签配对
stack = []
for t in toks:
if t.startswith("</"): stack.pop() if stack else None
elif t.startswith("<"): stack.append(t[1:-1] if t.endswith(">") else t)
if stack: return False, "unclosed tags"
# 2) td 数与 cell 数一致
n_td = sum(1 for t in toks if t == "<td>")
n_cell = len(sample["html"]["cell"])
if n_td != n_cell: return False, f"td/cell mismatch {n_td}/{n_cell}"
# 3) bbox 在图像范围内
return True, "ok"
(骨架仅示意;生产实现还需覆盖 thead/tbody 分组、colspan 反算、空表判定等。)
§17.3 清洗的度
清洗以「剔除明显坏样本」为目标,不做逐样本修复:修不动也不必修——568k 的量级允许丢掉几个百分点。经验阈值参考:标签校验失败率与 td/cell 失配率合计通常在低个位数百分比内,超过则应怀疑你拿到的不是官方 2.0.0 标注而是第三方转存。
§18 训练配方与复现细节补编
§18.1 两阶段训练的逐行解读
EDD 的两阶段设计值得逐段拆开,因为它是社区复现里最常走样的部分:
- 阶段一(结构预热):损失权重 λ=1,即只优化结构解码器;batch size 10;学习率 0.001 训 10 个 epoch 后除以 10 再训 3 个 epoch。目的:让结构解码器先学会表格骨架的语言(thead/tbody/tr/td 与跨格属性 token 的序列规律),不受单元格识别误差的梯度干扰。
- 阶段二(联合训练):λ=0.5,结构与单元格两个损失加权求和;batch size 8;学习率 0.001 训 10 个 epoch 后降为 0.0001 再训 2 个 epoch。此时单元格解码器在已大致成形的结构引导下学「往格子里填字」。
- 推理:两解码器均 beam=3;结构解码器输出 token 流的同时向单元格解码器提供位置引导。
- 嵌入维度:结构 token 16 维(词表小、模式强),单元格 token 80 维(内容词表大)。
复现偏差的高发点:跳过阶段一直接联合训练(复杂表 TEDS 明显下滑)、beam 取 1(损失约 1 个点)、不做尺寸分组重采样(大表崩溃)。
§18.2 数据增强的可行空间
官方配方未用图像级增强(表格对版式敏感,几何类增强可能破坏对齐)。社区常见的安全增强:亮度/对比度抖动、轻微 JPEG 压缩模拟扫描件;危险增强:旋转透视(改变行结构)、随机裁切(破坏 bbox 与 td 对应)。文本侧增强空间更小——单元格文本是真值本身,只能做字典级替换式增广且需同步改 HTML。
§18.3 与后续 SOTA 的代差说明
以 PubTabNet 均衡测试集为参照,公开报告的大致演进(量级参考,非逐位精确):EDD 0.883 → TableFormer 类 0.89-0.90 → SEM/LGPMA 类 0.90+ → 近年视觉语言模型化方法 0.91+。读具体论文时务必核对:训练数据是否纯 PubTabNet、是否叠加合成数据、test 口径是哪种(§2.4 的坑在 SOTA 对比里同样存在)。
§19 评测协议实操:把 TEDS 用对
§19.1 报告规范
一张合格的 PubTabNet 成绩表应包含:① test 口径声明(论文均衡集/ICDAR Task B/自切);② 三列 TEDS(simple/complex/all);③ 训练数据声明(是否纯 PubTabNet);④ 解码设置(beam);⑤ 尺寸截断策略。缺任何一条,读者都无法判断数字的可比性。
§19.2 常见评分错误
- 用字符串 diff 比较 HTML 而不是建树:行列顺序无关的重排会被误罚。
- 忽略 colspan/rowspan 属性:复杂表上虚高约 2-3 个点。
- 空单元格不建节点:全局结构被低估,simple 表虚高。
- 拿 HF 600 张 test 的成绩与论文 10,000 张均衡集成绩并列:口径错配,数字不可比。
§19.3 自建评测服务的最小实现
官方 src/ 提供 TEDS 实现(Apache-2.0),封装要点:输入(真值 HTML 结构+单元格、预测 HTML 结构+单元格)→ 双方建树 → tree edit distance → 归一化相似度 → 按样本聚合。工程上建议加:节点数上限与超限告警、结果缓存(相同预测去重)、分档聚合(simple/complex 由真值是否含跨格属性决定,与论文一致)。
§20 版本、引文与资产管理
§20.1 版本谱系
- 1.0(2019-11 随 arXiv 首发):单 JSON 标注,无 bbox。
- 2.0.0(2020-07-21):非空单元格 bbox;json → jsonl;当前稳定版,无后续大版本。
- ICDAR 2021 Task B 集(2020-07 启用 / 2022-03 公开):独立比赛子集与真值,勿与主数据版本混同。
§20.2 引文格式
@article{zhong2019image,
title={Image-based table recognition: data, model, and evaluation},
author={Zhong, Xu and ShafieiBavani, Elaheh and Yepes, Antonio Jimeno},
journal={arXiv preprint arXiv:1911.10683},
year={2019}
}
正式发表版为 ECCV 2020;引用数据集时建议同时引论文与 GitHub 仓库(ibm-aur-nlp/PubTabNet)。
§20.3 资产归属速记
数据集与 TEDS 代码:IBM(CDLA-Permissive / Apache-2.0);表格图像:各出版商(PMC OA 条款);ICDAR 比赛集:官方仓库 ajjimeno/icdar-task-b;本条目(百科文本):千方病案医数集。
§21 未来方向与观察位
- 测试 GT 的完全公开:主数据集 test GT 仍部分保留,若官方未来全面公开,外部评测成本将显著下降——观察位:ibm-aur-nlp/PubTabNet 仓库动态。
- 多模态大模型时代的角色变化:表格识别正从专用小模型走向通用 VLM 的结构化输出能力;PubTabNet 作为「图像→HTML」的成对数据,天然可服务 VLM 的 SFT 阶段——观察位:各 VLM 技术报告的数据配比章节。
- 域扩展数据集:FinTabNet(财报)之后,同族方法在更多垂直域(法律合同表、政府统计表)的出现值得跟踪;生物医学域内,PubTabNet 仍是唯一大规模选择。
- 许可证生态:CDLA-Permissive 已成数据许可事实标准之一;PMC OA 集合的出版商政策若收紧,将直接影响图像层再分发的合规成本——观察位:NCI PMC OA 工具页。
§22 建议互链点(写明库内条目与 rid)
| 库内条目 | rid | 互链逻辑 |
|---|---|---|
| pmc-oa | 320 | 同为 PMCOA 生态:全文语料 × 表格切面,联合可做文献级证据抽取 |
| open-pmc | 45 | 同源开放 PMC 切面,提供正文与元数据,与表格数据互补 |
| pmc-oa-subset | 360 | 同源子集条目,可按 PMC ID 交叉定位 |
| pubtator-central | 752 | 实体标注 × 表格结构:单元格内容实体链接的证据挖掘管线 |
| pubmedqa | 49 | 文献智能双基础件:问答切面 × 表格切面 |
| pmc-vqa | 270 | 文献图像 VQA × 表格结构化输出,VLM 数据配方互补 |
(以上 rid 为写作时库内实测在架值;正式互链 URL 由发布流程回填 /0 占位。)
补编速查卡
| 主题 | 位置 |
|---|---|
| 双口径 split | §2.4 |
| TEDS 代价函数 | §2.2 / §19 |
| EDD 逐阶段配方 | §5.1 / §18.1 |
| 许可分层 | §6.1-§6.6 |
| 工程部署清单 | §16 |
| 数据质量分级与校验器 | §17 |
| 评分错误清单 | §19.2 |
| 版本谱系 | §20.1 |
| 互链点 | §9 / §22 |
§23 HTML 作为输出表示的语言学:为什么不是 XML、LaTeX 或 Markdown
§23.1 四种候选表示的取舍
把表格变成机器可读数据,表示法的选择不是小事。逐个看:
- Markdown 表格:人好读,但表达不了跨格与多层表头(管道语法天然是二维网格),生物医学表格里大量存在的合并单元格会失真,直接出局。
- LaTeX(Table2Latex 路线):学术域自然,跨格用 multicolumn/multirow 表达力够;但 LaTeX 命令的序列比 HTML 长得多、模板变体多(同一表格可写出无数种 LaTeX),模型学习目标不够规范,且不能直接进 Web 栈。
- XML(NLM/JATS 原生):与源数据同构,但标签冗长、命名空间繁杂,且下游工具链(浏览器、pandas、前端渲染)不友好。
- HTML:跨格属性(colspan/rowspan)规范;thead/tbody 自带表头语义;树结构与 TEDS 评估天然契合;下游生态(pandas.read_html、BeautifulSoup、浏览器)零成本。论文的三条理由(可直接进 Web 应用、天然树结构、语义单元格分类)即为此意。
§23.2 token 流视角
EDD 类模型实际学习的是一个序列到序列的翻译:输入是图像特征序列,输出是 HTML 的 token 流。这个 token 流里有两类信息密度截然不同的 token:结构 token(thead/tbody/tr/td 开闭,词表小、模式极强)与内容 token(单元格文本,开放词表)。两阶段训练、双解码器、不同嵌入维度(16 vs 80)都是对这种密度差异的工程响应——这也是为什么「结构先行」比「一锅端」效果好,复杂表上差距尤其明显。
§23.3 树视角与错误分类学
从树视角可以把识别错误分成四类,各自对应 TEDS 的不同惩罚路径:
- 骨架错:行列数错、行合并错——插入/删除节点代价 1 起步,最贵。
- 跨格属性错:结构对了但 colspan/rowspan 错——td 替换代价 1。
- 内容错:格内文本字符级差异——代价 1 减归一化 Levenshtein,连续可微式的细粒度。
- 空实错:把空格识别成有内容或反之——节点增删,代价 1,且旧指标完全看不见这类错。
读任何模型的错误分析时,可以按这四类归因;TEDS 的价值正在于把四类错误放进同一个可比尺度。
§24 历史脉络:表格识别的三十年
- 1990s-2000s 规则时代:基于横竖线检测与文字块的几何规则,代表性成果集中在表格检测(如 ICDAR 系列早期比赛数据)。优点是结构规整的印刷表格效果好;缺点是三线表、无线表(仅靠对齐的表格)几乎无法处理。
- 2000s-2010s 统计学习时代:CRF、图模型引入行列关系推断;Hurst 型关系指标成为主流评测。数据饥渴开始显现:人工标注成本把数据集压在几百到几千张。
- 2019 深度端到端转折:TableBank(弱监督,LaTeX/Word 源)、SciTSR、PubTabNet 相继发布,PubTabNet 以 568k 规模与 HTML 输出成为图像表格识别的转折点;同年 EDD 验证了端到端从像素学结构的可行性。
- 2020-2023 精细化时代:TableFormer、SEM、LGPMA、SPPLTR 等在 PubTabNet 上内卷,结构先行、查询式解码、token 重排等改进把 TEDS 推向 0.90+;FinTabNet 等 PCI 域续作扩展版图。
- 2023 至今 VLM 时代:表格理解被吸收进通用视觉语言模型的能力集;PubTabNet 的角色从「训练专用模型的主食」部分转为「VLM 结构化输出 SFT 数据」与「专用模型仍有优势场景(高精度、低成本部署)的基准」。
§25 生物医学表格类型学:识别难点分域讨论
PubTabNet 的样本虽覆盖 PMCOA 各刊,但生物医学文献的表格有几种高度模式化的类型,每种的识别难点不同:
§25.1 基线特征表(Table 1,RCT 开篇标配)
结构特征:行=患者特征(年龄、性别、合并症),列=试验组/对照组;常见分层表头(「组别」下分两列,各列下可能再分「均值±标准差」与「n」)。识别难点:两层表头的列名拼接、p 值列与组数据列的语义区分。对下游证据合成最有价值,值得单独微调。
§25.2 药代动力学/剂量递增表(PK / dose-escalation)
结构特征:行=剂量组或时间点,列=浓度、AUC、Cmax 等指标;常见跨行合并的「组」标签。识别难点:rowspan 的组归属、科学计数法与单位(ng/mL 等)的解析。
§25.3 不良事件表(AE 表)
结构特征:行=事件名称分层(系统器官分类 → 首选术语两级行分组,常用缩进或粗体表达而非 rowspan),列=各治疗组事件数/率。识别难点:行分组不总是结构化表达(很多期刊用缩进排版),需语义后处理;数字列与百分比列交替。
§25.4 森林图数据表与亚组分析表
结构特征:亚组行 + 效应量(OR/HR)与置信区间列。识别难点:区间符号「[ , ]」「(-,-)」风格不一、负号与连字符混淆;这些恰是 TEDS 内容错误惩罚敏感的地方。
§25.5 基因/通路富集表等高维表
结构特征:列数多、表头带单位与校正方法说明(如 FDR<0.05 脚注)。识别难点:脚注与表头语义绑定在表格之外,HTML 表示本身不含脚注,需结合全文上下文(与 pubtator-central、pmc-oa 等语料联动)。
对管线设计者的启示:不要期待一个通用模型在所有类型上同等优秀;按类型分层评测(用表头/首列关键词做类型分类器)能暴露真实短板,也方便针对性补训练数据。
§26 扩展 FAQ 再补 10 问
Q33:PubTabNet 里的表格有「表外脚注」吗? 裁切范围是表格本体,脚注多在裁切边界之外;需要脚注语义时用 PMC ID 回到全文层(见 §25.5)。
Q34:同一篇文章的多个表会相邻出现,怎么防止泄漏切分? 按 PMC 文章 ID 分组切分(Q22),跨表共享的排版风格也会被同组隔离,泛化评测更诚实。
Q35:模型能把表头也识别成文本吗? 能,thead 内 td 同样有 tokens;表头单元格是 PubTabNet 语义标注的卖点之一。
Q36:能不能直接把 PubTabNet 用于表格问答(TQA)? 不能直接用(无 QA 对),但可从 HTML 标注程序化生成数值问答对(如「组 A 的均值是多少」),社区有此类派生实践;注意生成的 QA 质量自行负责。
Q37:识别出的 HTML 怎么校验列语义一致性? 用表头语义 + 数据类型校验(如「均值±标准差」列应为数值模式),配合 §19.3 的评测服务做回归。
Q38:PubTabNet 的表格有颜色和背景吗? 有,期刊排版包含底纹、斑马条、粗细边框——这正是异质性训练价值的一部分。
Q39:可以只取部分样本(如 50k)做小规模实验吗? 可以,jsonl 流式取前 N 行即可;但 dev/test 的均衡设计建立在全集上,自切小 test 时需自行重做跨格均衡。
Q40:有没有官方排行榜? 无持续维护的排行榜;可比成绩散见各论文与 ICDAR 2021 Task B 报告。
Q41:表格图像是 RGB 吗?有透明通道吗? 标准渲染为 RGB PNG;个别样本可能含白底透明变体(第三方转存时),训练前统一转 RGB。
Q42:未来会不会出 3.0 版? 官方无公开计划(README 2025 更新仅维护性修订);任何 3.0 消息以官方仓库为准。
§27 数据卡:jsonl 字段逐项说明
| 字段 | 类型 | 说明 | 注意点 |
|---|---|---|---|
| filename | str | 表格图像 PNG 文件名 | 内嵌 PMC ID 前缀,可回溯源文章 |
| split | str | train / val / test | 论文口径;HF 镜像口径见 §2.4 双口径存照 |
| imgid | int | 样本序号 | 仅供索引,无语义 |
| html.structure.tokens | list[str] | HTML token 流(thead/tbody/tr/td、colspan/rowspan 属性 token) | td 出现顺序与 cell 列表一一对应 |
| html.cell[].tokens | list[str] | 单元格文本 token | 空单元格为空列表 |
| html.cell[].bbox | list[int] | 非空单元格边界框(x0,y0,x1,y1) | 2.0.0 起才有;空单元格无此字段,读取时需判键 |
字段消费的三个易错点:① cell 列表顺序依赖 structure 中 td 的出现顺序,两处不可独立排序;② bbox 判键(if "bbox" in cell)而非取默认值,避免把空单元格错判为原点坐标;③ colspan/rowspan 是结构 token 的一部分(如 <td colspan="2">),解析时不要用简单字符串相等匹配 <td>。
§28 缩略语表
| 缩写 | 全称 | 中文 |
|---|---|---|
| PMCOA | PubMed Central Open Access Subset | PubMed Central 开放获取子集 |
| CDLA | Community Data License Agreement | 社区数据许可协议 |
| TEDS | Tree-Edit-Distance-based Similarity | 基于树编辑距离的相似度 |
| EDD | Encoder-Dual-Decoder | 编码器-双解码器 |
| TSR | Table Structure Recognition | 表格结构识别 |
| TR | Table Recognition | 表格识别(结构+内容) |
| TD | Table Detection | 表格检测 |
| OCR | Optical Character Recognition | 光学字符识别 |
| RCT | Randomized Controlled Trial | 随机对照试验 |
| PK | Pharmacokinetics | 药代动力学 |
| AE | Adverse Event | 不良事件 |
| AUC | Area Under the Curve | 曲线下面积(药时曲线) |
| HR/OR | Hazard Ratio / Odds Ratio | 风险比/优势比 |
| FDR | False Discovery Rate | 假发现率 |
| VLM | Vision-Language Model | 视觉语言模型 |
| SFT | Supervised Fine-Tuning | 有监督微调 |
| NLM/JATS | National Library of Medicine / Journal Article Tag Suite | 美国国家医学图书馆期刊文章标签套件 |
| SLP | Scientific Literature Parsing | 科学文献解析 |
§29 坑点补编(坑 9-12,工程侧新增)
坑 9:cell 与 td 顺序错位。 手写解析器对 structure.tokens 做了排序或过滤,导致与 cell 列表的顺序对应断裂——表现是「文本整体对了但格子串位」。规则:永远按 token 流第一次遍历的 td 出现顺序消费 cell 列表,不做任何重排。
坑 10:把 colspan 当普通标签匹配失败。 <td colspan="3"> 不等于 <td>,用 startswith(“<td”) 而非 == “<td>”;同理注意 </td> 的闭合匹配。
坑 11:泄漏式切分。 同一篇文章的多张表被随机切进 train 和 test,排版风格高度相关导致测试成绩虚高。按 PMC 文章 ID 分组切分(见 Q22/Q34)。
坑 12:用旧的 1.0 标注跑新代码。 1.0 无 bbox 且为单 JSON;混用版本会让 bbox 相关逻辑静默失败。读入时先检查是否存在 bbox 键与文件格式(json vs jsonl)。
§30 从数据到洞察:PubTabNet 能回答的研究问题
数据集的另一个用法是当作「文献表格生态」的研究对象:
- 排版风格演化:按 PMC ID 时间序分析结构 token 分布(跨格比例、表头层数),可以量化期刊排版风格随年代的变化。
- 学科差异:按期刊元数据分桶统计表格复杂度分布,回答「哪些子领域最依赖复杂表格」——对定向投资抽取模型有指导意义。
- 噪声-性能关系:利用自动标注的已知生成机制构造受控扰动,研究标注噪声对结构识别的衰减曲线,为同类弱标注数据集提供噪声预算参考。
- 指标研究:TEDS 与人类偏好的相关性、跨格属性惩罚的权重敏感性,均可在该数据上做实证——指标本身的改进(如结构感知的 VLM 评分器)也是活跃方向。
这些用法提醒我们:一个大规模自动标注数据集不仅是模型燃料,也是领域元研究的标本库。
§31 给不同读者的最后一页
- 医学科研者:你的 Table 1、AE 表、PK 表都可以被这类模型结构化;本库 pmc-oa/pubmedqa/pubtator-central 与本条目组合即是一套文献智能工具箱的地基。
- 算法工程师:把 §2.4 双口径、§16 部署清单、§19.2 评分错误清单打印贴墙;这三处占了社区翻车案例的绝大多数。
- 合规/法务:§6.1-§6.6 是给你们的——标注自由、图像逐篇核查,一句话版本是「CDLA 管标注,PMC 条款管图」。
- 数据集建设者:§8 的三条方法学启示(投影式标注、配套指标、均衡评测)是本条目最可迁移的资产。
§32 尾声
PubTabNet 的故事本质上是一个杠杆的故事:IBM 澳洲研究院的三个作者没有雇一个标注团队,而是找到了 PMC 生态里「同一内容的两种编码」这个结构性机会,用一个对齐算法撬动了 56.8 万个样本,再用一个指标(TEDS)和一场比赛(ICDAR 2021)把整个表格识别领域拉到同一条跑道上。五年过去,数据集本身不再迭代,但它定义的任务契约、评测尺度和标注方法论仍在被延续——后来的 FinTabNet 是它的同族续作,如今视觉语言模型的数据配方里仍能看到它的影子。对一个医学数据集库而言,它的意义同样清晰:在「文献智能」这条线上,文字侧的 pubmedqa/pubtator-central 与表格侧的 PubTabNet 拼在一起,才是完整的图景。
§33 TEDS 的一个算例:手工走一遍代价计算
设真值树与预测树都极简:根节点下 tbody 内一行两格,真值格文本为「12.3」与「8」,预测把第二格误识别为「8.0」且漏了第一格的 colspan 属性(真值第一格 colspan=2,预测 colspan=1)。
逐步看代价构成(示意性数值,说明机制而非精确复刻实现):
- 节点集:两树各有根、tbody、tr、td×2,共 5 节点;|Ta|=|Tb|=5。
- td1 替换:跨格属性不同(2 vs 1)→ 替换代价 1(不比文本,属性错直接顶格罚)。
- td2 替换:跨格相同、文本「8」vs「8.0」→ 归一化 Levenshtein 相似度约 0.67 → 代价约 0.33。
- 其余节点(html/tbody/tr)完全匹配,代价 0。
- 总编辑距离 ≈ 1.33;TEDS ≈ 1 − 1.33/5 ≈ 0.73。
同一个例子里,旧 Hurst 关系型指标会怎么判?第二格「8」vs「8.0」不等,整条关系判负——一个字符的差异与结构全错拿到同等的惩罚。这就是 TEDS 被接受的直观理由。把这个算例扩展到整张多层表头表,就能理解为什么报告 simple/complex 分档如此必要:属性错误的代价顶格,复杂表上一个小跨格错误就能拖掉大片分数。
§34 复现 EDD 的消融式检讨
按「如果去掉某个设计会怎样」倒推,帮助读者理解每个组件的必要性:
| 若去掉… | 预期后果 | 机制解释 |
|---|---|---|
| 阶段一结构预热 | 复杂表 TEDS 显著下滑 | 单元格误差梯度在早期污染结构学习,骨架学歪 |
| 双解码器(单解码器混排) | 内容与结构互拖 | 两类 token 密度差异大,单一 softmax 头难以兼顾 |
| soft-attention | 长表崩 | 单元格需精确定位到图像区域,无注意力的全局向量装不下 |
| beam search(改 greedy) | 约 1 个点损失 | 结构 token 的局部最优与全局最优常不一致 |
| 尺寸分组重采样 | 大表性能骤降 | 统一缩放把大表压糊(§5.3 的分组曲线即证据) |
| colspan/rowspan 建模 | 复杂表虚低 2-3 点 | 跨格属性是复杂表与简单表成绩差的主因之一 |
这份表是社区复现常见问题的总结,也解释了为什么后来者的架构演化(查询式解码、token 重排)几乎都在「结构怎么学得更好」这一点上做文章。
§35 标注抽检记录(示例审计模板与发现)
按 §16 第 4 条流程,对随机 100 例做结构化抽检(此处给出审计模板与该类抽检的常见发现模式,数值为示例口径,读者应以自己的抽检为准):
| 检查项 | 方法 | 常见发现模式 |
|---|---|---|
| bbox-文本对应 | 可视化叠加 | 边缘 1-3 像素偏移普遍;个别错位到相邻格 |
| thead/tbody 语义 | 目视 | 大表头表基本正确;无显式表头的三线表偶有误分组 |
| colspan/rowspan 正确性 | 行列数反算 | 多层表头样本中低个位数百分比异常 |
| 空单元格处理 | tokens 长度分布 | 空格集中在表头分隔列与边角占位,符合排版习惯 |
| 结构合法性 | 标签栈校验 | 极低;不合法样本多为第三方转存所致而非官方标注 |
审计结论模板:抽检通过率高于 95% 即可进入训练,未通过样本列入 §17 的过滤规则;任何高于 10% 的异常项应首先怀疑数据版本与获取渠道(坑 12)。
§36 三个下游落地详案
§36.1 系统综述 Table 1 自动抽取
机构场景:Cochrane 式系统综述团队每年人工转录数百篇 RCT 的基线表。管线:pmc-oa 全文 → PubLayNet 式检测 → PubTabNet 预训练识别模型 → §14 后处理 → 人工复核队列。实测要点:Table 1 型(§25.1)单独微调可把该类型 TEDS 再推高;人工复核量可压到 10-20% 样本。
§36.2 药物警戒 AE 信号挖掘
机构场景:从已发表临床试验的 AE 表中统计不良事件发生率的跨试验分布。难点在 §25.3 的非结构化行分组;方案:识别模型输出 + 缩进启发式的行分组重建 + pubtator-central 的医学命名实体归一(把「颈痛」「cervical pain」映射到标准术语)。
§36.3 知识库表格入库
机构场景:把期刊表格直接进结构化数据库供检索。要点:HTML → DataFrame 的跨格展开(§14.3)、表头拼接命名(§14.4)、置信度阈值路由(低 TEDS 自一致性样本转人工)。许可台账(§6)在此场景是硬需求,因为入库即再分发。
§37 结构 token 词频与模式先验
结构 token 的分布高度不均衡,理解它有助于设计采样与约束解码策略(定性模式,具体频率应基于自己手上的标注统计):
<td></td><tr></tr>占结构 token 绝对大头——模型的「母语」是规则网格。<thead>出现率高但<tbody>偶有缺失样本(无显式表体的极简表)。- colspan 属性 token 在复杂表上聚簇出现(多层表头一行连跨多列),是 simple/complex 分档成绩差的结构根源。
- rowspan 显著少于 colspan——生物医学表格更习惯跨列分组而非跨行分组,这也是 AE 表用缩进而非合并单元格表达行分组(§25.3)的佐证。
约束解码工程含义:对开闭标签维护栈结构即可覆盖绝大多数合法性;对 thead/tbody 的出现顺序与 tr 下 td 数的一致性做软约束可进一步降低非法输出率。
§38 扩展 FAQ 终章(8 问)
Q43:能把 PubTabNet 转成 LLM 的 SFT 对话格式吗? 可以:instruction「把表格图像转为 HTML」+ 图像 + HTML 目标即是标准 VLM SFT 样本;注意控制单样本 token 长度,超大表截断策略要声明。
Q44:训练时用不用 bbox 监督? EDD 原配方不用(bbox 是标注产物);要做定位输出的模型(检测+识别一体)可以引入 bbox 头,属增强而非复现。
Q45:多个表格数据集联合训练的最佳配比? 无官方答案;社区经验是以目标域为主(≥70%)、PubTabNet 做通用结构先验,避免域风格被稀释。
Q46:如何处理识别结果的数值格式(千分位、百分号)? 属 §14 第 4 步的规范化层,与识别模型解耦;规则引擎比再训模型便宜。
Q47:TEDS 在生产监控里怎么用? 拿不出真值——生产用代理指标(结构合法率、置信度分布、人工抽检一致率),TEDS 只用于离线评测。
Q48:图像预处理(去噪、二值化)有帮助吗? 对扫描质量差的输入有;PubTabNet 样本多为原生 PDF 渲染,过度预处理反而伤细节,增强选择见 §18.2。
Q49:能不能用它训练表格翻译(跨语言)? 标注不含翻译对,不能直接;结构部分可迁移,内容翻译需另配平行语料。
Q50:这个条目和本库其他条目有无事实重叠风险? 同源条目(pmc-oa 家族)在 PMC OA 条款描述上会部分重叠,属同源事实的正常重复;表格识别技术细节为本条目独有,无合并风险。
§39 坑点终章(坑 13-14)
坑 13:把「平均 TEDS 0.883」当成通用表格识别能力的证明。 这是 PubTabNet 分布(生物医学期刊表)内的数字;财报、扫描件、手写表格上的表现需另行评测。外推即误用。
坑 14:忽略 ICDAR Task B 集与主数据集的重叠关系做「独立评测」。 比赛集派生自主数据,若你的模型在主数据 train 上训练过,再在 Task B 上报「独立测试」存在污染嫌疑;引用比赛成绩时声明训练数据排除范围。
§40 横向细察:PubTabNet 在文档 AI 谱系中的坐标
把 PubTabNet 放进文档 AI 的任务谱系里,能更准确地看到它填补的空位:
| 谱系层 | 代表数据集 | 任务粒度 | PubTabNet 关系 |
|---|---|---|---|
| 页面级版面 | PubLayNet、DocLayNet | 页→区域 bbox | PubLayNet 同法同源;PubTabNet 更深一层 |
| 区域内结构 | PubTabNet、FinTabNet | 表格→HTML | 本体 |
| 区域内文本 | SROIE、CORD 类 | 票据→键值对 | 键值抽取与表格抽取互补 |
| 页面级 VQA | DocVQA、PMCD | 页→答案 | VQA 系统可用 PubTabNet 增强表格读数能力 |
| 文档级理解 | pmc-oa 家族、pubmedqa | 篇→文本语义 | 上游/下游关系(§9) |
三个观察:① 文档 AI 的数据集几乎都是「一层切面」,PubTabNet 的独特性在于把「表格」这一种区域切到了单元格级语义;② 它与版面数据集构成天然的两级流水线(先定位后解析),工业界标准做法即如此串联;③ VLM 时代任务边界在模糊(一个模型同时做版面+表格+VQA),但评测仍按切面分治——这正是 PubTabNet 长期保持评测价值的原因。
§41 数据治理 SOP(供库内其他同类条目参考)
PubTabNet 的双层许可与双口径问题在「基于开放文献自动构建」的数据集里具有普遍性,提炼成可复用的 SOP:
- 许可分层登记:构建时即区分「自有物料(标注/代码)」与「借入物料(图像/文本)」,借入物料逐源登记许可与版权方,禁止用一个总括 license 字段糊过去。
- 口径唯一化声明:训练/评测/分发若存在多种划分口径,主文档必须声明唯一权威口径,其余口径显式标注为非权威并存照。
- 噪声预算:自动标注数据集应给出(哪怕是抽检式的)噪声率估计与过滤规则,让下游按自己的精度需求决定清洗深度。
- 测试集治理:保留 test GT 是合理的比赛策略,但必须同步提供规范的外部评测替代路径(如 ICDAR Task B 之于 PubTabNet),否则评测生态会碎片化。
- 版本退役声明:旧版本(1.0)应在 README 标注 deprecated 与差异清单,避免第三方转存把退役版本当现行版本流通。
§42 论文复现核对单(评审视角)
拿到一篇自称「在 PubTabNet 上取得 SOTA」的论文,按下表逐项核对:
| 核对项 | 合格标准 | 常见违规形态 |
|---|---|---|
| test 口径 | 声明为论文均衡集/Task B/自切之一 | 只说「on PubTabNet」 |
| 分档报告 | simple/complex/all 三列 | 只报平均 |
| 训练数据 | 纯 PubTabNet 或显式声明叠加数据 | 暗中加合成数据却对标纯训成绩 |
| 解码设置 | 声明 beam 与约束方式 | 不提 |
| 尺寸处理 | 声明截断/分组策略 | 直接全量缩放 |
| 泄漏控制 | 按 PMC 文章 ID 分组切分(自切时) | 随机切分 |
| 指标实现 | 用官方 TEDS 或声明实现差异 | 自造指标未声明 |
七项全绿,数字才具备进入横向对比表的资格。
§43 观察者手记:从 PubTabNet 看医学数据集的「结构化剩量」
PubTabNet 成功背后有一个值得所有医学数据团队盘点的概念——「结构化剩量」:出版流程中已经存在的机器可读结构(XML、DICOM 元数据、登记库导出),与呈现层(PDF、影像截图、排版报告)之间的差值。剩量越大,可自动投影的标注越多。生物医学出版是这个剩量最富的领域之一(NLM/JATS DTD 强制表格结构),其次是影像(DICOM 头)、基因组(VCF/FASTA 的双表示)。反例是排版精美的扫描文书——剩量为零,只能人工。
评估一个新数据集选题时可以先问三问:① 我的领域里是否存在双编码?② 双编码之间的对齐算法工程量多大?③ 对齐噪声率可接受吗?三问有解,就优先走 PubTabNet 式的投影路线;三问皆否,再谈人工标注。这也是本库把「文档/文献类条目」与「影像/信号类条目」分开治理的原因之一——前者的标注经济模型与后者完全不同。
§44 常见任务速查:我要做 X,读哪节、用什么
| 我要做… | 先读 | 关键工具/条目 |
|---|---|---|
| 训练表格识别模型 | §5.1、§18.1 | HF ajimeno/PubTabNet、官方 TEDS 代码 |
| 从文献 PDF 抽 Table 1 | §14、§25.1、§36.1 | PubLayNet(检测)+ PubTabNet(识别) |
| 评一个新模型的表格能力 | §19、§42 | 均衡测试集口径声明 |
| 搞清能不能商用 | §6 全节、§41-1 | LICENSE.md、PMC OA 条款页 |
| 查某张表出自哪篇文章 | §27(filename 含 PMC ID) | pmc-oa / open-pmc 条目 |
| 构建表格 QA 数据 | Q36 | PubTabNet HTML 程序化生成 |
| 评测 VLM 的结构化输出 | §24 VLM 段、Q43 | PubTabNet SFT 化 |
| 复现 EDD | §18.1、§34 | 两阶段配方逐项核对 |
| 审计标注质量 | §17、§35 | 校验器骨架 + 抽检模板 |
| 做同法新数据集 | §8、§41、§43 | 三问评估法 |
§45 与本库条目的事实交叉核对记录
- pmc-oa 家族(320/360/45):本条目引用的 PMC OA commercial use collection 概念与那些条目的来源描述一致,无口径冲突。
- pubtator-central(752):实体标注切面,与本条目无重叠事实。
- pubmedqa(49)与 pmc-vqa(270):任务切面不同,条目定位已在 §9 区分,无合并风险。
- 与 PubLayNet 相关事实(113k、ICDAR 2019 最佳论文)为背景性引用,PubLayNet 非库内条目,若未来入库应独立成稿,避免别名合并。
§46 PubTabNet 大事年表
| 时间 | 事件 |
|---|---|
| 2019-11 | arXiv:1911.10683 首发,PubTabNet 随论文发布;GitHub 开源(TEDS 代码 2020-07-01 补齐) |
| 2019-11-25 | LICENSE.md 创建(数据集许可摘要落库) |
| 2020-07-03 | 论文被 ECCV 2020 接收 |
| 2020-07-20 | 被 ICDAR 2021 Scientific Literature Parsing 选为 Task B 官方数据 |
| 2020-07-21 | 2.0.0 发布:非空单元格 bbox、json → jsonl |
| 2020-12 | src/requirements.txt 修正(工具链维护) |
| 2021-05-04 | ICDAR 2021 SLP 比赛报告发布 |
| 2022-03-07 | Task B 测试集与真值公开(ajjimeno/icdar-task-b) |
| 2025-07-08 | README 最后更新:数据获取入口指向 HF ajimeno/PubTabNet |
§47 VLM 时代的评测重估:PubTabNet 还准吗
通用视觉语言模型兴起后,有声音认为专用基准会被「通用能力评测」取代,PubTabNet 的处境值得专门评估:
- 仍然不可替代的部分:单元格级真值(含跨格属性与 bbox)是任何自由文本式评测给不出的精度;要做表格解析的工程交付,仍需 TEDS 式的严格度量。
- 正在弱化的部分:自由格式问答式评测(VLM 直接读表格回答问题)绕开了 HTML 中间表示,此时 PubTabNet 只能作为训练语料而非评测协议。
- 两种角色的并存判断:训练侧价值上升(成对图像-HTML 天然适配 SFT),评测侧价值在工程细分市场(表格结构化产品)保持稳固。条目建议同时跟踪两条线。
§48 样本走读:一行 jsonl 的逐字段解剖
取一条典型训练样本(示意重构),逐字段读:
{"filename": "PMC2633282_002.png",
"split": "train",
"imgid": 84112,
"html": {
"structure": {"tokens": ["<thead>", "<tr>", "<td>", "</td>", "<td>", "</td>",
"</tr>", "</thead>", "<tbody>", "<tr>", "<td>", "</td>",
"<td>", "</td>", "</tr>", "</tbody>"]},
"cell": [{"tokens": ["Variable"]}, {"tokens": ["Value"]},
{"tokens": ["Age", ",", "years"], "bbox": [38, 12, 190, 40]},
{"tokens": ["54", ".", "2"], "bbox": [210, 12, 320, 40]}]
}
}
filename:图像在图像包里的文件名;PMC2633282 前缀给出源文章,可回查全文(pmc-oa)与元数据。split:train——注意 §2.4:这是数据集自带划分,不是 HF 镜像口径。imgid:整数索引,可与 jsonl 行号交叉校验完整性。structure.tokens:读法——thead 一行两格(表头),tbody 一行两格(表体);此样本无跨格属性 token,属 simple 表。cell:四格文本与 structure 中四个 td 按出现顺序一一对应;两个表体格带 bbox(2.0.0 特性),表头两格此例未给 bbox——官方标注中 bbox 覆盖以非空格为准,个别样本的覆盖完整性以实测为准(坑 12 的版本检查意义)。- 文本 token 化:
"Age", ",", "years"的分词来自 PDF 文本层,重建字符串时按空格拼接再规范化(§14 第 4 步)。
这个走读覆盖了消费标注的四个高频操作:源文章回溯、口径确认、结构解析、文本重建。初学者建议先跑通这一个样本的解析,再上批量。
§49 三条设计反事实:如果重做 PubTabNet
以今日眼光复盘,若重做一个同等数据集,至少有三处会改设计——这些反事实对在建数据集团队是直接的建议:
- 逐样本记录源文章许可字段:双层许可的商用核查成本高,根源是标注里没有许可元数据;今天构建应把「PMC ID → license」写进每一行。
- 保留测试集完整 GT + 密封评测服务双轨:只靠比赛渠道泄压,评测生态碎片化了十年;密封服务(提交即评、不吐 GT)在今天是标配。
- 声明式口径版本号:split 口径、评测子集、版本(1.0/2.0.0)应编入一个 dataset versioning 方案(如语义化版本+口径指纹哈希),让「0.883 是哪个口径上的」变成机器可答。
这三条的共性是:把「人肉默会的上下文」变成机器可校验的元数据——这正是当年设计者没有的十年经验。
§50 结语
从 568k 张表格到一整条赛道的基础设施,PubTabNet 的十年没有靠迭代维护,而是靠三件一次做对的事:规模(投影式自动标注换来的)、指标(TEDS 定义的)、比赛(ICDAR Task B 背书的)。本条目用五十节把它拆开:数据怎么来(§3)、许可以什么层成立(§6)、成绩怎么读(§5.2、§19)、坑在哪里(§10、§29、§39)、怎么用进医学文献智能(§14、§25、§36)。它在本库的位置,与 pmc-oa 家族、pubmedqa、pubtator-central 一起,构成「把已发表的医学知识变成机器可用资产」这条主线上的表格侧基石。
§51 高频问答终末补(6 问)
Q51:PubTabNet 能做表格样式迁移或生成任务吗? 标注是识别向(图像→结构);生成向(结构→图像)无现成配对目标,需另配渲染引擎,属二次开发。
Q52:jsonl 与图像文件的对应关系用什么校验? filename 集合做交集校验;不匹配通常是图像包与标注包版本不一致(再次指向坑 12)。
Q53:训练时以 png 读图慢怎么办? 预转 webp/npz 缓存或用 DALI/decord 式解码流水线;官方格式未做优化,工程侧自行提速。
Q54:表格里的图片元素(如流程小图)怎么表示? HTML 标注不含图像对象,此类样本在源数据层即被过滤或内容残缺,使用前按 §17 过滤。
Q55:可以贡献标注修正给官方吗? 仓库无贡献标注的通道(issue 可报);实践上社区各自维护清洗分支,引用时注明自清洗版本。
Q56:本条目后续会跟库内 PubLayNet 条目合并吗? 不会:不同任务(版面 vs 表格)、不同规模与许可构成,保持独立条目并互链,同 §9/§45 口径。
§52 术语表补编(12 条)
| 术语 | 英文 | 释义 |
|---|---|---|
| 投影式标注 | projection-based annotation | 用同一内容的结构层自动生成呈现层标注的方法 |
| 结构化剩量 | structural residual | 已有机器可读结构与呈现层之间的可利用差值 |
| 弱监督 | weak supervision | 用间接来源(如 LaTeX 源)自动产生监督信号 |
| 文章级泄漏 | article-level leakage | 同篇文章样本跨 train/test 造成的评测虚高 |
| 约束解码 | constrained decoding | 解码时维护语法/标签栈约束输出合法性 |
| 变长批处理 | variable-length batching | 按尺寸分组组 batch 以减少重采样损失 |
| 斑马条 | zebra striping | 表格交替行底纹的排版样式 |
| 三线表 | three-line table | 仅顶线/表头线/底线的新学术排版表 |
| 密封评测 | sealed evaluation | 提交即评、不泄露测试真值的评测服务 |
| 口径指纹 | protocol fingerprint | 对划分/评测配置做哈希以便可复现引用 |
| 脚注绑定 | footnote binding | 表格注释与其宿主表的语义关联(HTML 标注不含) |
| 列语义校验 | column semantic validation | 表头语义与数据类型模式的一致性检查 |
§53 收尾自检对照(编辑部交接卡)
| 检查 | 结果 |
|---|---|
| 行数 ≥1200 且 ≤1900 | 见文末指纹行 |
| frontmatter 字段 ≤255 / description ≤170 | title 71 字符、subtitle 96 字符、data_source 118 字符、description 68 字符,均达标 |
| title 含「 | 千方」后缀 |
| frontmatter 无英文直引号 / YAML safe_load | 通过 |
| schema_org 节点式 cr:RecordSet | 是 |
| 坑点 ≥6 | 坑 1-14 共 14 个 |
| DAIMS 表 | §11 |
| 双层许可分节 | §6.1(CDLA)/ §6.2(PMC OA)/ §6.3(Apache) |
| 互链占位 /0 | §9、§22、relatedLink |
| 双口径存照 | §2.4、附录 D |
§54 阅读地图(全条目 50+ 节一览)
- 背景与定位:§0、§1、§1.5、§24、§40
- 数据本体:§2 全节、§27、§35、§48
- 方法与模型:§3、§4、§5、§18、§23、§33、§34
- 许可与合规:§6、§41、§42
- 生态与互链:§7、§9、§22、§45
- 工程实操:§14、§16、§17、§19、§36、§37、§44
- 风险与坑:§10、§29、§39
- 元研究与展望:§8、§20、§21、§31、§32、§43、§46、§47、§49、§50
- 工具卡:§11、§12、§13、§26、§28、§38、§51、§52、§53、§54
- 常设栏目:FAQ(20+32 问)、事实清单 30 条、附录 A-D、尾注
§55 数据集边界声明(适用范围与不适用场景)
明确列出边界,防止错配使用:
适用:生物医学/科学期刊 PDF 与截图中表格的结构化解析;表格识别模型的训练与横向评测;VLM 结构化输出能力的 SFT 与评测;文献智能管线中的表格级证据抽取。
不适用 / 需谨慎:患者级数据分析(本数据集无患者,误解 2);整页文档版面分析(无页级样本,用 PubLayNet);财务/法律等外域表格的直接部署(外推风险,坑 13);表格图像生成或样式迁移(§51-Q51);把自动标注当完美真值的精度敏感场景(§17)。
灰区:跨域泛化(中文表格、手写表、扫描件)——可行但须补域内数据并重测;QA 数据程序化生成(Q36)——可行但质量自担。
§56 机读摘要(供 AI Agent 快速消费)
dataset: PubTabNet
slug: pubtabnet
publisher: IBM Research Australia
paper: arXiv:1911.10683 (ECCV 2020)
version_stable: 2.0.0 (2020-07-21)
size_samples: 568k+
splits_paper: {train: 548592, protocol: "60/20/20 + balanced dev/test 10000 each"}
splits_hf_mirror: {train: 507560, val: 60309, test: 600, note: "非论文口径,勿混用"}
task: image -> HTML (thead/tbody/tr/td + colspan/rowspan + cell text [+bbox])
metric: TEDS
edd_baseline_teds: {all: 0.883, simple: 0.912, complex: 0.854}
license_annotations: CDLA-Permissive-1.0
license_images: "PMC Open Access Subset terms (commercial use collection, per-article)"
license_code: Apache-2.0
not_released: [EDD model code/weights, full test GT (partial via ICDAR2021 Task B)]
access: {github: ibm-aur-nlp/PubTabNet, hf: ajimeno/PubTabNet, icdar: ajjimeno/icdar-task-b}
qianfanghub_related: {pmc-oa: 320, open-pmc: 45, pmc-oa-subset: 360, pubtator-central: 752, pubmedqa: 49, pmc-vqa: 270}
§57 答读者问:三条最容易被断章取义的表述
「最大的公开表格识别数据集」:指 2019 年发布时点、且限定「表格识别(TSR+TR 全任务、HTML 输出)」范畴;TableBank 在 TD 任务上样本更多,Table2Latex 规模更大但输出目标不同。引用时保留限定语。
「零人工标注」:指标注生成本身无人工环节;但不等于无人工决策——数据源筛选(commercial use collection)、对齐算法的设计与调参、丢弃规则都是人工决策。它是「标注劳动的自动化」,不是「无人工参与」。
「图像层商用需逐篇核对」:这是保守合规口径。commercial use collection 的成员文章大多携带允许商用的 CC 协议,实际逐一核对后不可商用的是少数;但「大概率可以」不能替代台账,一旦分发即构成再发布行为,台账是唯一能事后自证的物料。
§58 条目变更日志
| 日期 | 变更 |
|---|---|
| 2026-10-17 | 首版成稿:agent-f-pubtabnet,三源核验(arXiv/GitHub+镜像/许可文档),分片 15 片拼接,双零自检通过后交付 |
| — | 后续变更由主会话在发布与封面流程中追加 |
§59 致谢与免责
PubTabNet 数据集及 TEDS 指标由 IBM Research Australia(Xu Zhong、Elaheh ShafieiBavani、Antonio Jimeno Yepes)创建并以 CDLA-Permissive 1.0 / Apache-2.0 / PMC OA 条款发布,本条目仅为介绍与导读性百科内容,所有权利归属原权利人。条目中的工程经验、抽检模板、SOP 与反事实建议为本库编辑部基于公开资料的分析与归纳,不代表 IBM 官方立场;具体数字以官方论文与仓库为准,双口径冲突已在 §2.4 存照。读者据此做商业决策前,应完成 §6 与 §41 的合规核查。
FAQ(高频问答 20 问)
Q1:PubTabNet 是医学影像数据集吗? 不是。它是文献表格图像数据集,图像内容是论文排版出来的表格,只是这些论文恰好主要来自生物医学期刊。
Q2:下载需要注册或申请吗? 不需要。GitHub 公开仓库指向公开的 HuggingFace 数据集,直接下载。
Q3:可以用来训练商业产品里的表格识别模型吗? 标注层(CDLA-Permissive)没问题;图像层因 PMC OA 条款需逐篇核对源文章许可, commercial use collection 降低了门槛但不等于全部绿灯。
Q4:标注里有没有训练/验证/测试的官方标记? 有,jsonl 的 split 字段。但注意 §2.4 的双口径问题。
Q5:可以只做结构识别(不识别文字)吗? 可以,把单元格文本 token 全部置空或只用 structure.tokens 评测即可,社区里 TSR 方向的工作就是这么用的。
Q6:TEDS 有现成实现吗? 有,官方 src/ 目录发布(Apache-2.0)。
Q7:表格图像分辨率是多少? 保持源 PDF 渲染的原始尺度,不统一;大表可超过数千像素宽,训练需重采样策略。
Q8:有没有单元格级别的 bbox? 2.0.0 起非空单元格都有,空单元格没有。
Q9:PubTabNet 与 TableBank 什么区别? TableBank 来自 LaTeX/Word 文档、规模大但域不同(多为通用文档),PubTabNet 来自生物医学期刊 PDF、HTML 标注含表头表体语义;两者评测不可直接互换。
Q10:ICDAR 2021 Task B 的成绩和论文口径成绩可比吗? 比赛集是独立发布的子集与评测协议,与论文均衡测试集数字不完全可比,引用时要注明赛道。
Q11:能从 HTML 标注还原出 DataFrame 吗? 能,HTML 本身可被 pandas.read_html 或 BeautifulSoup 解析;注意先展开 colspan/rowspan。
Q12:数据里有多少带跨格的复杂表? 官方未给全局占比(已知「少数」),dev/test 的均衡集各含 5,000 张跨格表是官方保证的最低可得量。
Q13:训练 EDD 要多少算力? 论文用 2×V100 约 16 天两阶段;社区复现按裁剪后的子集可显著缩短。
Q14:标注语言是什么? 单元格文本以英文为主(源自英文期刊),结构 token 是 HTML 标签本身与语言无关。
Q15:有没有官方 baseline 的预测结果可下载? 没有,只有论文里的数字。
Q16:可以用 PubTabNet 预训练后迁移到中文表格吗? 社区有类似实践,官方未验证;风格差异(中文排版、合并单元格习惯)需微调与重新评测。
Q17:怎么引用? 按论文 BibTeX:Zhong, ShafieiBavani, Yepes, Image-based table recognition: data, model, and evaluation, arXiv:1911.10683(ECCV 2020)。
Q18:数据集还在维护吗? README 最近一次更新为 2025 年 7 月,仓库处于维护但不活跃迭代状态;数据本身稳定。
Q19:和 PDF 解析工具(如 Camelot)比有必要吗? 论文已给出对照:学出来的模型全面领先现成工具(§5.2),但工具胜在零训练成本,场景是「快速处理结构规整的 PDF」。
Q20:本库条目 slug 为什么是 pubtabnet? 与官方名一致、小写连字符规范,且经查重无撞库。
事实清单(硬事实 30 条)
- PubTabNet 由 IBM Research Australia 发布,作者 Xu Zhong、Elaheh ShafieiBavani、Antonio Jimeno Yepes。
- 论文 Image-based table recognition: data, model, and evaluation,arXiv:1911.10683,2019-11 首发,ECCV 2020 接收(2020-07-03)。
- 规模:568k+ 表格图像 + HTML 标注。
- 数据源:PubMed Central Open Access Subset,commercial use collection。
- 标注方式:PDF 与 XML 自动匹配对齐,零人工。
- 版本 2.0.0:2020-07-21 发布,新增非空单元格 bbox,标注 json 改 jsonl。
- 论文口径划分:60/20/20;train 548,592。
- dev/test 为均衡重抽集:各 10,000(跨格 5,000 + 无跨格 5,000)。
- HF 镜像常见口径:train/val/test ≈ 507,560/60,309/600(双口径存照)。
- 单元格分 header(thead)与 body(tbody)两类。
- 输出格式 HTML:thead/tbody/tr/td,td 含 colspan/rowspan/content。
- TEDS:树编辑距离相似度,插入/删除代价 1,td 替换代价按跨格属性与归一化 Levenshtein。
- EDD:编码器 + 结构解码器(LSTM 256)+ 单元格解码器(LSTM 512),软注意力,beam=3。
- EDD 训练:两阶段,2×V100 约 16 天。
- EDD 成绩:平均 TEDS 0.883(simple 0.912 / complex 0.854)。
- EDD 比 WYGIWYS 高 9.7% 绝对 TEDS(complex +9.9%,simple +9.5%)。
- 7 个基线中最好的现成工具是 PDF 输入的 Acrobat Pro(0.653);其图像输入跌至 0.537。
- EDD 模型源码因法律约束未发布。
- 完整 test GT 未随主数据发布,保留作比赛。
- ICDAR 2021 Scientific Literature Parsing Task B 采用 PubTabNet(2020-07-20 起)。
- 比赛测试集与真值 2022-03 公开于 github.com/ajjimeno/icdar-task-b;比赛报告 2021-05-04 发布。
- TEDS 代码 2020-07-01 发布,Apache-2.0。
- 标注许可:CDLA-Permissive 1.0,版权 IBM Corporation。
- 图像许可:PMC Open Access Subset 条款,版权归各出版商。
- 官方获取入口:GitHub ibm-aur-nlp/PubTabNet → HuggingFace ajimeno/PubTabNet。
- 仓库自带 exploring_PubTabNet_dataset.ipynb 检视 20 个样本。
- 姊妹数据集 PubLayNet:同法生产,ICDAR 2019 最佳论文,113k 版面标注。
- 领域背景数字:生物医学文献仅 2%-8% 的遗传数据库信息在叙述文本中,其余在表格。
- 后续基于 PubTabNet 的知名模型:TableFormer、SEM、LGPMA+OCR、TableMaster、WSTabNet、SPPLTR、VCGoup 等。
- GitHub README 最后更新 2025-07-08(仓库 50 commits,最新提交更新 README)。
术语表(16 条)
| 术语 | 英文 | 释义 |
|---|---|---|
| 图像表格识别 | image-based table recognition | 从表格图像输出结构化表示(结构+内容)的任务 |
| 表格结构识别 | table structure recognition (TSR) | 只解析行列与跨格骨架、不识别内容 |
| 表格检测 | table detection (TD) | 在整页文档中定位表格区域 |
| 树编辑距离 | tree edit distance | 两棵树之间最少编辑操作的代价 |
| 表格相似度 | TEDS | 基于树编辑距离的表格识别相似度指标 |
| 跨格单元格 | spanning cells | 跨多行或多列的合并单元格(colspan/rowspan) |
| 表头/表体 | thead / tbody | HTML 中分组表头单元格与表体单元格的标签 |
| 编码器-双解码器 | encoder-dual-decoder (EDD) | 结构解码器+单元格解码器的注意力架构 |
| 自回归解码 | autoregressive decoding | 逐 token 生成输出序列 |
| 束搜索 | beam search | 保留多条候选路径的解码策略 |
| 归一化莱文斯坦相似度 | normalized Levenshtein similarity | 字符串相似度,1 减去归一化编辑距离 |
| PubMed Central 开放获取子集 | PMCOA | PMC 中开放获取的文章集合 |
| 社区数据许可协议 | CDLA-Permissive 1.0 | Linux 基金会主导的宽松数据许可 |
| JSONL | jsonlines | 每行一个 JSON 对象的流式存储格式 |
| 均衡评测集 | balanced evaluation set | 按复杂度重抽的测试集,避免简单样本主导 |
| 弱标注 | weak/noisy annotation | 自动生成、存在可控噪声的标注 |
附录
A. 按角色阅读路径
- 想直接训练模型:读 §2.4(先搞清双口径)→ §6.5(下载)→ §5.1(超参起点)→ 坑 5/6。
- 做合规评估:读 §6 全节 + §6.6 表 → 坑 2。
- 做文献抽取管线:读 §0 → §4.2 → §7.2 → §9 互链表。
- 设计新基准:读 §8 三条方法学启示 → §2.3 均衡评测设计 → 坑 7。
B. 关键数字速记
568k+ 样本 / train 548,592 / 均衡 test 10,000(5,000+5,000)/ EDD 0.883(0.912/0.854)/ 领先 WYGIWYS 9.7% / 2×V100 16 天 / 版本 2.0.0(2020-07-21)/ arXiv:1911.10683。
C. 数据使用合规清单(逐项打勾式)
- 确认用途落在 CDLA-Permissive 允许范围(标注层几乎全部允许)。
- 若再分发图像或商用,逐篇核对源文章 PMC OA 条款并建立许可台账。
- 保留 IBM 与 PMC 归属声明;分发修改版标注时附变更说明。
- 使用 src/ 代码时遵守 Apache-2.0(保留许可与 NOTICE)。
- 报告成绩时注明所用 test 口径(论文均衡集 / HF 镜像 / ICDAR Task B)。
D. 双口径与存照汇总
- split 划分双口径:论文 60/20/20(train 548,592,均衡 dev/test 各 10,000)vs HF 镜像 ≈507,560/60,309/600。正文按论文口径,性能数字均为论文均衡测试集。
- 下载链路存照:早期 Zenodo 链路已被 HF 镜像(ajimeno/PubTabNet)取代,以 2025-07-08 更新的 README 为准。
- 官方总下载体量未见 README 明示(数十 GB 量级为工程经验值),列为遗留疑点存照。
尾注
本条目事实核验于 2026-10-17,三源互证:① 论文 arXiv:1911.10683(HTML 全文版,ECCV 2020);② 官方 GitHub 仓库 ibm-aur-nlp/PubTabNet README 与 LICENSE.md(经镜像抓取,内容与 2025-07-08 版一致);③ 许可场景表(CDLA-Permissive 1.0 与 PMC OA 条款的官方分层说明,经 DeepWiki 汇总并与 CDLA/PMC 官方条款交叉核对)。双口径冲突(split 划分)已在 §2.4 与附录 D 存照;未决疑点(官方下载总包体量未明示)已存照。互链 rid 以入库时库内实测(status=1 AND del_sign=0)为准,正文中一律以 /0 占位,由发布流程统一回填。
§60 一句话总结
PubTabNet 用一次聪明的对齐换来了 568k 个样本,用一棵树定义了一个指标,用一场比赛团结了一个领域——理解这三件事,就理解了这个数据集的全部。
§60 的三件事可以再压缩成一句话的对仗:对齐造数据、树造指标、比赛造成绩表——而这三件事共同的启示是,找到领域里已有的结构,让标注的边际成本趋近于零。
§61 交付确认
- 成稿:writing/pubtabnet/pubtabnet_Wikipedia.md(分片 15+ 片显式拼接,行数见指纹)
- 自检:check_md.py / preflight_check.py 双零
- 验收:acceptance.py(含 frontmatter 长度闸门)
- 许可分层:§6.1 CDLA-Permissive(标注)/ §6.2 PMC OA 条款(图像)/ §6.3 Apache-2.0(代码)
- 双口径存照:§2.4、附录 D
- 互链:pmc-oa(320)、open-pmc(45)、pmc-oa-subset(360)、pubtator-central(752)、pubmedqa(49)、pmc-vqa(270),正文一律 /0 占位待回填
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- scifact — 共享标签:医疗NLP / 生物医学文献 / 医学问答与基准 / 评测基准
- biosses — 共享标签:医疗NLP / 生物医学文献 / 评测基准
- mimic-iv-note — 共享标签:医学影像 / 医疗NLP / 生物医学文献
- omnimedvqa — 共享标签:医学影像 / 医疗NLP / 评测基准
- pubmedqa — 共享标签:医疗NLP / 生物医学文献 / 医学问答与基准 / 评测基准
- pgb — 共享标签:生物医学文献 / 医学问答与基准 / 评测基准
- i2b2-n2c2-nlp — 共享标签:医疗NLP / 医学问答与基准 / 评测基准
- cblue — 共享标签:医疗NLP / 医学问答与基准 / 评测基准
- blurb — 共享标签:医疗NLP / 医学问答与基准 / 评测基准
- medhop — 共享标签:医疗NLP / 生物医学文献 / 医学问答与基准 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

