MedICaT — 医学图像-图注对齐数据集 AI-Ready Wikipedia

217,060 幅医学论文插图 + 图注 + 图内引用的复合图对齐基准

来源 Allen Institute for AI(与华盛顿大学等合作) url: https://github.com/allenai/medicat发布时间: 2026-09-13最后更新: 2026-09-25 阅读 28
MedICaT — 医学图像-图注对齐数据集 AI-Ready Wikipedia

信息速览

数据集名称MedICaT — 医学图像-图注对齐数据集 AI-Ready Wikipedia
数据类型217,060 幅医学插图,131,410 篇开放获取论文,7,507 对 subfigure 标注,约 25,000 条 ROCO 引用,约 104 GB 压缩包
规模不适用(文献图文数据集,无患者队列)
接入方式Allen Institute for AI(与华盛顿大学等合作) url: https://github.com/allenai/medicat
AI 就绪度

数据集封面

MedICaT — 医学图像-图注-引用对齐数据集 AI-Ready Wikipedia

INFOBOX

字段 内容
数据集名称 MedICaT(医学图像、图注与文本引用数据集)
英文全称 MedICaT: A Dataset of Medical Images, Captions, and Textual References
别名/简称 MedICaT、Medical Images Captions and References
疾病分类(ICD-11 编码+中文名) 覆盖多系统源文献主题(如 2C25 支气管或肺恶性肿瘤、1B10 结核病),数据集本身不携带疾病标签
SNOMED CT 映射影像与病理操作概念(77477000 计算机断层扫描、168537004 X 线平片等),见 §2.1b
数据模态 医学论文插图(放射、病理、内镜为主)+ 英文图注 + 图内引用句 + subfigure 边界框标注
AI 任务类型 图文检索、复合图 subfigure-subcaption 对齐、图文匹配预训练、医学图注生成
样本总数 217,060 幅图(来自 131,410 篇论文);7,507 对 subfigure-subcaption 人工标注
数据大小 约 104 GB(medicat_release.tar.gz 压缩包)
数据格式 PNG 图像 + JSON/JSONL 标注文件
许可证 逐篇开放获取许可(CC 系列如 CC BY-NC-ND、公有领域),整体仅限研究用途、非商业
访问级别 申请审核(官方表单登记后获取下载链接)
DUO 标签 NPUNCU(非商业、非营利用途)
语言 英文(图注与引用文本)
首发日期 2020-10(论文 2020-10-12,数据 2020-10-05 版本)
最后更新 2026-02-20(GitHub README 更新 subcaption 任务数据链接)
发布机构 Allen Institute for AI、华盛顿大学、特拉维夫大学、Swedish Medical Group、UC Irvine
官方主页 github.com/allenai/medicat
下载地址 官方表单申请 + S3 链接(见 §6.2)
DOI 10.18653/v1/2020.findings-emnlp.191
AI 就绪度评分 ⭐⭐⭐(3/5)— 官方提供 subcaption 任务划分文件与样例数据,可直接训练对齐模型;扣分项:主数据为单文件 104 GB tar 包,需自行完成表单申请、JSONL 解析与图像命名拼接,无官方一键加载脚本
页面状态 published

§0 审核与可信度声明

医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-11 与 SNOMED CT 映射、临床任务定义)、§7 偏倚分析。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05

医疗免责声明:本页面内容仅用于医学信息学与数据科学知识普及,不构成医疗建议、诊断或治疗依据。任何涉及临床应用的决策,必须由具备执业资质的医务人员结合患者具体情况独立作出。数据集中的图像与文本来自已发表论文,不代表任何真实个体当前的诊疗状态。
技术免责声明:本页面提供的代码、配置与流程说明按"现状"提供,仅用于研究与教学演示。在实际生产环境中使用前,使用者应自行验证代码正确性、兼容性与安全性,并承担由此产生的全部风险。
数据使用合规声明:MedICaT 逐篇继承源文献的开放获取许可(如 CC BY-NC-ND),整体仅限研究用途、禁止商业使用。使用者须自行核查每条记录的 oa_info.license 字段并遵守对应条款,不得再分发受限图像或其处理后版本。

证据优先级说明:本页所有规模、日期、许可与基准数字按以下优先级核实——① 官方仓库 README 与数据文件;② EMNLP 2020 论文(含 arXiv 预印本与 NSF 镜像);③ 同行评审的第三方论文(PMC-CLIP、ROCOv2、BIOMEDICA)。无法核实的字段一律省略而非估算。动态信息(如申请表单响应时长)标注"截至 2026-09"。

§1 数据集概览

§1.0 📌 30 秒速览

这是什么? MedICaT 读作"medical cat",是一个把医学论文里的插图连同上下文文字一起打包的数据集。它包含 131,410 篇开放获取论文中的 217,060 幅图,每幅图配有图注;更关键的是,它还从论文正文里把"如图 1d 所示……"这类图内引用句抽了出来(74% 的图有引用),并为 2,069 幅复合图人工标注了每个子图(subfigure)与对应子图注(subcaption)的边界框和文字对齐关系(官方仓库)。

为什么重要? 医学论文中约 75% 的图是"复合图"——一张大图里塞着 (a)(b)©(d) 多个面板,而真正解释每个面板的句子往往不在图注里,而是散落在正文 Results/ Discussion 中。图注与引用句的平均 Jaccard 相似度只有 23%,说明二者信息高度互补(论文 Table 1)。此前几乎没有数据集同时提供这三层信息,MedICaT 填补了这一空白。

我能用它做什么? 三类核心任务:① 医学图文检索——用文字查询找图,加入引用句后 ROCO 上 Recall@1 从 7.6% 提升到 9.4%;② 复合图 subfigure-subcaption 对齐——官方提出的任务,Text+Box Embedding CRF 达到 Test F1 71.9;③ 医学图注生成与多模态预训练——为 PMC-CLIP、BIOMEDICA 等后续医学视觉-语言模型提供了数据与对照基准。

§1.1 摘要

MedICaT(Subramanian et al., Findings of EMNLP 2020)的构建分四步:首先基于 Siegel et al. 2018 的抽取结果,从 PubMed Central 开放获取子集中提取 131,410 篇论文的 217,060 幅图与图注;其次将图与 S2ORC 语料(Lo et al., 2020)逐篇匹配,从全文中抽取提及该图的图内引用句,覆盖 74% 的图;第三,通过成像关键词过滤叠加 ResNet-101 图像分类器(DocFigure 训练,precision 96%、recall 67%)筛出医学图;第四,由 5 名受过生物医学训练的标注者(两阶段,一致性 0.828→0.89)为 2,069 幅复合图画出 7,507 个 subfigure 边界框并撰写 subcaption。数据集显式排除 ROCO 图以保证不重叠,同时反向为约 25,000 幅 ROCO 图补齐引用句。官方基于此提出 subfigure-subcaption 对齐新任务并证明图内引用对图文匹配的增益(论文)。

理解 MedICaT 的关键在于它的三层文本:图注(内嵌于图,简短、模板化)、subcaption(人工撰写,面板级、金标准)、引用句(正文原文,语境丰富、含诊断细节)。三层文本与图像的对应粒度逐层收紧,构成了从"文档级"到"面板级"的对齐谱系——这也是它区别于所有"图注-图像对"数据集的本质所在。

§1.2 战略价值

维度一:多模态对齐粒度。 主流医学图文数据集(ROCO、MIMIC-CXR)都停留在"整图-整段文本"粒度,而医学文献里 75% 的图是复合图,整图对齐会把 (a)(b)©(d) 的描述混为一谈。MedICaT 是首个在复合图内部提供 subfigure 边界框 + subcaption 对齐 + 正文引用句三层粒度的医学数据集,使"面板级"检索、面板级图注生成成为可能。这一粒度后来被 Med-GLIP 等医学定位(grounding)工作直接沿用。

维度二:文献上下文作为免费监督。 医学图文对通常需要医师标注,成本高昂。MedICaT 证明论文正文中的引用句是天然的、与图注互补的监督信号(二者重叠仅 23%):在不改动 ROCO 任何标注的情况下,仅把引用句加进训练,Recall@1 就提升 1.8 个百分点。对预算有限的团队,这种"零标注成本"的数据增密思路具有普适参考价值。

维度三:可复用的文献挖掘管线。 MedICaT 的四步构建法(图抽取 → S2ORC 全文匹配 → 关键词 + 分类器过滤 → 人工对齐标注)本身就是一份可复用的方法论:把它迁移到化学、材料或其他学科文献上,即可低成本复制出领域版 MedICaT。官方论文的附录(关键词表、分类器阈值标定方法)为这种迁移提供了完整配方,这使数据集的价值超出医学 NLP 本身。

§1.3 同类数据集横向对比

数据集 规模 模态/内容 标注层级 与 MedICaT 的差异
MedICaT(2020) 217,060 图 / 131,410 论文 PMC 论文插图(放射 72%、病理 13%) 图注 + 图内引用(74%)+ 7,507 对 subfigure-subcaption 三层图文粒度唯一齐全;复合图占 75%
ROCO(2018) 约 82,000 非复合放射图 放射影像 + 图注 仅整图图注 无复合图、无引用句;MedICaT 反向为其补充约 25,000 条引用
PMC-OA(2023) 约 160 万图文对 PMC 图文对 图注为主,部分 subfigure 对齐 规模更大但引用句与人工标注更少
MIMIC-CXR(2019) 377,110 图 / 65,379 患者 仅胸片 + 报告 结构化报告 单模态、有患者级数据但需凭证申请
PMC-VQA(2023) 227,946 问答对 / 149,075 图 生成式 VQA 问答 问题-答案对 面向 VQA 而非文献图文对齐

(对比数字来源:MedICaT 论文与官方仓库、PMC-CLIP arXiv:2303.07240、ROCOv2 Scientific Data 2024。)

读表的正确姿势:MedICaT 的规模不追求最大,它的差异化在标注层次——引用句与 subfigure 对齐是其他四个数据集都没有完整提供的;若你的任务是纯规模竞赛(CLIP 式预训练),PMC-OA/BIOMEDICA 更合适;若研究"文献图表理解"或"面板级对齐",MedICaT 是首选甚至唯一选择。

§1.4 版本时间轴

时间 版本/事件 说明
2020-10-05 数据 v1.0 发布 S3 四个官方文件:主包 104 GB、subcaption 标注 14 MB、划分文件 0.2 MB、ROCO 引用 3 MB
2020-10-12 论文公开 arXiv:2010.06000;2020-11 收入 Findings of EMNLP 2020(pp. 2112–2120)
2021-01 仓库补充 LICENSE 明确逐篇 CC 许可、研究用途声明
2026-02-20 README 维护更新 更新 subcaption 任务数据链接与申请表单说明(截至 2026-09 仍可申请获取)

§1.5 典型应用场景

  1. 医学文献图像检索:为文献检索引擎构建"以文搜图"能力,引用句让"Figure 1d"级别的面板级查询可满足。
  2. 复合图 subfigure-subcaption 对齐:官方任务;是医学图表理解(chart/figure understanding)与图文定位研究的基础基准。
  3. 医学图注生成与报告写作辅助:以"图 + 引用句"为条件生成更具体的描述,再迁移到临床报告生成。
  4. 医学多模态预训练:作为 CLIP 式对比预训练的文献图文语料,或与 ROCO/MIMIC-CXR 混合预训练。
  5. 数据挖掘方法论研究:关键词 + 分类器过滤、S2ORC 引用匹配的整套管线可复用于其他学科的图表理解数据集构建。
  6. 同行评审辅助:自动核查复合图面板与图注/正文引用的一致性,为编辑与审稿人提供图表完整性提示。

§2 医学背景与临床语境

§2.1 内容域 ICD-11 映射

MedICaT 本身不携带疾病或解剖标签——它的每条记录是一幅论文插图加文字。为了便于检索归类与合规审查,下表把数据集源文献中占比最高的内容域映射到 ICD-11 的代表性编码(映射用于检索导航,不代表数据的标注体系):

内容域(按人工评估占比) 代表性 ICD-11 编码 ICD-11 中文名称 说明
放射学图像(约 72%) 1B10 / CA40 / 2C25 结核病 / 肺炎 / 支气管或肺恶性肿瘤 胸部影像是文献插图中最高频主题
组织病理学图像(约 13%) 2A00–2F99 肿瘤学章节 H&E 染色切片多见于肿瘤病理论文
内镜/体腔镜图像(约 3%) 13.x 消化系统章节 消化系统疾病 消化内镜病例报告常用图示
其他医学图像(约 7%) 21.x 症状体征章节 症状、体征与临床所见 跨系统病例展示图

§2.1b SNOMED CT 映射

标签/概念 ICD-11 参照 SNOMED CT 码 术语
CT 断层成像 影像学操作 77477000 Computerized axial tomography(计算机轴向断层扫描)
X 线平片 影像学操作 168537004 Plain X-ray(X 线平片)
超声成像 影像学操作 16310003 Ultrasonography(超声检查)
病理镜检 病理学操作 441652006 Microscopic examination of specimen(标本显微镜检查)
肺结核(高频疾病主题) 1B10 56717001 Tuberculosis(结核病)
肺原发恶性肿瘤(高频疾病主题) 2C25 363358003 Primary malignant neoplasm of lung(肺原发恶性肿瘤)

§2.2 内容域简介

医学论文插图承担着"病例可视化"的功能:放射图(CT、MRI、X 线、超声)展示解剖与病灶形态,组织病理切片展示细胞级诊断证据,内镜图像展示腔内病变。这些图所服务的论文覆盖从感染性疾病到肿瘤学的全部临床科室,但分布高度不均:人工评估 200 幅图估计,放射学约占 72%、组织学 13%、内镜 3%、其他 7%(论文 §2)。与临床影像库(如 MIMIC-CXR)相比,文献图更偏"教学性、示例性",常选取典型或罕见病例,而非连续入组的真实患者流。

从疾病主题看,开放获取生物医学文献的高频插图主题与全球疾病负担并不一致:论文偏好视觉表现力强、诊断明确的病例(如肺囊肿、血管畸形、典型肿瘤切片),慢性病管理、功能性疾病等"不出图"的领域几乎缺席。使用者在做疾病覆盖规划时应意识到:MedICaT 的覆盖 = 开放获取出版生态的覆盖,而非疾病谱系的覆盖。此外,同一病例常以多面板、多时间点形式出现(治疗前/后对比、多序列 MRI),这既是数据集的特色(复合图对齐),也是分布偏移的来源。

§2.3 临床任务定义

MedICaT 支持的任务对应如下临床信息需求链:

  • 筛查/检索(对应临床知识检索):医师检索"lung cyst CT"时应命中展示肺囊肿 CT 的具体面板,而非整张四联图——这是图文检索 + subfigure 对齐联合解决的问题。
  • 诊断描述(对应影像报告生成):给定图像生成发现描述;MedICaT 的引用句提供了"图注之外"的诊断语境(如狭窄距肛缘 15 cm),是图注生成模型的补充监督。
  • 分级/预后(间接支持):数据集无预后标签,但病理-文本对可预训练特征,迁移至分级任务。
  • 教学对齐(对应医学教育):subfigure-subcaption 对齐可直接用于自动生成"图解式"教学材料。
  • 文献质量保证(对应出版流程):自动核查"图注与面板是否一一对应"“正文引用与图内容是否一致”,为同行评审与预印本把关提供工具雏形。

§2.4 数据来源人群画像

维度 情况
来源 131,410 篇 PubMed Central 开放获取论文(基于 Siegel et al. 2018 抽取结果)
时间 2020-10-05 数据发布,源文献为发布前已发表的开放获取文章
患者年龄/性别 未提供(论文图不含结构化患者元数据)
种族/地域 未记录;期刊以英文开放获取出版物为主
就医类型 不适用——数据是文献插图而非临床就诊记录

§2.5 临床价值

对医学 AI 而言,MedICaT 的价值不在"替代临床数据",而在三点:其一,它是大规模免标注的视觉-语言预训练语料,可把通用视觉-语言模型拉进医学域;其二,引用句机制还原了医师在真实场景中如何图文互证(描述 + 佐证),比孤立图注更接近临床叙事;其三,subfigure 对齐让模型学会读复合图——这是解读多参数序列 MRI、多时相 CT 等真实临床复合影像的基本功。

换一个视角:临床知识今天的入口正在从"文献数据库"变成"检索与对话系统",而这些系统读不懂复合图就会给错答案。MedICaT 提供的正是"让机器按医师的方式读图"的训练材料——先找到相关面板(定位),再找到解释该面板的原句(对齐),最后把两者绑定( grounding)。这条能力链对医学教育平台、文献检索引擎、影像科教学库都有直接落地价值。

§2.6 金标准划分与标注质量

划分/标注 内容 标注者 性质
subcaption 任务划分 官方 subcaption_split_keys.json(train/val/test) 官方提供 任务金标准划分
subfigure-subcaption 标注 2,069 幅复合图、7,507 对 阶段一 5 名标注者(生物医学背景、非医师),阶段二 2 人复核允许多段 subcaption 人工金标准,一致性 0.828(阶段一)/ 0.89(阶段二)
图注与引用句 217,060 图的 s2_caption 与 s2orc_references 自动抽取(Siegel 2018 + S2ORC 匹配) 弱监督、未医学复核
医学图标志 radiology / scope / predicted_type 字段 关键词 + ResNet-101 分类器 弱标签(precision 96% / recall 67%)

§3 数据集规格

§3.0 组件抉择矩阵

MedICaT 只有一个数据版本(2020-10-05),但官方拆成 4 个下载件,按需选择可显著省流量:

你的需求 推荐组件 大小 理由
快速理解数据格式 仓库 sample/ 目录 数 MB 无需下载主包即可看到完整 JSONL 条目结构
复合图对齐模型训练 subcaptions_public.jsonl + split_keys + 主包图像 14 MB + 0.2 MB + 104 GB 标注与划分极小;只有图像必须下载主包
图文检索/预训练 主包全部 + roco_references.zip 104 GB + 3 MB 需要全部图文对与 ROCO 引用增强
只想复用引用句思路 roco_references.zip + ROCO 官方数据 3 MB 与站内 ROCO 条目(已上线)组合即可复现论文 §4 实验

§3.1 模态详情

  • 医学论文插图:PNG 格式,源自论文 PDF 内嵌图;复合图(多面板拼图)约占 75%,放射学约占 72%、组织学 13%、内镜 3%、其他 7%(200 图人工评估,论文 §2)。
  • 图注:两个字段——s2_caption(Semantic Scholar 图注抽取管线)与 s2orc_caption(S2ORC 全文匹配版本),二者通常一致但可能存在解析差异;平均长度 74.2 tokens。
  • 图内引用句:从 S2ORC 全文抽取的、提及该图的正文句子,平均每图 1.4 条、平均 67.3 tokens;74% 的图至少有一条。
  • 人工标注:subfigure 边界框 + subcaption 文字段(允许多段不连续 span),仅覆盖 2,069 幅复合图。
  • 图像质量维度:分辨率与长宽比随原始出版质量浮动——同一数据包内既有高清断层图像,也有低分辨率缩略图与含版面文字的整版截图;官方未公布分辨率分布统计,建议在加载时按短边阈值(如 128 px)过滤或分层统计后再定训练集。

§3.2 子集样本数

子集 规模 说明
全量图文对 217,060 图 / 131,410 论文 平均每篇论文 1.7 幅图
含图内引用的图 约 74%(平均 1.4 条/图) s2orc_references 非空
复合图 约 75%(2,327 图样本估计) 官方标注覆盖其中 2,069 幅
subfigure-subcaption 标注 7,507 对 / 2,069 幅图 人工两阶段标注,平均每幅约 3.6 对
ROCO 补充引用 约 25,000 幅(train 约 21,000,val/test 各约 4,000) 相当于 ROCO 训练集的 33%
医学图(估计) 约 93%(2,327 图样本、4 名标注者) 其余为过滤漏网的非医学图

§3.3 数据格式

内容 格式 组织方式
图像 PNG figures/{pdf_hash}_{fig_uri},如 57c9ad0f…_2-Figure1-1.png
图文对元数据 JSONL 每行一条 JSON 记录(pdf_hash、fig_key、fig_uri、caption、references、oa_info 等)
subfigure 标注 JSONL(subcaptions_public.jsonl) 每行一幅复合图的多对框与 subcaption
任务划分 JSON(subcaption_split_keys.json) train/val/test 键列表
代码 Python 仓库 code/:对齐模型与图文匹配模型
样例 JSON + PNG(仓库 sample/) 无需下载主包即可调试格式

§3.4 存储大小

主包 medicat_release.tar.gz 约 104 GB(压缩态;解压后体积与压缩态接近,以图像为主)。官方未公布解压后精确值与校验和——下载后应以记录条数(217,060 图)自检完整性(见坑点 6)。

工程提示:104 GB 单文件对网络中断敏感,建议在稳定带宽环境(云主机内网到 S3 us-west-2)下载;磁盘预留 210 GB 以上(压缩包 + 解压目录共存)。若只需对齐任务,可先下载 14 MB 标注件与 0.2 MB 划分件开发代码,主包放到训练机下载。

§3.5 标注方式

三层标注、三种性质:① 图注与引用句为自动抽取(PDF 解析 + S2ORC 匹配),弱监督;② radiology/scope/predicted_type 为自动分类(关键词 + ResNet-101),弱标签;③ subfigure-subcaption 为人工标注(5 名标注者,含边界框绘制与 subcaption 撰写),是唯一金标准层。

§3.6 标注者资质与一致性

标注者具有不同层次的生物医学训练背景(从无到研究生水平),但无医学博士;阶段一 3 人对同一批 100 图计算一致性得 0.828,阶段二复核后达 0.89(论文 §2)。这意味着边界框可靠,而 subcaption 文字表述可能带有非临床人员的措辞习惯。

阶段 人数 任务 一致性(100 图抽样)
阶段一 5 画 subfigure 边界框 + 撰写单段 subcaption 0.828(三两两有序对平均)
阶段二 2(从阶段一选拔) 复核框与 subcaption,允许多段 span 0.89

§3.7 采集周期

语料抽取与匹配在 2018–2020 年间完成(基于 Siegel et al. 2018 的抽取结果 + S2ORC 2020 年版语料),数据包定格于 2020-10-05;此后未发布过更新的图像/文本版本。

§3.8 地域覆盖

期刊层面覆盖全球 PubMed Central 开放获取出版物(英文为主);论文作者与患者地域未记录,无法做地域分层。

§3.9 设备规格

不适用——图像来自论文 PDF 解析而非 DICOM 归档,无设备型号、层厚、磁场强度等技术参数;分辨率随原始出版质量浮动(见坑点 8 相关讨论)。

若下游任务需要设备级信息,可行替代:① 从 oa_info.doi 回溯源论文正文,部分 Methods 段落会描述设备;② 将 MedICaT 仅用作预训练,把设备条件化的工作放在 DICOM 来源的临床数据集(如 MIMIC-CXR)上做。

§3.10 深度溯源链

每条记录内嵌 oa_info 溯源块:源文章 DOI、DOI 链接、开放获取状态(is_oa)、OA 等级(gold 等)、期刊 OA 属性、逐篇许可(如 cc-by-nc-nd)与许可来源(unpaywall)。从"一幅图"可以一路回溯到"哪篇论文、什么许可、是否可再分发",这在同类数据集中相当完善。

§4 数据结构

§4.0 目录树

解压 medicat_release.tar.gz 并合并官方标注文件后的预期结构:

data_root/
├── figures/                          # 全部图像(来自 medicat_release.tar.gz)
│   ├── 57c9ad0f4aab133f96d40992c46926fabc901ffa_2-Figure1-1.png
│   ├── {pdf_hash}_{fig_uri}.png      # 命名规则:论文哈希_原始图编号
│   └── ...
├── medicat_release_data.jsonl        # 图文对元数据(每行一条记录)
├── subcaptions_public.jsonl          # 2,069 幅复合图的 7,507 对 subfigure-subcaption
├── subcaption_split_keys.json        # subcaption 任务官方 train/val/test 划分
└── roco_references/
    └── roco_references.jsonl         # 约 25,000 幅 ROCO 图的图内引用

说明:medicat_release_data.jsonl 为示意命名——主包内元数据的实际文件名与内部组织以解压结果为准;仓库 sample/ 提供了结构与正式记录一致的样例,开发阶段请以样例文件的字段为准编写解析器。roco_references.zip 解压后的确切文件名同样以包内为准(约 25,000 幅 ROCO 图的引用记录)。

§4.1 DAIMS 字段字典

官方 README 给出的完整示例记录(美化排版后,字段与真实数据一致):

{
  "pdf_hash": "57c9ad0f4aab133f96d40992c46926fabc901ffa",
  "fig_key": "Figure1",
  "fig_uri": "2-Figure1-1.png",
  "s2_caption": "Figure 1. (A) Barium enema and (B) endoscopic image of the high-grade distal colonic obstruction caused by a 5-cm anastomotic stricture.",
  "s2orc_caption": "Figure 1. (A) Barium enema and (B) endoscopic image of the high-grade distal colonic obstruction caused by a 5-cm anastomotic stricture.",
  "s2orc_references": [
    "Computed tomography (CT) showed a distal large bowel obstruction, and a barium enema revealed a high-grade stenosis proximal to the anastomotic site in the recto-sigmoid region (Figure 1 ).",
    "Flexible sigmoidoscopy revealed a tight, fibrotic, benign-appearing anastomotic stricture 15 cm from the anal verge ( Figure 1) ."
  ],
  "radiology": false,
  "scope": true,
  "predicted_type": "Medical images",
  "oa_info": {
    "doi": "10.14309/crj.2014.54",
    "doi_url": "https://doi.org/10.14309/crj.2014.54",
    "oa": {
      "is_oa": true,
      "oa_status": "gold",
      "journal_is_oa": true,
      "journal_is_in_doaj": true,
      "license": "cc-by-nc-nd",
      "provenance": "unpaywall"
    }
  }
}

注意该示例的三个细节:① 此图被 radiology=false, scope=true 正确标为内镜图——域标签有时是对的,但 recall 仅约 67%,不能反推"false 即非放射";② s2orc_references 给出的两句正文比图注包含更多临床细节(梗阻部位、狭窄距肛缘距离);③ oa_info.license 显示 cc-by-nc-nd,即该图禁止用于商业用途与再分发。

核心 JSONL 记录字段(每行一条记录对应一幅图):

字段名 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
pdf_hash string 源论文 PDF 的 SHA-1 哈希,主键之一 57c9ad0f4aab… 论文级分组、防泄漏 无 无 40 位十六进制
fig_key string 图编号键 Figure1 与图像配对 PDF 解析可能漏抽图 无 论文内唯一
fig_uri string 图像文件名片段 2-Figure1-1.png 拼接图像路径 同图多文件时需甄别 无 文件名
s2_caption string Semantic Scholar 抽取图注 Figure 1. (A) Barium enema… 主文本模态 抽取噪声、截断 空串=缺失 英文文本
s2orc_caption string S2ORC 匹配版图注 同上 双源校验 与 s2_caption 可能不一致 空串=缺失 英文文本
s2orc_references list[string] 提及本图的正文引用句 ["CT thorax revealed…"] 检索增益、监督增密 匹配遗漏(26% 图无引用) 空列表=无引用 0–N 条
radiology bool 分类器判断是否放射图 true 弱域标签 recall 约 67%,勿当金标 无 true/false
scope bool 是否内镜/体腔镜图 false 弱域标签 同上 无 true/false
predicted_type string 分类器输出类别 Medical images 过滤复现 分类器噪声 无 DocFigure 类别词
oa_info.doi string 源论文 DOI 10.14309/crj.2014.54 溯源、许可证核查 无 无 DOI
oa_info.oa.license string 逐篇开放获取许可 cc-by-nc-nd 合规审查 unpaywall 记录滞后 无 CC 变体/public domain
oa_info.oa.oa_status string OA 等级 gold 语料计量 无 无 gold/hybrid/bronze/green

§4.2 标签分布

唯一的人工标签层是 subfigure-subcaption 标注:2,069 幅复合图 7,507 对,平均每幅约 3.6 个 subfigure;约 75% 的图为复合图。弱标签层面:医学图约占 93%(估计值),其中放射约 72%、病理 13%、内镜 3%、其他 7%。图内引用覆盖 74%(约 25,000 幅 ROCO 图另有补充引用)。

标签层 取值/类别 覆盖规模 标签来源
域标签 radiology true/false 全部 217,060 图 关键词 + 分类器(弱)
域标签 scope true/false 全部 217,060 图 关键词 + 分类器(弱)
类型标签 predicted_type DocFigure 类别词 全部 217,060 图 ResNet-101 分类器(弱)
对齐标签(subfigure 框 + subcaption span) 连续坐标 + 自由文本 2,069 幅复合图 / 7,507 对 人工两阶段(金标准)
许可标签 oa_info.oa.license CC 变体/public domain 全部记录 unpaywall 记录

§4.3 关键统计

统计项 数值 来源
平均每篇论文图数 1.7 论文 Table 1
平均每图引用条数 1.4 论文 Table 1
平均图注长度 74.2 tokens 论文 Table 1
平均引用句长度 67.3 tokens 论文 Table 1
图注-引用 Jaccard 相似度 23% 论文 Table 1
subfigure 标注一致性 0.828 / 0.89 论文 §2
平均每幅标注复合图的 subfigure 数 约 3.6(7,507 / 2,069) 官方规模数字推算
医学图占比(样本估计) 93% 论文 Table 1(2,327 图样本)

§4.4 数据层级

层级为 期刊 → 论文(pdf_hash)→ 图(pdf_hash + fig_key)→ subfigure(边界框)。论文是天然分组单位:同一篇论文的多幅图共享背景、疾病与写作风格,做 train/test 划分时必须按论文分组,否则检索实验会因"同论文另一幅图"而虚高(见 §5.3)。

§4.5 缺失值与信息性缺失

字段 缺失形态 含义 处理建议
s2orc_references 空列表 26% 的图未匹配到引用句(或正文确实未提及) 检索训练时降权或仅用图注
s2orc_caption 空串/不一致 S2ORC 匹配失败,回退 s2_caption 优先 s2_caption,双源冲突时人工抽检
radiology/scope 均 false 非放射非内镜(可能病理图或过滤漏网图) 视为"未知域",不要删除
oa_info 无或字段不全 溯源信息缺失(unpaywall 未覆盖该文) 保留记录,标注"许可未知"并保守对待
subfigure 标注 主包图无此标注 仅 2,069 幅复合图有人工标注 对齐任务限定官方划分内

§5 数据划分与使用建议

§5.1 官方划分

官方仅为 subcaption 任务提供划分:subcaption_split_keys.json 给出 train/val/test 的复合图键列表;社区资料按 65%/15%/20% 描述该比例(OpenMedLab 收录页),复现论文 Table 2 时应以此文件为准。

import json

with open("subcaption_split_keys.json", encoding="utf-8") as f:
    split_keys = json.load(f)
# 结构预期:{"train": [复合图键...], "val": [...], "test": [...]}
# 键与 subcaptions_public.jsonl 中的复合图标识对应
print({k: len(v) for k, v in split_keys.items()})

§5.2 社区惯例

对全量图文对(无官方划分),社区通行做法:按 pdf_hash 分组做 8:1:1 划分;或在 ROCO 上做检索实验(ROCO 自带 65,000/8,175/8,177 划分,MedICaT 补充引用后按 ROCO 原划分评估)。PMC-CLIP、BIOMEDICA 等后续工作均沿用 ROCO 划分报告检索指标。

无论采用哪种划分,建议在论文/报告里写明三件事:划分单位(图/论文)、图注字段选择、是否使用引用句——MedICaT 缺乏统一社区协议,这三项不写清楚会导致结果无法横向对比。

§5.3 泄漏风险(重点)

  • 论文级泄漏:同一论文的多幅图与引用句共享疾病、术式与措辞。若按图随机划分,测试集图可能"见过"训练集里同论文的姊妹图——图文检索与图注生成都会虚高。必须按 pdf_hash 分组划分。
  • 引用句跨图泄漏:正文一句"Figure 1 and Figure 2 show…"可能同时作为两幅图的引用;若两句一图一测试,文本特征会跨划分泄漏。分组划分 + 以句为单位去重可缓解。
  • ROCO 排重已做但需自查:官方已从 MedICaT 中剔除 ROCO 图以保证不重叠;但若你把 MedICaT 与其他 PMC 语料(如 PMC-OA)混用,需自行按 DOI 去重,否则预训练-测试重叠会污染评测。
  • subcaption 划分与主包:对齐任务只能用官方划分文件;不要把 2,069 幅标注图混入预训练后再在同一批图上测检索。

§5.4 交叉验证建议

对 2,069 幅标注复合图这种小标注集,建议按论文分组的 5 折交叉验证报告均值±标准差(论文只给单次划分结果);对全量图文任务,单次分组划分 + 固定随机种子即可。

实现要点:分组用 sklearn.model_selection.GroupKFold,groups 取每条记录的 pdf_hash;折间保证同一论文的复合图不出现在两个折中,否则一致性估计会虚高。

§5.5 外部验证建议

在 ROCO(外部、非复合、自带划分)上评估检索 Recall@K 是论文选定的外部锚点;建议再补 MIMIC-CXR 或 PadChest 的报告-图像检索作为第二个外部域,检验"文献图 → 临床图"的分布迁移。迁移实验的最低配置:MedICaT 预训练 → 目标域全量微调 → 目标域零样本对照,三者差值即"文献语料的净贡献"。

§6 AI 就绪指南

§6.0 云端快速启动

数据必须经官方表单申请后获得 S3 链接,没有公开镜像的云端一键加载。拿到链接后,在任意带 150 GB 以上磁盘的云端实例(Colab 不适合主包,适合 14 MB 标注件 + sample):

# 断点续传下载主包(104 GB,务必用 -c 支持续传)
wget -c https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/medicat_release.tar.gz
# 小件直下
wget https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/subcaptions_public.jsonl
wget https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/subcaption_split_keys.json
wget https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05/roco_references.zip && unzip roco_references.zip

§6.1 快速上手

先跑通最小可用子集:仓库 sample/ 目录无需下载主包即可验证代码逻辑。下面代码假设你已解压主包并放置好标注文件。

# 目录结构预期(data_root 由你指定):
# data_root/figures/{pdf_hash}_{fig_uri}          # 图像
# data_root/medicat_release_data.jsonl            # 图文对元数据
# data_root/subcaptions_public.jsonl              # subfigure-subcaption 标注
# data_root/subcaption_split_keys.json            # 官方划分
# data_root 拼接关系:image_path = f"{data_root}/figures/{pdf_hash}_{fig_uri}"
# 最小可用子集:subcaptions_public.jsonl 的 2,069 幅标注复合图(无需理解全量 217K 图即可训练对齐模型)
import json, os
from PIL import Image

DATA_ROOT = "data/medicat"

def figure_path(rec):
    """按官方命名规则拼接图像路径。"""
    return os.path.join(DATA_ROOT, "figures", f"{rec['pdf_hash']}_{rec['fig_uri']}")

def load_records(path=None):
    """加载图文对元数据;优先读主包 JSONL,缺省时读官方样例。"""
    path = path or os.path.join(DATA_ROOT, "medicat_release_data.jsonl")
    records = []
    with open(path, encoding="utf-8") as f:
        for line in f:
            rec = json.loads(line)
            if os.path.exists(figure_path(rec)):   # 过滤磁盘上不存在的图
                records.append(rec)
    return records

records = load_records()
print(f"可用图文对: {len(records)}")
print(records[0]["s2_caption"][:120])

开发建议:先用仓库 sample/ 中的样例文件把 load_records 跑通(把 DATA_ROOT 指向 sample 目录),确认字段解析无误后再切到全量 JSONL;两阶段的唯一区别是数据路径与记录数量。

§6.2 数据获取

获取流程:① 访问 官方仓库 填写访问表单(约 48 小时内回复,超过 5 天可邮件 lucyw@allenai.org 催询,注意检查垃圾邮箱);② 收到的邮件含 S3 直链(2020-10-05 版本,截至 2026-09 仍有效);③ 分件下载。

组件 内容 大小 链接形态
medicat_release.tar.gz 图像 + 图注 + 引用(主包) 104 GB S3 直链(申请后获得)
subcaptions_public.jsonl 7,507 对 subfigure-subcaption 14 MB S3 直链
subcaption_split_keys.json 对齐任务官方划分 0.2 MB S3 直链
roco_references.zip 约 25,000 幅 ROCO 图引用 3 MB S3 直链
# 校验下载完整性的自检脚本(官方无校验和,用记录数兜底)
python - <<'PY'
import json, tarfile
tar = tarfile.open("medicat_release.tar.gz")   # 建议流式读取,勿一次解压
img_count = sum(1 for m in tar if m.name.endswith(".png"))
print("PNG 数量:", img_count, "(官方标称 217,060)")
PY

四个官方文件可写入一个批量脚本,配合断点续传做定期校验:

#!/usr/bin/env bash
# download_medicat.sh —— 批量下载四个官方件,全部支持断点续传
BASE="https://ai2-s2-medicat.s3.us-west-2.amazonaws.com/2020-10-05"
for f in medicat_release.tar.gz subcaptions_public.jsonl \
         subcaption_split_keys.json roco_references.zip; do
  wget -c -P data/medicat "$BASE/$f" || { echo "FAILED: $f"; exit 1; }
done
echo "all done"

§6.3 预处理全流程

从原始 JSONL 到可训练样本的四步:清洗 → 规范化 → 负采样索引 → subfigure 裁剪。

import re, json, os, random

def clean_caption(text):
    """去掉 'Figure N.' 前缀与多余空白,保留临床描述主体。"""
    text = re.sub(r"^\s*Figure\s*\d+\s*[:.]?\s*", "", text or "", flags=re.I)
    return " ".join(text.split())

def build_index(records):
    """清洗 + 去重 + 生成检索负采样池。"""
    seen, index = set(), []
    for rec in records:
        key = (rec["pdf_hash"], rec["fig_key"])
        if key in seen:            # 同论文同图重复条目
            continue
        seen.add(key)
        index.append({
            "image": figure_path(rec),
            "caption": clean_caption(rec.get("s2_caption") or rec.get("s2orc_caption")),
            "references": [clean_caption(r) for r in rec.get("s2orc_references", [])],
            "doi": rec.get("oa_info", {}).get("doi", ""),
            "license": rec.get("oa_info", {}).get("oa", {}).get("license", ""),
        })
    return index

def normalize_for_training(index):
    """文本规范化:图注 + 引用句拼接(引用句用 token type 区分,见 §6.5 坑点 2)。"""
    for item in index:
        item["text_main"] = item["caption"]
        item["text_aux"] = " ".join(item["references"][:2])   # 平均 1.4 条,最多取前 2 条
    return index

COMMERCIAL_OK = {"cc-by", "public domain", "pd", "cc0"}

def filter_by_license(index, allowed=COMMERCIAL_OK):
    """按许可过滤:只有计划公开分发衍生数据时才需要(训练本身不受限)。
    注意保留被过滤记录的 ID 清单以便审计,而不是静默丢弃。"""
    kept = [it for it in index if it["license"].lower() in allowed]
    dropped = [it for it in index if it["license"].lower() not in allowed]
    print(f"保留 {len(kept)} 条,搁置 {len(dropped)} 条(license 不在白名单)")
    return kept, dropped

def crop_subfigures(image_path, boxes):
    """按人工边界框裁剪 subfigure(boxes 来自 subcaptions_public.jsonl)。"""
    img = Image.open(image_path).convert("RGB")
    return [img.crop((b["x"], b["y"], b["x"] + b["w"], b["y"] + b["h"])) for b in boxes]

random.seed(42)
print("预处理完成,随机示例:", build_index(load_records())[0]["text_main"][:80])

§6.4 PyTorch DataLoader

import json, os
import torch
from PIL import Image
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms

class MedICaTImageTextDataset(Dataset):
    """图文对数据集:图 + 图注 + 图内引用句。

    预期目录结构:
      data_root/figures/{pdf_hash}_{fig_uri}
      data_root/medicat_release_data.jsonl
    data_root 拼接关系:image_path = os.path.join(root, "figures", f"{pdf_hash}_{fig_uri}")
    最小可用子集:先用 subcaptions_public.jsonl 中的 2,069 幅图验证 pipeline。
    """
    def __init__(self, data_root, jsonl_name="medicat_release_data.jsonl",
                 use_references=True, transform=None):
        self.root = data_root
        self.use_references = use_references
        self.transform = transform or transforms.Compose([
            transforms.Resize((224, 224)),
            transforms.ToTensor(),
        ])
        self.items = []
        with open(os.path.join(data_root, jsonl_name), encoding="utf-8") as f:
            for line in f:
                rec = json.loads(line)
                img_path = os.path.join(
                    data_root, "figures", f"{rec['pdf_hash']}_{rec['fig_uri']}")
                caption = rec.get("s2_caption") or rec.get("s2orc_caption") or ""
                if caption and os.path.exists(img_path):
                    refs = rec.get("s2orc_references") or []
                    self.items.append((img_path, caption, refs))

    def __len__(self):
        return len(self.items)

    def __getitem__(self, idx):
        img_path, caption, refs = self.items[idx]
        image = self.transform(Image.open(img_path).convert("RGB"))
        text = caption + (" " + " ".join(refs[:2]) if self.use_references and refs else "")
        return image, text

class MedICaTSubfigureDataset(Dataset):
    """复合图对齐任务数据集:复合图 + subfigure 边界框 + subcaption 文字。

    预期目录结构:
      data_root/figures/{pdf_hash}_{fig_uri}    # 主包图像
      data_root/subcaptions_public.jsonl        # 2,069 幅复合图的 7,507 对标注
      data_root/subcaption_split_keys.json      # 官方 train/val/test 划分
    data_root 拼接关系与主数据集一致;最小可用子集即本文件全部记录。
    """
    def __init__(self, data_root, split="train", transform=None):
        self.root = data_root
        self.transform = transform or transforms.Compose([
            transforms.Resize((256, 256)),
            transforms.ToTensor(),
        ])
        with open(os.path.join(data_root, "subcaption_split_keys.json"),
                  encoding="utf-8") as f:
            keys = set(json.load(f)[split])
        self.items = []
        with open(os.path.join(data_root, "subcaptions_public.jsonl"),
                  encoding="utf-8") as f:
            for line in f:
                rec = json.loads(line)
                if self._figure_key(rec) in keys:
                    self.items.append(rec)

    def _figure_key(self, rec):
        """按官方划分文件的键格式返回复合图标识(以实际文件键结构为准)。"""
        return rec.get("figure_id") or f"{rec.get('pdf_hash')}_{rec.get('fig_key')}"

    def __len__(self):
        return len(self.items)

    def __getitem__(self, idx):
        rec = self.items[idx]
        img_path = os.path.join(
            self.root, "figures", f"{rec['pdf_hash']}_{rec['fig_uri']}")
        image = Image.open(img_path).convert("RGB")
        subfigures = [(s["subcaption"], self.transform(
            image.crop((s["x"], s["y"], s["x"] + s["w"], s["y"] + s["h"]))))
            for s in rec.get("subfigures", [])]
        return rec.get("caption", ""), subfigures

def collate_subfigures(batch):
    caps, subs = zip(*batch)
    return caps, subs          # 变长 subfigure 列表,按需在模型内处理

def collate_fn(batch):
    images, texts = zip(*batch)
    return torch.stack(images), list(texts)

dataset = MedICaTImageTextDataset("data/medicat", use_references=True)
loader = DataLoader(dataset, batch_size=64, shuffle=True,
                    num_workers=8, collate_fn=collate_fn, pin_memory=True)
images, texts = next(iter(loader))
print(images.shape, texts[0][:80])

§6.5 坑点 8 个

⚠️ 坑点 1:75% 复合图被当"单图"整用(分类:偏倚陷阱)

问题:MedICaT 约 75% 的图是含 (a)(b)©(d) 面板的复合图,整图-整注训练会让模型把多个面板的描述压进一个视觉向量,检索与 captioning 双双错位。
症状:检索查询"lung cyst CT"命中整张四联图却排序不如单面板图;captioning 输出把不同面板的发现串成一句混乱描述。
解决:

  1. 简单方法:优先用 radiology 过滤出非复合子集(ROCO 风格)做基线,或在训练时按 subfigure 边界框随机裁剪一个面板作为正样本视图。
  2. 进阶方法:用官方 2,069 幅标注图训练面板裁剪器(基于边界框的检测/分割),再对全量复合图推理生成"伪 subfigure",把语料扩成面板级图文对。
  3. SOTA 方法:训练官方提出的 subfigure-subcaption 对齐模型(SciBERT CRF + box embedding,Test F1 71.9),用其对齐信号做面板级对比学习。
    参考:Subramanian et al., 2020, Findings of EMNLP, DOI 10.18653/v1/2020.findings-emnlp.191;官方仓库 code/

⚠️ 坑点 2:只训图注、扔掉引用句,白白损失 1.8 个点 Recall@1(分类:标签理解)

问题:图注与引用句平均 Jaccard 相似度仅 23%——正文引用句包含图注没有的诊断细节(位置、尺寸、病例编号语境),丢弃即浪费。
症状:模型在 ROCO 检索上 Recall@1 停在 7.6% 附近(论文 caption-only 基线),加引用句本可到 9.4%。
解决:

  1. 简单方法:把引用句直接拼进文本端(caption + " " + refs[:2])。
  2. 进阶方法:给图注与引用句用不同 token type embeddings(官方做法),让编码器区分"描述"与"佐证"两种语体;训练目标用 1 正 2 负三元组选择。
  3. SOTA 方法:引用句按 subfigure 指代(如 “Figure 1d”)先做面板级路由,再分别与对应面板对齐。
    参考:论文 §4;注意仅 33% 的 ROCO 训练图有引用,对比实验时固定被覆盖子集。

⚠️ 坑点 3:s2_caption 与 s2orc_caption 双源打架(分类:工程陷阱)

问题:同一幅图有两个图注字段,来自 Semantic Scholar 抽取管线与 S2ORC 匹配两条链路,解析差异会产生大小写、前缀甚至内容不一致。
症状:同一图在不同 epoch/数据版本下文本不同;评测分数随字段选择漂移。
解决:

  1. 简单方法:统一用 s2_caption,缺失时回退 s2orc_caption。
  2. 进阶方法:构建时对两字段做规范化后比对(去 “Figure N.” 前缀、空白折叠),不一致的记录打上 caption_conflict 标志并抽检。
  3. SOTA 方法:双字段各自训练一个轻量检索头,评测取集成,容忍而非消灭差异。
    参考:官方仓库 README 示例记录;S2ORC(Lo et al., 2020)抽取协议。

⚠️ 坑点 4:把 radiology/predicted_type 弱标签当金标准(分类:预处理陷阱)

问题:域标签来自关键词 + ResNet-101 分类器(DocFigure 训练),官方口径 precision 96%、recall 仅 67%——约三分之一医学图会被漏标,非医学图也可能混入。
症状:按 radiology==true 切子集后,统计里"非放射图"里仍混有大量放射图;用 predicted_type 复现过滤时数量对不上论文。
解决:

  1. 简单方法:把这两个布尔值仅当先验权重,不当过滤硬条件。
  2. 进阶方法:先用关键词二次放宽召回,再用自训练的 DocFigure 分类器重打标,抽样 200 幅人工复核(复现论文的自校准流程)。
  3. SOTA 方法:用 CLIP 零样本类别词打标 + 置信度阈值分层,保留低置信样本作"unknown 域"。
    参考:论文 §2 过滤协议与脚注;DocFigure(Jobin et al., 2019)。

⚠️ 坑点 5:逐篇 CC 许可异构,再分发即违规(分类:工程陷阱)

问题:MedICaT 整体"仅限研究用途、非商业",且每幅图继承源文献许可——含 CC BY-NC-ND、CC BY-SA 等变体,ND/SA 条款禁止分发处理后图像或要求同许可传递。ROCOv2 论文专门指出这一点。
症状:把重标注后的图像包发布到 HuggingFace 后收到下架/邮件投诉;商用产品引用了数据集图像导致许可连锁问题。
解决:

  1. 简单方法:发布衍生数据集时只放 ID 与下载脚本,不放图像像素;保留 oa_info.license 字段逐条可查。
  2. 进阶方法:按许可分组过滤——只保留 CC BY / 公有领域的子集做公开分发(数量会缩水,需在论文中如实说明)。
  3. SOTA 方法:仿照 BIOMEDICA 的做法做许可分层发布(每条记录带许可元数据 + 分许可的独立打包)。
    参考:官方仓库 LICENSE/README;ROCOv2, Scientific Data 2024, DOI 10.1038/s41597-024-03496-6。

⚠️ 坑点 6:104 GB 单包下载断裂与图像路径拼接错误(分类:工程陷阱)

问题:主包是单个 104 GB tar.gz,S3 us-west-2 直链无官方校验和;图像命名是 {pdf_hash}_{fig_uri} 的拼接规则,手滑写成 fig_uri 单独拼会全量 FileNotFoundError。
症状:wget 半途断连后解压报 tar 错误;Dataset 初始化时大批 “image not found”;JSONL 记录数与磁盘图数对不齐。
解决:

  1. 简单方法:wget -c 断点续传 + 解压后统计 PNG 数对照 217,060。
  2. 进阶方法:加载器统一封装 figure_path(rec) 函数(见 §6.1),初始化时过滤不存在文件并记录缺失清单。
  3. SOTA 方法:下载后建立 pdf_hash,fig_key → 磁盘路径 的 SQLite 索引,训练时 O(1) 查找并支持缺失容忍采样。
    参考:官方 README 下载说明与示例记录;仓库 sample/。

⚠️ 坑点 7:subcaption 是多段不连续 span,单段模型有天花板(分类:评估误用)

问题:一个 subfigure 常对应图注中多段不连续文字(如 “(A)” 与句中后半段描述)。阶段二标注明确允许多段 span;官方 oracle 实验显示,强制单段的天花板(Test 75.5)比无约束 oracle(Test 90.8)低约 15 个 F1。
症状:你的对齐模型在 66–72 F1 附近徘徊却找不到改进方向;人工查看发现正确描述被切成两截。
解决:

  1. 简单方法:接受单段设定做快速基线,但报告时注明与 oracle 的差距。
  2. 进阶方法:用 CRF/BiLSTM-CRF 做序列标注天然支持多段输出(官方 Text+Box Embedding CRF 即此路线)。
  3. SOTA 方法:用生成式 span 抽取(如 seq2seq 输出 start-end 对)或对每对(subfigure, token)做二分类再聚合。
    参考:论文 Table 2 与 §3;官方 code/ 中 CRF 实现。

⚠️ 坑点 8:文献插图 ≠ 临床数据分布,跨域直接部署失效(分类:偏倚陷阱)

问题:数据来自"被挑选进论文的图"——典型病例、阳性结果、示意图占优;无患者级元数据、无设备参数、放射占 72%。文献域训练的模型在连续临床数据流上会有系统性分布漂移。
症状:在 MIMIC-CXR 报告检索或院内 PACS 图像上指标大幅低于 ROCO 上的表现;captioning 输出偏向"教科书式"完整句而非真实报告风格。
解决:

  1. 简单方法:在论文中明确声明域差异,不做临床声明;保留 MedICaT 作预训练、临床数据作微调。
  2. 进阶方法:域自适应——用 MIMIC-CXR/PadChest 做目标域微调,报告"文献域 → 临床域"的退化曲线作为外部验证(见 §7.8)。
  3. SOTA 方法:混合语料预训练(MedICaT + MIMIC-CXR + ROCO)并按来源做平衡采样,评测时分域报告。
    参考:论文 limitations 讨论;PMC-CLIP(MICCAI 2023)与 BIOMEDICA(2025)的混合语料实践。

§6.6 数据增强

安全增强 ✅:

  • 几何类:随机缩放裁剪(0.7–1.0)、轻度平移——面板内病灶位置信息保留。
  • 光度类:亮度/对比度抖动(±10%)、轻微高斯噪声——模拟出版扫描差异。
  • 文本侧:图注/引用句随机 dropout、同论文引用句乱序。

危险增强 ❌:

  • 水平/垂直翻转——医学影像解剖方位(左右侧、前后位)具有诊断含义,文献图上的箭头标注与方位词(“right renal”)会与图像失配。
  • 大角度旋转与弹性形变——破坏箭头、标尺、面板字母 (a)(b) 的可读性,而这些正是 MedICaT 引用句所指的对象。
  • 对 subfigure 边界框做增强却不同步变换框坐标——对齐任务标签即刻失效。
def safe_transform(image, boxes=None):
    """文本-框同步的增强封装:图像与边界框做同一几何变换。"""
    import random
    scale = random.uniform(0.7, 1.0)             # 随机缩放(安全)
    new_size = (int(image.width * scale), int(image.height * scale))
    image = image.resize(new_size)
    if boxes is not None:                        # 框坐标同步缩放
        boxes = [{**b, "x": b["x"] * scale, "y": b["y"] * scale,
                  "w": b["w"] * scale, "h": b["h"] * scale} for b in boxes]
    return image, boxes                          # 注意:不做翻转/旋转

§6.7 模型推荐

任务 推荐模型 起点规模 说明
图文检索/预训练 CLIP / PubMedCLIP 架构(ViT-B/32 + SciBERT 或 BioClinicalBERT) 约 1.5 亿参数 文本端换医学预训练权重收益明显(论文消融:预训练权重 F1 +23)
subfigure-subcaption 对齐 Text+Box Embedding CRF(官方) SciBERT-base 官方 Test F1 71.9,代码在仓库 code/
面板级 captioning BLIP 风格 encoder-decoder + 面板裁剪前端 约 2 亿参数 以引用句为辅助监督
多模态大模型预训练 把 MedICaT 混入 PMC-OA/ROCO 混合语料 依底座 参考 PMC-CLIP、BIOMEDICA 的配比

§6.8 硬件需求

阶段 显存 建议
对齐模型(SciBERT-CRF,2,069 图) 1×16 GB 单卡 A10/3090 数小时一轮
检索预训练(全量 217K 图) 1×24–40 GB batch 128–256,混合精度
大规模 CLIP 式预训练 4–8×A100 40 GB 数据 104 GB,先做本地缓存索引

经验参考:对齐任务(2,069 图)在单张消费级显卡上即可完整迭代,适合作为课程实验或快速验证;全量检索预训练则按 ROCO 级别(8 万图)起步配置估算,MedICaT 全量约为其 2.6 倍训练时长。

§6.9 评估指标代码

import torch

def recall_at_k(image_feats, text_feats, ks=(1, 5, 10)):
    """图→文与文→图 Recall@K(余弦相似度,全库检索)。"""
    image_feats = torch.nn.functional.normalize(image_feats, dim=-1)
    text_feats = torch.nn.functional.normalize(text_feats, dim=-1)
    sims = text_feats @ image_feats.T                       # N×N
    ranks_i2t = (sims.T.argsort(dim=-1) ==
                 torch.arange(len(sims), device=sims.device).unsqueeze(1)).nonzero()[:, 1]
    results = {}
    for k in ks:
        results[f"i2t_R@{k}"] = (ranks_i2t < k).float().mean().item()
    return results

def span_f1(pred_spans, gold_spans):
    """多段 span 级 P/R/F1:对齐任务主指标(论文口径)。"""
    pred_set = {(s, e) for s, e in pred_spans}
    gold_set = {(s, e) for s, e in gold_spans}
    tp = len(pred_set & gold_set)
    p = tp / len(pred_set) if pred_set else 0.0
    r = tp / len(gold_set) if gold_set else 0.0
    return 2 * p * r / (p + r) if p + r else 0.0

def box_iou(box_a, box_b):
    """边界框 IoU:评测 subfigure 检测/裁剪质量(x, y, w, h 格式)。"""
    ax1, ay1, ax2, ay2 = box_a[0], box_a[1], box_a[0] + box_a[2], box_a[1] + box_a[3]
    bx1, by1, bx2, by2 = box_b[0], box_b[1], box_b[0] + box_b[2], box_b[1] + box_b[3]
    iw = max(0.0, min(ax2, bx2) - max(ax1, bx1))
    ih = max(0.0, min(ay2, by2) - max(ay1, by1))
    inter = iw * ih
    union = box_a[2] * box_a[3] + box_b[2] * box_b[3] - inter
    return inter / union if union > 0 else 0.0

§6.10 MLOps 笔记

  • 数据版本:MedICaT 内容包无版本号变化(2020-10-05 定版),但你的衍生处理(清洗规则、子集过滤)必须单独打版本(如 DVC);论文复现务必记录"用了哪个图注字段、是否拼引用句"。
  • 许可合规进流水线:在数据管道里加一道 oa_info.license 检查点,商用触发告警(见坑点 5)。
  • 评测锚点:把 ROCO 检索(R@1/R@5/R@10,2,000 抽样对)与官方对齐划分 F1 固化为 CI 回归指标,防止数据处理回归悄悄劣化。
  • 可复现性:固定负采样种子——检索训练负例是随机抽的(官方协议),负例种子不同分数波动明显(论文附录 D 报告了多种子极差)。
  • 存储成本:104 GB 主包 + 解压副本约需 210 GB;建议训练集群只保留解压目录,压缩包放对象存储冷备。
  • 元数据追踪:为每个训练样本保留 (pdf_hash, fig_key, license, domain_flags) 四元组,任何后续审计(许可、子集分析、错误分析)都能一查到底。

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
文献选择偏倚 只收录"能进论文的图"——典型、阳性、教学性病例 高 外部验证于临床流数据(MIMIC-CXR 等),声明不做临床推断
复合图结构偏倚 75% 复合图 + 平均约 3.6 面板,整图级统计被多面板稀释 高 面板级建模(§6.7),避免整图-整注直接训练
模态偏倚 放射 72%、病理 13%、内镜仅 3%,其他模态稀薄 中 分域训练/评测,报告分域指标
语言与地域偏倚 英文开放获取期刊为主,地域与人群未记录 中 谨慎外推到非英语临床环境
过滤器偏倚 关键词+分类器过滤 recall 约 67%,医学图约 93%(估计) 中 用作先验而非硬过滤;自训练分类器重打标
引用覆盖偏倚 仅 74% 图有引用句、ROCO 训练集覆盖仅 33% 中 引用增强实验固定覆盖子集,避免混入"有引用子集"的隐性选择效应
许可结构偏倚 许可异构(ND/SA 混杂),高影响因子出版社占比高 低 训练不受影响;分发需分层处理

§7.2 标注质量

标注层 方式 覆盖 质量信号
subfigure 边界框 + subcaption 人工两阶段(5 人标注 + 2 人复核) 2,069 幅复合图 一致性 0.828→0.89;允许多段 span
图注(s2_caption/s2orc_caption) 自动抽取 全部 217,060 图 PDF 解析噪声、双源不一致
图内引用句 自动(S2ORC 匹配) 74% 图 匹配遗漏与"正文未提及"不可区分
域标签(radiology/scope/type) 关键词 + 分类器 全部图 precision 96% / recall 67%

总体结论:MedICaT 的质量梯度是"人工对齐层 > 自动文本层 > 弱标签层",任务设计应尽量让金标准层承担监督、弱标签层只承担过滤与分层。

人工层(subfigure-subcaption)质量较高:两阶段标注、报告一致性(0.828→0.89),但标注者无医学博士,subcaption 措辞可能欠临床精确性。自动层(图注、引用句、域标签)未经医学复核,存在 PDF 解析噪声与匹配遗漏;26% 的图无引用句可能因正文确实未提及,也可能因 S2ORC 匹配失败——两种情形无法区分。

§7.3 泛化性

场景 失效风险 证据
文献域内检索(ROCO 式) 低 论文协议内验证,加引用后 R@1 7.6%→9.4%
复合图面板对齐 中——单段模型天花板低 论文 Table 2:单段 oracle 75.5 vs 无约束 90.8(Test F1)
文献图 → 临床影像流 高——分布漂移 文献选图偏倚 + 无患者元数据(§7.1)
非英语场景 高 语料全英文
放射以外模态(内镜等) 高 仅约 3% 内镜样本
低分辨率图像的定位任务 中 出版图像质量不一,官方无分辨率分布统计(§3.1)

§7.4 伦理

数据全部来自公开出版的开放获取文献,不含新增人类受试者数据;任何患者图像由出版方在出版流程中脱敏。研究用途与非商业限制见 §9 与坑点 5。风险点:文献图与文本配对后可能被用于生成看似有据的医学内容,使用者应在生成系统中加入来源溯源(DOI 已内嵌每条记录)。

另外两点值得注意:其一,文献图中的病例即使已出版,也可能被患者本人识别(罕见病 + 面部/纹身等特征),下游系统应避免以人脸为中心的展示;其二,自动生成的"医学图文"若用于公众科普,须明确标注生成来源与局限,防止把文献示例误当诊疗建议。

§7.5 公平性

数据集无人口统计学字段,无法进行亚组公平性分析;期刊来源结构可能系统性放大英语国家医疗体系的病种呈现。使用者若构建下游临床工具,需在目标人群数据上重新评估公平性。

§7.6 数据漂移

语料定格于 2020-10-05 的 PMC 快照;此后医学出版(尤其 COVID-19 后影像文献)的语言与影像风格已漂移。对外部新文献检索系统,建议定期用新增开放获取论文重放引用匹配管线(管线基于 Siegel 2018 + S2ORC,方法论可复用)。

漂移监控的实用做法:抽取 500 幅新文献图,与 MedICaT 图像在统一分类器下比较模态占比与图注长度分布;若放射占比或平均图注 token 数显著偏移(如 ±10 个百分点以上),说明出版生态已变,检索模型需要增量适配。

§7.7 DAIMS 数据质量评估

# 检查项 状态 说明
1 宽格式 ✅ JSONL 单行单图记录,扁平结构可直接进 DataFrame
2 唯一标识 ✅ (pdf_hash, fig_key) 组合唯一;DOI 可回溯源论文
3 特殊字符 ⚠️ PDF 抽取文本偶见乱码/断词,需清洗(§6.3)
4 重复行 ⚠️ 双图注字段近似重复;同图多文件名需按 fig_key 去重
5 缺失编码 ✅ 缺失以空串/空列表显式表达,无魔法值
6 标签标识 ⚠️ 域标签(radiology 等)为弱标签,无金标准签层
7 罕见类分组 ❌ 内镜等稀缺模态未单独分组,样本过少无法分层
8 偏倚评估 ✅ 官方论文自报模态占比与过滤精度/召回(§2)
9 数据字典 ✅ README 提供示例记录与字段说明 + 本页 §4.1
10 信息性缺失解释 ⚠️ 空引用列表无法区分"未提及"与"匹配失败"
11 设备记录 ❌ 无设备型号/参数(文献图本质所限)
12 共线性 ✅ 不适用——无临床数值变量矩阵
13 编码映射 ✅ oa_info 内嵌 OA 状态与许可枚举(unpaywall 口径)
14 时间戳处理 ⚠️ 无逐条时间戳,仅数据包级发布日期
15 划分建议 ✅ 对齐任务有官方划分文件;全量任务需按论文分组
16 泄漏讨论 ✅ 论文排除 ROCO 重叠;本页 §5.3 补充论文级泄漏规则
17 标签分布 ✅ 模态占比与复合图占比有官方估计值
18 测量偏倚 ⚠️ 文献选图偏倚官方承认,无量化修正方案
19 外部验证建议 ✅ 官方即用 ROCO 作外部锚点;本页 §7.8 给出矩阵
20 版本记录 ✅ 单一定版 + GitHub 提交历史可追溯
21 预处理脚本 ⚠️ code/ 含论文实验代码,无端到端数据清洗脚本
22 合规要求 ✅ 逐篇许可字段 + 非商业声明,合规颗粒度细
23 多模态对齐 ✅ 三层图文对齐(图注/引用/subcaption)为核心卖点
24 去标识化 ✅ 出版方出版前脱敏,数据集不新增标识信息

DAIMS 评分:16.5 / 24

评分解读:扣分集中在"临床数据集视角"的检查项——罕见类分组(7)、设备记录(11)、时间戳(14)、信息性缺失可解释性(10)、弱标签层(6)、重复与特殊字符需自清洗(3/4)、预处理脚本不全(21)、测量偏倚无量化修正(18)。而它的强项正是同类文献语料中稀缺的:多模态对齐(23)、逐条许可溯源(13/22)、官方划分与泄漏控制(15/16)。

对你意味着什么:① 把它当预训练语料用(图像+文本+弱域标签),不要当临床数据库用——没有设备与时间戳,任何"临床级"声明都站不住;② 动手前先跑 §6.3 清洗,把 3/4/10 三项的坑(乱码、双图注、空引用歧义)在管线里显式处理;③ 分发衍生数据前跑一遍 oa_info.license 过滤(第 22 项是现成的合规接口);④ 对齐研究直接用官方划分与 CRF 基线(15/16/23 三项已备好),不必重造划分。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
ROCO(外部语料) Medical University of Vienna 等 图文检索(2,000 抽样测试对) Recall@1 9.4%(加引用)vs 7.6%(仅图注) +1.8 个百分点 引用句监督在完全外部语料上成立
ROCO train 子集(33% 覆盖) 同上 同上 仅 21K 训练图有引用 覆盖不全即增益打折 引用覆盖率是增益的上界约束

注:MedICaT 的独立第三方外部验证报告仍较稀缺;PMC-CLIP(MICCAI 2023)、BIOMEDICA(2025)等后续工作主要将其作为相关语料与统计对照引用,而非直接验证平台。引用请注明评估协议(官方用随机负采样三元组训练、20 负例验证),跨论文数值不可直接比较。若你的工作在 MIMIC-CXR 或 PadChest 上验证了"文献域预训练 → 临床域微调"的迁移曲线,欢迎补充为新的外部验证证据。

§8 基准性能与生态

§8.1 官方基准结果

任务一:复合图 subfigure-subcaption 对齐(指标:F1,Val/Test,官方划分):

排名 模型 Test F1 年份 关键技术 完整引用 代码
1 Oracle + alignment heuristic(上界参考) 90.8 2020 金标 subfigure+subcaption + 启发式对齐 Subramanian et al., 2020, Findings of EMNLP. DOI 10.18653/v1/2020.findings-emnlp.191 code/
2 Text+Box Embedding CRF(gold subfigure) 71.9 2020 SciBERT + 边界框嵌入 + CRF 多段解码 同上 同上
3 Text-only CRF(w/ pretrained weights,gold subfigure) 66.9 2020 SciBERT 初始化收益显著 同上 同上
4 Text-only CRF(w/o pretrained weights) 43.3 2020 从零训练崩溃 同上 同上

⚠️ 各行实验设定不同(gold/predicted subfigure、单段/多段),不可跨行比较绝对值;Oracle 行是上界而非可提交系统。

任务二:图文匹配(ROCO 外部语料,2,000 抽样测试对):

设置 Recall@1 说明
图注 only 7.6% 官方基线
图注 + 图内引用 9.4% 引用句监督的净增益

⚠️ 该协议(随机负例三元组训练 + 全库余弦检索)与 PMC-CLIP 等后续工作的 ROCO 检索协议不同,数值不可直接比较。

§8.2 SOTA 总结与选型建议

MedICaT 上尚无活跃的第三方排行榜;对齐任务的实用起点是官方 Text+Box Embedding CRF(71.9),改进空间集中在多段 span 解码与更强的视觉-语言底座。检索任务建议直接采用 CLIP 式对比学习(PubMedCLIP/PMC-CLIP 配方),把 MedICaT 引用句作为额外正样本文本。

选型速查:

  • 做面板级对齐研究:从官方 CRF 起步(代码在仓库),先复现 71.9 再迭代;重点攻"多段 span"与"空间指代"(“right-hand panel”)两个论文点名的失效源。
  • 做检索/预训练:不必复刻官方 7.6% 协议——那是为证明引用句增益设计的受控小协议;直接上 CLIP 式全库对比学习,用 MedICaT + ROCO 混合,报告 Recall@K 与第三方可比数字。
  • 做图注生成:以 MedICaT 图注为弱监督、引用句为条件增强,评测在临床报告数据集(如 MIMIC-CXR 衍生基准)上做外部验证。

§8.3 评测协议

  • 对齐任务:官方 subcaption_split_keys 划分;span 级 F1;报告 gold subfigure 与 predicted subfigure 两种设定。
  • 检索任务:ROCO 官方划分测试集抽样 2,000 对;Recall@K;负采样协议必须记录种子。
  • 通用规范:按 pdf_hash 分组划分;分域(放射/病理/内镜)报告子集指标。
  • 诚实报告建议:注明使用的图注字段(s2_caption 或 s2orc_caption)、是否拼接引用句、负例数量——这三项选择足以让同一模型的报告分数相差数个百分点。

§8.4 相关数据集

数据集 关系 站内条目
ROCO MedICaT 显式排除其图像并反向补引用;检索基准语料 roco
ROCOv2 2024 年更新版,讨论 MedICaT 许可限制 暂未收录
PMC-OA / BIOMEDICA 同源 PMC 的更大规模图文语料 暂未收录
PMC-VQA 文献图衍生的 VQA 数据集 pmc-vqa
VQA-RAD / SLAKE / VQA-Med 医学 VQA 评测集 vqa-rad、slake、vqa-med
PathVQA 病理问答,与病理子集互补 pathvqa
MIMIC-CXR 临床域胸片-报告,跨域验证目标 暂未收录(MIMIC 系列见站内 MIMIC-III)
BIOMEDICA 许可分层发布范式参照 暂未收录

§8.5 关键论文 Top 8

  1. Subramanian, S., Wang, L. L., Mehta, S., Bogin, B., van Zuylen, M., Parasa, S., Singh, S., Gardner, M., & Hajishirzi, H. (2020). MedICaT: A Dataset of Medical Images, Captions, and Textual References. Findings of EMNLP 2020, pp. 2112–2120. DOI 10.18653/v1/2020.findings-emnlp.191 —— 数据集原始论文,提出对齐任务与引用增强检索。
  2. Pelka, O., Koitka, S., Rückert, J., Nensa, F., & Friedrich, C. M. (2018). Radiology Objects in Context (ROCO): A Multimodal Image Dataset. MICCAI LABELS 2018, pp. 180–189 —— MedICaT 的对照与外部评测语料。
  3. Lo, K., Wang, L. L., Neumann, M., Downey, R., & Weld, D. S. (2020). S2ORC: The Semantic Scholar Open Research Corpus. ACL 2020 —— 图内引用句的全文来源语料。
  4. Siegel, N., Lourie, N., Power, R., & Ammar, W. (2018). Extracting Scientific Figures with Distantly Supervised Neural Networks. JCDL 2018 —— 论文图与图注抽取的源头方法。
  5. Jobin, K. V., et al. (2019). DocFigure: A Dataset for Scientific Document Figure Classification. ICDAR 2019 —— 医学图分类器训练集(33K 图,28 类)。
  6. Lin, W., et al. (2023). PMC-CLIP: Contrastive Language-Image Pre-training using Biomedical Documents. MICCAI 2023 —— 大规模文献图文预训练代表,引用 MedICaT 统计并沿用 ROCO 评测。
  7. Zhang, S., et al. (2025). BIOMEDICA: An Open Biomedical Image-Caption Archive, Dataset, and Vision-Language Models Derived from Scientific Literature. arXiv:2501.07171 —— 许可分层发布范式,表 1 与 MedICaT 对比。
  8. Daimon, N., et al. (2024). ROCOv2: Radiology Objects in COntext Version 2. Scientific Data. DOI 10.1038/s41597-024-03496-6 —— 指出 MedICaT 的 ND/SA 许可再分发限制。

阅读顺序建议:先读 1(本数据集)与 2(ROCO,理解排除关系),再读 3/4/5(方法源头),最后读 6/7/8(生态位置与许可边界)。

§8.6 社区活跃度

官方仓库(allenai/medicat)自 2020-10 开放,2026-02 仍在维护 README(更新 subcaption 任务链接),提交历史显示数据链接长期有效。第三方生态集中在引用其统计与思路的医学视觉-语言工作(PMC-CLIP、BIOMEDICA、GMAI-VL、Med-GLIP、SciCap+ 等,见 arXiv 引用图谱),专门的 issue 讨论较少——工程问题多由使用者自行解决,这正是本页 §6.5 坑点的价值所在。

需要如实说明:MedICaT 不属于"高频基准"数据集——它没有 Papers with Code 式的活跃榜单,社区存在感主要通过两条路径体现:一是论文引用(作为复合图占 75% 的统计依据与相关工作对照),二是把其 subfigure 标注当作医学图文定位研究的训练资源。若你的研究依赖活跃社区基准(如排行榜、baseline 复现热潮),ROCO/MIMIC-CXR 生态更合适;若你研究"文献图表理解"这一 niche,MedICaT 几乎是唯一选择。

§8.7 生态快照

资源 类型 链接 状态(截至 2026-09) 推荐理由
官方仓库 代码+文档 github.com/allenai/medicat 活跃维护 申请入口、样例、论文代码
论文 PDF 论文 aclanthology.org/2020.findings-emnlp.191 定稿 全部统计与协议的唯一权威来源
arXiv 预印本 论文 arxiv.org/abs/2010.06000 定稿 便于引用与全文检索
作者报告 Slides 演讲材料 people.eecs.berkeley.edu/~sanjayss/MedicatPresentation.pdf 可访问 快速了解任务动机与数据样例
S2ORC 配套语料 github.com/allenai/s2orc 可用 复现/扩展引用匹配管线
ROCO 配套基准 见论文 §4 划分 可用 检索任务外部评测锚点

§9 相关资源与引用

§9.1 官方资源

  • 官方仓库与申请入口:github.com/allenai/medicat(表单获取下载链接,48 小时内回复,注意垃圾邮箱)
  • 样例数据:仓库 sample/ 目录(无需下载 104 GB 主包即可调试代码)
  • 论文代码:仓库 code/ 目录(subfigure-subcaption 对齐 + 图文匹配两个任务的实现)
  • 相关数据集线索:ROCO(检索基准)、S2ORC(引用语料)、DocFigure(过滤分类器训练集),链接见 §8.5 论文列表
  • 联系方式:{sanjays, lucyw}@allenai.org

§9.2 教程与学习路径

  • 入门 30 分钟:读论文摘要与 Table 1 → 浏览仓库 README 示例记录 → 跑通 sample/ 上的 §6.1 代码。
  • 对齐任务上手:下载 14 MB 标注件与划分文件 → 读论文 §3(对齐任务定义)→ 用仓库 code/ 的 CRF 实现复现 Val F1 74.1。
  • 检索任务上手:读论文 §4(协议与 Table 3)→ 在 ROCO 上复现 7.6%→9.4% 引用增益 → 再扩展到 MedICaT 全量。
  • 延伸阅读:S2ORC 论文(理解引用匹配原理)、DocFigure 论文(理解过滤分类器)、PMC-CLIP 与 BIOMEDICA(理解该语料族在预训练中的位置)。
  • 问题求助:官方邮箱(见 §9.1);表单申请超 5 天未回复时邮件催询并检查垃圾邮箱——这是官方 README 明示的流程。

§9.3 BibTeX 引用

@inproceedings{subramanian-etal-2020-medicat,
    title = "{M}ed{IC}a{T}: A Dataset of Medical Images, Captions, and Textual References",
    author = "Subramanian, Sanjay and
      Wang, Lucy Lu and
      Bogin, Ben and
      Mehta, Sachin and
      van Zuylen, Madeleine and
      Parasa, Sravanthi and
      Singh, Sameer and
      Gardner, Matt and
      Hajishirzi, Hannaneh",
    booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2020",
    month = nov,
    year = "2020",
    address = "Online",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2020.findings-emnlp.191/",
    doi = "10.18653/v1/2020.findings-emnlp.191",
    pages = "2112--2120"
}

§9.4 引用指南

使用数据集请引用上面的官方 BibTeX;若同时使用 ROCO 检索基准,请补充引用 Pelka et al. 2018;若复用引用匹配思路,请引用 S2ORC 与 Siegel et al. 2018。引用千方病案医数集本页时,请以页面底部 DOI/URL 为准。

补充提醒:官方 GitHub 仓库的 BibTeX(subramanian-2020-medicat)与本页 ACL Anthology 版本(subramanian-etal-2020-medicat)键名不同,内容一致;二选一即可,团队内保持统一。

§10 AI 使用声明卡

§10.1 AI 模型列表

  • 内容组织与初稿撰写:大型语言模型(CodeBuddy Code,fast-model)
  • 无图像生成模型参与正文制作(封面提示词为人工撰写的设计规范文本)

§10.2 AI 参与范围

AI 参与:资料检索与事实汇总、章节初稿撰写、代码示例起草、表格整理。人工参与:事实核对(全部规模/日期/许可数字对照官方仓库与论文原文)、医学与数据工程交叉审核、DAIMS 评分校准、最终发布决定。

边界约定:AI 不做医学判断(§2 的编码映射仅为检索导航,经人工核对);AI 不生成任何无来源数字;DAIMS 评分由人工逐项复核后确定;对外联系方式与许可声明逐字对照官方 README。

§10.3 输入来源列表

  1. Subramanian, S., et al. (2020). MedICaT: A Dataset of Medical Images, Captions, and Textual References. Findings of EMNLP 2020, 2112–2120. DOI 10.18653/v1/2020.findings-emnlp.191
  2. Subramanian, S., et al. (2020). MedICaT. arXiv:2010.06000. https://arxiv.org/abs/2010.06000
  3. MedICaT 官方仓库 README。https://github.com/allenai/medicat
  4. NSF Public Access Repository 收录页(含资助号 1817183)。https://par.nsf.gov/biblio/10462672
  5. NSF 全文镜像(论文实验细节与 Table 2/3)。https://par.nsf.gov/servlets/purl/10462672
  6. ar5iv 论文 HTML 版(Dataset Statistics 表)。https://ar5iv.arxiv.org/html/2010.06000
  7. OpenMedLab Awesome-Medical-Dataset 收录页。https://github.com/openmedlab/Awesome-Medical-Dataset/blob/main/resources/MedICaT.md
  8. Lin, W., et al. (2023). PMC-CLIP. arXiv:2303.07240. https://arxiv.org/abs/2303.07240
  9. ROCOv2: Radiology Objects in COntext Version 2. Scientific Data (2024). DOI 10.1038/s41597-024-03496-6(经 medRxiv 引文页核实)
  10. BIOMEDICA (2025). arXiv:2501.07171(相关引用与对比)。https://arxiv.org/abs/2501.07171
  11. arXiv 引用图谱快照(下游引用清单)。https://arxiv.gg/abs/2010.06000
  12. OpenXLab 数据集收录页(机构列表中文核对)。https://openxlab.org.cn/datasets/OpenDataLab/MedICaT
  13. MedICaT 论文报告 Slides(UC Berkeley 作者主页镜像)。https://people.eecs.berkeley.edu/~sanjayss/MedicatPresentation.pdf

§10.4 人工校验

内容模块 审核者 审核方式 审核状态
§1 概览与对比表 千方病案医学编辑部 数字逐一对照论文 Table 1 与官方 README ✅ 已通过/已验证
§2 医学背景与术语映射 千方病案医学编辑部 ICD-11/SNOMED 编码核对 ✅ 已通过/已验证
§3–§5 规格与结构 数据工程审核者 对照官方下载清单与示例记录 ✅ 已通过/已验证
§6 AI 就绪指南与坑点 数据工程审核者 代码逻辑走查 + 坑点溯源官方文档/论文 ✅ 已通过/已验证
§7 质量评估与 DAIMS 数据工程审核者 24 项逐条核对论文 limitations ✅ 已通过/已验证
§8–§10 基准与声明 千方病案医学编辑部 引用完整性核查 ✅ 已通过/已验证

§10.5 AI 生成章节标注

全部章节初稿由 AI 生成;§1.0、§2.2、§6.5 坑点 1/2/8 的叙事经过人工重写润色;所有数字均标注来源,未采用任何无来源数字。

§10.6 最后人工审核日期

2026-09-05(与 §0.3 审核日期一致)

页面状态:published(全部内容已完成审核并发布)


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • pmc-oa — 共享标签:医疗NLP / 多模态 / 影像-文本对齐 / 生物医学文献
  • open-pmc — 共享标签:医疗NLP / 多模态 / 生物医学文献
  • pmc-vqa — 共享标签:医疗NLP / 多模态 / 生物医学文献
  • reg2026 — 共享标签:医疗NLP / 多模态 / 影像-文本对齐
  • biomedica — 共享标签:多模态 / 影像-文本对齐 / 生物医学文献
  • ms-cxr-t — 共享标签:医疗NLP / 多模态 / 影像-文本对齐
  • pmc-oa-subset — 共享标签:医疗NLP / 生物医学文献
  • s2orc — 共享标签:医疗NLP / 生物医学文献
  • ncbi-disease — 共享标签:医疗NLP / 生物医学文献
  • jnlpba — 共享标签:医疗NLP / 生物医学文献

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集