信息速览
MACCROBAT — 病例报告实体标注语料 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | MACCROBAT 病例语料 |
| 英文全称 | MACCROBAT(医学扩展自 ACROBAT:Annotation for Case Reports using Open Biomedical Annotation Terms) |
| 别名/简称 | MACCROBAT2018、MACCROBAT2020、ACROBAT 语料 |
| 疾病分类 | 全疾病谱(覆盖 ICD-11 多个系统章节,罕见病比重高;不限定单一编码) |
| SNOMED CT | 不强制映射(ACROBAT 为独立类型体系,官方未提供 SNOMED CT/MeSH/ICD 编码) |
| 数据模态 | 病例报告实体标注(英文临床叙事文本) |
| AI 任务类型 | 命名实体识别(NER)、关系抽取(RE) |
| 样本总数 | 200 篇病例报告 / 3,652 句 / 59,164 条标注(2020 版实体 25,144 个) |
| 数据大小 | 约 1.02 MB(每版本 ZIP) |
| 数据格式 | brat standoff(.txt + .ann 文件对) |
| 许可证 | CC BY 4.0 |
| 访问级别 | 开放(figshare 直接下载,无需注册申请) |
| DUO 标签 | NRES(无限制;公开数据,须按 CC BY 4.0 署名) |
| 语言 | 英文 |
| 首发日期 | 2019-10-17(V1:MACCROBAT2018) |
| 最后更新 | 2020-01-31(V2:MACCROBAT2020) |
| 发布机构 | 加州大学洛杉矶分校(UCLA)团队 |
| 官方主页 | figshare 数据页 |
| 下载地址 | https://doi.org/10.6084/m9.figshare.9764942 |
| DOI | 10.6084/m9.figshare.9764942(数据);10.1101/19009118(论文预印本) |
| 引用次数 | 9+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 数据干净、许可开放,但需自行完成 brat→BIO 转换,且无官方划分与预处理脚本、未发布标注一致性指标 |
| 页面状态 | published |
§0 E-E-A-T 审核与免责
医学审核:千方病案医学编辑部交叉审核:§2 医学背景(ACROBAT 类型体系与全疾病谱背景)、§7 偏倚与质量分析。
数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。MACCROBAT 以 CC BY 4.0 许可在 figshare 开放提供,使用时须保留原作者署名、注明来源与许可链接;若经 Hugging Face 等第三方镜像获取,须回溯核对官方版本与许可口径。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
这是什么? MACCROBAT 是把 200 篇公开发表的英文临床病例报告逐句标注出"疾病、症状、检查、用药、剂量、化验值"等 41 类实体/事件以及它们之间关系的开放数据集,由加州大学洛杉矶分校(UCLA)团队发布,相当于一份给机器"精读"的病例笔记合集。
为什么重要? 真实医院数据受隐私与许可双重限制,很难拿到带细粒度标注的临床叙事文本;病例报告恰好公开、完整,且大量覆盖罕见病与非典型表现,是连接通用生物医学 NLP 与真实临床叙事之间稀缺的开放桥梁。
我能用它做什么? 训练和评测临床命名实体识别(NER)与关系抽取(RE)模型,搭建医学信息抽取原型,做罕见病文本挖掘或课程教学。配合本页 §6 的 brat→BIO 转换代码,一天内即可跑通第一条可用 baseline。
§1.1 摘要
MACCROBAT 由 UCLA 团队在"病例报告元数据工程"基础上构建:该工程从 PubMed Central 整理了约 3,100 篇 curated 临床病例报告(CCR),横跨 15 个疾病组(其中罕见病报告 >750 篇),MACCROBAT2018 是其中 200 篇的人工标注子集。团队将病例全文编辑为仅保留临床细节、一句一行的纯文本(文档以 PubMed ID 命名),再用 brat 工具按 ACROBAT 类型体系人工标注实体/事件与关系,最终得到 200 篇报告、3,652 句、59,164 条标注(medRxiv 预印本)。数据于 2019-10-17 以 CC BY 4.0 在 figshare 首发(figshare),2020-01-31 发布标注一致性改进版 MACCROBAT2020(实体 25,144 个)。ACROBAT 类型体系不强制映射 SNOMED CT/MeSH/ICD,标注只含字符串跨度与类型标签;官方未发布训练/验证/测试划分与标注者间一致性(IAA),社区基准采用 80/10/10 文档级随机划分(arXiv:2106.12608)。
双版本如何选:MACCROBAT2018(V1)是原论文与多数公开基准的口径;MACCROBAT2020(V2)改进了标注一致性、实体计数更完整(25,144 个)。两版是同一批文档的两套标注,不可混用(坑点 1);选型速查见 §3.0 版本抉择矩阵。
§1.2 战略价值
维度一:类型粒度稀缺性。 主流公开临床 NLP 语料要么类型粗(2010 i2b2/n2c2 概念抽取只有问题/治疗/检查 3 类),要么面向生物医学文献而非病例叙事(BC5CDR、NCBI Disease)。MACCROBAT 用 41 类 ACROBAT 类型覆盖剂量、严重度、化验值、非生物性位置等细粒度临床概念,是目前少数能让模型学习"病例级细粒度临床语义"的开放语料。
维度二:罕见病叙事的独特覆盖。 其母体工程以罕见病报告为重点(>750 篇),MACCROBAT 子集延续了这一倾向。对罕见病信息抽取、表型文本化(phenotyping)等任务,它提供了比发病率驱动语料更均衡的疾病谱视角;2025 年已有第三方基于它构建 MeSH+Orphanet 过滤的罕见病子集(18 篇、2,444 个实体,Bayer 硕士论文)。
维度三:真实工程挑战的"练兵场"。 standoff 格式解析、41 类不均衡分布、无官方划分、双版本并存——这些"麻烦"恰是真实医疗 NLP 落地的缩影。对教学和工程团队而言,它是低风险(1.02 MB、CC BY 4.0)但高保真的全流程演练数据。
维度四:可复现实验的最低摩擦。 无需注册、无需 DUA、体积 1.02 MB、格式纯文本——从下载到第一条 baseline 的全链路摩擦几乎为零;对需要快速验证想法或组织教学练习的团队,这种低摩擦比规模更重要。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 文本来源 | 标注类型 | 差异化 |
|---|---|---|---|---|
| MACCROBAT | 200 篇报告 / 3,652 句 / 实体 25,144(2020 版) | PubMed Central 病例报告 | 41 类实体/事件 + 关系 | 病例叙事、细粒度、CC BY 4.0 完全开放 |
| 2010 i2b2(n2c2) | 170 篇出院小结 | 真实医院出院小结 | 3 类(问题/治疗/检查) | 真实临床文本但需 DUA 申请,类型粗 |
| BC5CDR | 500 篇全文 | PubMed 文献 | 化学 + 疾病 2 类 | 文献语料,实体归一化强 |
| NCBI Disease | 793 篇摘要 | PubMed 摘要 | 疾病 1 类 | 小而精的疾病 NER 基准 |
| CRAFT | 97 篇全文 | BioMed Central 文献 | 约 80+ 类(跨概念层) | 文献标注最全,非病例体裁 |
说明:对比数字为各数据集官方口径;MACCROBAT 与文献类语料的体裁差异(病例 vs 研究论文)是选择时的首要考量。
选择建议:优先按"文本体裁是否匹配你的目标域"筛选(病例叙事 vs 出院小结 vs 研究文献),再比规模与类型数。
§1.4 版本时间轴
| 时间 | 事件 | 说明 |
|---|---|---|
| 2019-10-17 | figshare 发布 V1(MACCROBAT2018) | 200 篇报告初版标注,CC BY 4.0 |
| 2019-10-22 | medRxiv 预印本上线 | ACROBAT 类型体系论文(DOI 10.1101/19009118) |
| 2020-01-31 | figshare 发布 V2(MACCROBAT2020) | 改进标注一致性与格式,实体 25,144 个 |
| 2021-06-23 | C-ELMo/C-Flair 基准论文发布 | 首个系统性 NER 基准(arXiv:2106.12608) |
| 2022–2025 | 第三方应用与评测 | 关系分类聚合、罕见病子集、BERT+RAG 微调等 |
§1.5 典型应用场景
- 临床 NER 模型原型与消融:41 类细粒度标签适合验证新架构/预训练权重在临床叙事上的类型级表现。
- 医疗大模型信息抽取评测集:以标注跨度为金标准,度量 LLM 零样本/少样本抽取的 span 级准确率。
- 关系抽取原型:利用 .ann 中的 R 行(实体对关系)构建副作用、机制类关系分类的正负例(已有 COVID-19 Surveiller 工作聚合使用)。
- 罕见病文本挖掘探索:结合 MeSH/Orphanet 词表过滤,构建罕见病向的子语料与词典。
- NLP 课程教学语料:体积小、许可宽、坑点多且典型,适合作为"临床 NER 全流程"一课的动手数据。
适用边界:适合 NER/RE 方法原型、教学与跨域基线研究;不适合当作真实病历分布的统计样本,也不能替代院内数据的隐私合规评估(见 §2.2、§7.4)。
§2 医学背景
§2.1 实体类型与 ICD-11/SNOMED CT 参考映射
MACCROBAT 的 ACROBAT 类型体系不强制映射 SNOMED CT、MeSH 或 ICD(官方论文明确标注不带概念编码)。下表为编辑部对高频类型的参考性整理,SNOMED CT 仅给到顶层概念,落地前需自行细化并验证:
| ACROBAT 标签 | ICD-11 参考 | SNOMED CT 参考码 | SNOMED 术语 |
|---|---|---|---|
| Disease_disorder | ICD-11 MMS 第 1–22 章(按疾病轴分布) | 64572001 | disease |
| Sign_symptom | ICD-11 第 21 章(症状、体征)MA00–MH2Y | 404684003 | clinical finding |
| Diagnostic_procedure | ICD-11 操作相关扩展编码(不限定章节) | 71388002 | procedure |
| Medication | 不适用(药物命名属 ATC/WHO DDD 体系) | 373873005 | pharmaceutical / biologic product |
| Lab_value | ICD-11 第 21 章及检验扩展码(不限定) | 无一一对应(检验项目属 LOINC 体系) | — |
| Severity | 不适用(严重度属分级量表体系) | 无一一对应 | — |
| Dosage | 不适用(剂量属药物剂量规范) | 无一一对应 | — |
| Age | 不适用 | 无一一对应(年龄为可观察实体,依赖上下文) | — |
其余 30+ 低频类型(Activity、Color、Area、Distance、Texture、Mass、Non-biological Location、Detailed_description 等)多为主持征与描述性概念,在 ICD-11/SNOMED CT 中无稳定一一对应;如需概念归一化,建议走 UMLS Metathesaurus 自建映射并人工抽验。
§2.1b ACROBAT 类型分层
ACROBAT 的 41 类并非平铺,官方论文将其组织为"实体/事件 + 属性修饰"的浅层体系:
- 实体与事件类:如 Disease_disorder、Sign_symptom、Medication、Lab_value、Diagnostic_procedure(事件)、Activity——承担"句子里出现了什么"的跨度定位;
- 属性与修饰类:如 Severity、Dosage、Age——为相邻实体补充"程度/剂量/年龄"等限定;
- 描述与空间类:如 Color、Shape、Area、Distance、Texture、Mass、Non-biological Location——覆盖病例叙事中的形态学与场景描述。
这种分层对建模有直接含义:属性类通常围绕实体类出现,可作关系先验或后处理过滤;描述类多为长尾稀疏样本(§4.2),评估时建议单独报告。
§2.2 病例报告体裁与疾病谱背景
临床病例报告(Case Report)位于证据金字塔的底层,却承担着记录罕见病、非典型表现与药物不良反应的"哨点"职能——很多疾病的第一手描述都以病例报告形式发表。MACCROBAT 的母体工程(UCLA 病例报告元数据工程)从 PubMed Central 整理约 3,100 篇 curated CCR,横跨 15 个疾病组,其中罕见病报告超过 750 篇;MACCROBAT2018 即其中 200 篇的人工标注子集(arXiv:2106.12608)。
流行病学说明:本语料不是发病率驱动的队列数据,不存在传统意义的患病率口径;其疾病谱分布反映"期刊愿意发表什么病例"(罕见、疑难、典型教学案例),因此对常见病、多发病的覆盖系统性偏低。用它训练的模型在常见病门诊文本上的表现需要另行验证(见 §7.3)。
期刊生态侧写:病例报告的发表依赖专门的报告期刊与 Case Reports 栏目,这类期刊的编辑规范塑造了文本风格——结构化小节、时态统一、缩写随文定义。这是一种"风格指纹",做跨语料迁移时应结合 §7.3 解读失效原因。
证据等级定位:病例报告属证据金字塔底层(个案报告层级),不能支撑疗效推断;其价值在于罕见发现的"存在性证明"。映射到 NLP 研究:语料对罕见实体与表述的覆盖密度高于常见病队列文本,而普通门诊常见表达可能从未出现。
§2.3 临床任务定义
| 任务 | 输入 | 输出 | 评估口径 |
|---|---|---|---|
| 命名实体识别(NER) | 一句一行病例文本 | 字符跨度 + ACROBAT 类型(41 类,BIO 展开为 82 标签 + O) | span 级或 token 级 micro-F1 |
| 关系抽取(RE) | 已知实体跨度 | 实体对的关系类型(.ann 中 R 行) | 关系级精确率/召回率/F1 |
| 实体归一化(衍生任务) | 实体跨度 | SNOMED/ICD/UMLS 概念 ID(需自建映射) | 归一化准确率@1 |
在临床工作流中,这些任务对应:从病历叙事中自动提取"问题-用药-检查"结构(生成结构化摘要)、监测药物不良反应信号、为罕见病患者建立表型档案。MACCROBAT 提供的是叙事→结构的核心监督信号。
任务难度锚点:同口径下(§8.1),最易类型 Non-biological Location 的 F1 达 80.77,最难类型 Detailed_description 仅 45.81——细粒度类型间的难度差近 35 个百分点,任何"平均分"都掩盖了这一结构。
§2.4 患者人群
| 维度 | 情况 |
|---|---|
| 来源 | PubMed Central 收录期刊公开发表的病例报告 |
| 整理/标注时间 | 2018–2019 年(UCLA 元数据工程期内) |
| 年龄 | 单病例异质(成人、儿科病例混合,语料未汇总统计) |
| 性别 | 单病例异质(未汇总统计) |
| 种族/地域 | 未汇总统计;期刊来源覆盖全球,英语写作 |
| 就医类型 | 住院/专科叙事为主(病例报告体裁决定) |
| 单病例性质 | 每篇文档对应 1 例患者的完整叙事 |
解读:不要把这张表当作可推广的人群画像——它是"公开病例报告这一体裁"的画像。若你的应用面向门诊常见病人群,需按 §7.3 重新评估泛化性。
§2.5 临床价值
- 罕见病表型文本化:ACROBAT 对体征、严重度、量化描述的细粒度覆盖,正是罕见病表型抽取(HPO/Orphanet 对齐)所需的中间层。
- 用药安全信号挖掘:Dosage、Medication、Lab_value 的共现标注,可用于药物-剂量-化验异常的关系原型研究。
- 医学教学与词典构建:标注跨度可直接转化为按类型分组的临床术语词典,服务检索、质控与编码辅助工具。
- 标注团队培训沙盘:低成本、类型多、坑点典型,适合作为标注规范迭代与质控流程的演练场。
§2.6 金标准性质
| 属性 | 内容 |
|---|---|
| 划分 | 无官方划分;社区惯例 80/10/10 文档级随机划分(2,894/380/351 句,24 类子集口径) |
| 标注方式 | 纯人工标注(brat 工具),standoff 格式 |
| 标注者 | 1 名或多名,具生物医学/临床语言经验(论文致谢 4 名标注协助者) |
| 一致性 | 官方未发布 IAA 等标注质量指标;2020 版声明改进了标注一致性 |
| 性质 | 研究型开放"金标准"(CC BY 4.0),非监管级标注 |
| 可复现性 | 数据完全开放可复算;划分未公布,需按 §5 自建 |
与临床数据银行(如 MIMIC 系列需凭证化申请)相比,MACCROBAT 牺牲了规模与真实病历生态,换来了零门槛获取与细粒度类型;二者在研究流程中通常互补而非互替。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 复现论文基准 / 与公开 F1 数字对比 | MACCROBAT2018(V1) | 约 1.02 MB | C-ELMo/C-Flair 基准与多数第三方工作基于 2018 版 |
| 追求更好的标注一致性 / 最多实体数 | MACCROBAT2020(V2) | 约 1.02 MB | 官方改进一致性,实体 25,144 个(第三方按类型统计口径) |
| 罕见病方向探索 | MACCROBAT-2020RD(第三方子集) | 子集级 | 18 篇、2,444 个实体,MeSH+Orphanet 过滤(需从原版自行重建) |
| 快速原型(不想写 brat 解析) | HF 镜像 ktgiahieu/maccrobat2018_2020 | 视缓存而定 | 预转 BIO 标签;注意镜像许可证口径与官方 CC BY 4.0 的差异(见坑点 7) |
| 需要 RE 关系数据 | 原版 .ann(任一版本) | 约 1.02 MB | R 行关系标注是预转 BIO 镜像不包含的部分 |
| 教学演示 | HF 镜像或 2018 版 | 1.02 MB | 摩擦最小,搭配 §6 代码即可演示 |
§3.1 模态详情
- 体裁:英文临床病例报告叙事(经编辑仅保留病例细节,引言/讨论/图表/补充材料已删除)。
- 组织方式:每篇报告一个
.txt文件,一句一行;文件名即 PubMed ID(如15939911.txt)。 - 规模感:平均约 18 句/篇(3,652 句 ÷ 200 篇),单文档体量小,适合全文级建模。
- 文本特征:以过去时临床叙事为主,含大量缩写、计量单位、数值区间与拉丁词源术语。
- 词元量提示:官方未公布 token 总量;网络流传的"125,000 tokens"等数字来自失真次级来源(坑点 8),引用规模请以 200 篇/3,652 句/59,164 条标注为准。
§3.2 版本与子集样本数
| 版本/子集 | 规模口径 | 数量 | 来源 |
|---|---|---|---|
| MACCROBAT2018(V1) | 200 篇 / 3,652 句 / 59,164 条标注(实体+关系合计) | 200 文档 | figshare |
| MACCROBAT2020(V2) | 实体 25,144 个(按类型统计) | 200 文档 | figshare V2 文件 |
| MACCROBAT-2020RD | 18 篇 / 2,444 实体(MeSH+Orphanet 过滤) | 18 文档 | Bayer 硕士论文 |
| 母集(未标注) | 约 3,100 篇 curated CCR / 15 疾病组 | 约 3,100 文档 | arXiv:2106.12608 |
| HF 镜像 ktgiahieu | 41 类实体/事件 → 82 BIO 标签 + O | 200 文档 | HF Datasets |
口径提示:59,164 与 25,144 来自不同版本与不同统计口径(坑点 7),并列展示仅供选型,不可相加或互换。
§3.3 数据格式
| 格式 | 说明 | 适用 |
|---|---|---|
.txt |
一句一行纯文本,UTF-8 | 原始输入 |
.ann |
brat standoff:T 行(实体/事件:id、类型、起止偏移、覆盖文本)+ R 行(关系:id、类型、Arg1/Arg2) | 标注金标准 |
| HF parquet/脚本 | 第三方预转 BIO 词级标签 | 快速上手(需核对标签口径) |
与常见 NER 格式的对照:
| 维度 | brat standoff(本语料) | CoNLL/IOB 文件 | inline XML |
|---|---|---|---|
| 标注与文本关系 | 分离文件 + 字符偏移 | 同文件逐行标签 | 标签嵌在文本内 |
| 官方保真度 | 原生格式,零信息损失 | 需自转换(§6.3) | 需重建偏移 |
| 偏移可校验性 | 高(covered_text 可切片验证) | 中 | 中 |
| 典型用途 | 标注审计、RE | 直接训练 | 演示 |
§3.4 存储大小
- 每版本 ZIP 约 1.02 MB;解压后为 200 组
.txt/.ann文件对(约 400 个小文件)。 - 实验工作区(含 BIO 中间产物与模型检查点)预算 <1 GB 即可,属于"笔记本级"数据集。
- 参照系:1.02 MB 约等于一张手机照片的体量,网络、存储与备份成本可忽略。
- 代价是没有官方 ETL——省下的下载时间会花在解析上(§6.3 已备好代码)。
§3.5 标注方式
人工标注,brat 工具产出 standoff 标注。官方流程为:编辑 PMC 全文 → 一句一行 → 逐句人工标注 41 类实体/事件跨度 → 补充实体对关系。无预标注/自动预打标成分公开说明;标注质量依赖标注者经验(见 §3.6)。
完整工作流:①从 PMC 下载候选病例全文;②编辑删减为病例细节、一句一行;③brat 中逐句人工标注实体/事件跨度;④补充实体对关系(R 行);⑤打包发布 figshare。对你而言,①②已由官方完成,你从第③步的产物开始消费。
§3.6 标注者资质与一致性
| 项目 | 情况 | 对你的影响 |
|---|---|---|
| 标注者构成 | 1 名或多名;论文致谢 Sanjana Murali、Jessica Lee、Linda Do、Jonathan Quach 协助标注 | 部分文档可能为单人标注 |
| 资质 | 具生物医学/临床语言背景经验 | 低频类型理解可能存在漂移 |
| IAA | 官方未发布 | 无法量化标签噪声上界,评测解读需保守 |
| 版本改进 | 2020 版声明改进标注一致性 | 跨版本混用会引入系统性噪声(坑点 1) |
| 标注工具 | brat(开源,standoff 格式) | 可本地复刻标注与修订环境 |
无 IAA 条件下的自建一致性估计:1. 抽 20–30 篇由第二名熟悉 ACROBAT 的标注者独立复读;2. 分别计算跨度级(strict)与类型级(relaxed)一致率;3. 冲突集中出现的类型(经验上多见于 Severity、Detailed_description 等修饰类)列入类型对齐备忘录(§7.2)。
§3.7 采集周期
母体工程与标注工作集中于 2018–2019 年;2019-10-17 首发 V1,2019-10-22 论文预印本上线,2020-01-31 发布 V2。截至 2026-09,figshare 上仅存在这两个版本,官方未再更新。
§3.8 地域覆盖
文本源自 PubMed Central 收录的全球期刊,无地域配额;语言 100% 英文。不代表任何单一国家或医疗体系的病历分布。此外,PMC 的开放可得性筛选了期刊范围——本语料隐含"开放获取友好"的出版偏倚。
§3.9 设备规格
纯文本模态,不涉及采集设备与影像参数;如需复现病例的检查数据,应回溯原 PMC 文献。同理,本数据集不需要任何专用软件许可之外的环境——一个文本编辑器加 Python 即可完整消费。
§3.10 深度溯源链
| 环节 | 内容 | 可验证痕迹 |
|---|---|---|
| 1. 文本来源 | PubMed Central 全文(curated CCR,母体工程约 3,100 篇) | 文档名 = PubMed ID |
| 2. 编辑 | 删除引言/讨论/图表/补充材料,仅留病例细节,一句一行 | .txt 行结构 |
| 3. 标注 | brat 人工标注 ACROBAT 41 类 + 关系 | .ann 的 T/R 行 |
| 4. 发布 | figshare 托管,collection DOI 10.6084/m9.figshare.c.4652765 | 版本 DOI 与时间戳 |
| 5. 资助 | NIH U54GM114833、R35HL135772 | 论文致谢 |
| 6. 子集延伸 | 第三方按 MeSH+Orphanet 构建罕见病子集 | Bayer 论文公开方法 |
母体工程与语料的关系:约 3,100 篇 curated CCR 提供了统一的文档结构与疾病组元数据,MACCROBAT 只标注了其中 200 篇。若你的任务需要未标注的扩展语料(如做域内再预训练),母集是自然的延伸方向(见 §8.4)。
§4 数据结构
§4.0 目录树
MACCROBAT2020.zip(约 1.02 MB)
├── 15939911.txt # 病例报告正文:一句一行,文档 ID = PubMed ID
├── 15939911.ann # brat standoff 标注:T 行(实体/事件)+ R 行(关系)
├── ...
└── (共 200 组 .txt/.ann 文件对;V1 版 MACCROBAT2018.zip 结构相同)
brat standoff 格式示意(字段结构说明,非数据文件内容摘录):
T1 Sign_symptom 12 26 palpitations
T2 Disease_disorder 31 71 Ebstein's anomaly of the tricuspid valve
R1 RelType Arg1:T2 Arg2:T1 # R 行:id、关系类型、实参引用(RelType 为结构示意名)
- T 行四元组:
标注ID + 类型 + 起止偏移 + 覆盖文本;偏移基于编辑后.txt的字符位置。 - R 行三元组:
标注ID + 关系类型 + Arg1/Arg2;只引用 T 行 ID,无独立偏移。 - 文件对一一对应:每个
.ann只引用同主干名.txt的偏移。 - brat 行家族速查:除 T(实体/事件)与 R(关系)外,brat 生态还有 A(属性)、N(归一化)、E(事件组合)、#(注释)等行类型;MACCROBAT 官方包以 T/R 为主,解析器遇到未知行前缀时应跳过并记录(§6.3 代码已实现)。
- 体量直觉:单个 .ann 通常为数十行量级,全量 200 组解析在普通笔记本上秒级完成。
§4.1 DAIMS 字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| document_id | sc:Text | 文件名主干 = PubMed ID | 15939911 | 文档分组、防泄漏 | 无 | 无(每篇必有) | 200 个唯一值 |
| sentence_index | sc:Integer | .txt 行号即句号 | 1 | 句级对齐 | 无 | 无 | 1 至每篇行数 |
| text | sc:Text | 一行一句的病例正文 | 见 .txt 文件 | NER 输入 | 编辑文本与 PMC 原文偏移不对应(坑点 6) | 无 | — |
| ann_id | sc:Text | brat 标注 ID(T/R 前缀) | T1、R1 | 标注引用 | 无 | 无 | 每文件内唯一 |
| record_kind | sc:Text | 行类型:实体/事件或关系 | T | 区分 NER/RE 数据源 | 无 | 无 | T / R |
| label_type | sc:Text | ACROBAT 类型或关系类型 | Sign_symptom | 分类目标 | 单标注者主观性(无 IAA) | 无 | 41 类实体/事件 + 若干关系类型 |
| start_offset | sc:Integer | 字符起始偏移(T 行) | 12 | span 抽取 | 编辑文本偏移体系(坑点 6) | 无 | 0 至文件长度 |
| end_offset | sc:Integer | 字符结束偏移(T 行) | 26 | span 抽取 | 同上 | 无 | start+1 至文件长度 |
| covered_text | sc:Text | 覆盖字符串(T 行) | palpitations | 校验、词典构建 | 与 .txt 逐字符一致性需自检 | 无 | — |
| arg1/arg2 | sc:Text | 关系实参(R 行) | Arg1:T2 | RE 训练 | 实参缺失的 R 行需过滤 | 实参缺失 = 无效关系行 | T-id 引用 |
| relation_type | sc:Text | 关系类型(R 行独立字段) | 见 .ann | RE 分类目标 | 与实体类型同理,无 IAA 佐证 | 无 | 官方关系类型集 |
| file_pair | sc:Text | .txt/.ann 主干名对应关系 | 15939911 | 完整性校验 | 无 | 缺 .ann 即未标注文档 | 200 组 |
§4.2 标签分布
BIO 标签空间:41 类实体/事件展开为 82 个 B/I 标签,加 1 个 O 标签(HF 镜像口径)。官方论文与第三方来源给出的锚点计数:
| 类型/口径 | 锚点数字 | 说明 |
|---|---|---|
| Diagnostic_procedure | 平均 >45 次/篇(200 篇合计 >9,000,按论文口径换算) | 最高频事件类型 |
| Sign_symptom | >6,700 条 | 次高频 |
| Lab_value | >3,500 条 | 高频 |
| 全部实体(2020 版) | 25,144 个 | 第三方按类型统计合计 |
| 实体 + 关系(2018 版) | 59,164 条 | 论文总数口径(勿当实体数,坑点 7) |
分布形态为长尾:Diagnostic_procedure、Sign_symptom、Lab_value、Disease_disorder、Medication 等少数类型占绝对多数;Distance、Texture、Mass 等类型样本稀少。完整 41 类逐类计数见官方论文统计表与 figshare 数据页。
已验证的高频/代表性类型一览(来源:HF 镜像标签口径与 Zhou et al., 2021 分类型 F1):
| ACROBAT 类型 | 佐证 | 分类型 F1(GloVe+C-ELMo 口径) |
|---|---|---|
| Non-biological Location | F1 表 | 80.77 |
| Dosage | 标签口径 + F1 表 | 77.42 |
| Medication | 标签口径 + F1 表 | 76.34 |
| Diagnostic_procedure | 标签口径 + F1 表 | 74.93 |
| Lab_value | 标签口径 + F1 表 | 74.48 |
| Disease_disorder | 标签口径 + F1 表 | 50.84 |
| Detailed_description | F1 表 | 45.81 |
| Sign_symptom | 标签口径 + >6,700 条 | — |
| Severity / Activity / Age | 标签口径 | — |
表中"—"表示该类型的分类型 F1 未在公开可比口径中逐项公布;其余 30+ 类型以官方论文统计表为准。
§4.3 关键统计
- 文档 200 篇;句子 3,652 句(平均约 18 句/篇)。
- 标注总数 59,164(2018 版,实体/事件 + 关系合计);实体 25,144(2020 版)。
- 类型空间:41 类实体/事件 + 关系类型;BIO 展开 82 + O。
- 单版本 ZIP 约 1.02 MB;figshare 指标(截至 2026-09 检索快照):14,507 次浏览、4,421 次下载。
- 换算口径(供直觉,非官方口径):2020 版平均约 126 实体/篇(25,144 ÷ 200);2018 版平均约 16 条标注/句(59,164 ÷ 3,652)。
- 关系类型全集未在公开资料中逐项列出(论文含关系计数表):解析时以 .ann 实际出现的关系类型为准,勿假设固定清单。
§4.4 数据层级
语料(200 篇)
└── 文档(病例报告,PubMed ID 命名)
└── 行(= 句,一句一行)
└── 标注 span(T 行:类型 + 偏移)
└── 关系(R 行:Arg1/Arg2 引用 span)
层级含义:文档是天然的分组键(防泄漏,§5.3);句是常见建模单元;span 是评测的最小单位;关系只在 span 之上定义。任何聚合统计都应声明聚合层级。
§4.5 缺失值处理
| 情形 | 表现 | 建议处理 |
|---|---|---|
| 文档无 R 行 | .ann 仅含 T 行 | 纯 NER 用途正常;RE 用途计为全负例 |
| 句内无标注 | 纯背景/衔接句 | 保留,BIO 全 O 是有效监督信号 |
| .ann 文件缺失 | 只有 .txt | 视为未标注文档,加载时跳过并记录日志 |
| 稀有类型样本过少 | 个别类型仅个位数实例 | 分组为 OTHER 或加权采样,避免虚高 F1 |
| R 行实参悬空 | Arg 指向不存在的 T-id | 剔除该 R 行并记录 |
| 稀有类型孤例 | 某类型在某折完全未出现 | 折内合并统计,勿按类型硬排名 |
§5 划分与使用建议
§5.1 官方划分
无官方 train/dev/test 划分。 figshare 包内只有 200 组文件对,不携带划分清单。这意味着:任何与公开 F1 数字的对比,都必须先对齐划分口径(见 §5.2 与坑点 2)。
自建划分的三条底线:①按文档分组;②划分清单随代码存档;③论文中显式声明"自建划分"——不要让读者误以为是官方口径。
划分快速自检清单:□ 是否按 PMID 分组?□ 测试折是否来自单一版本?□ 划分清单是否随代码入库?□ 是否报告了折间标准差?□ 稀有类型是否逐折检查?
§5.2 社区惯例划分
| 研究 | 划分方式 | 口径与备注 |
|---|---|---|
| Zhou et al., 2021(C-ELMo/C-Flair) | 80/10/10 随机文档级划分 | 2,894/380/351 句;仅统计 24 种实体/事件类型子集,micro-F1 可比 |
| Bhushan et al., 2025(BMC Bioinformatics) | 自建(数据取自 Kaggle 镜像 + 自行预处理) | Accuracy 99.11% / F1 98.05%,与其他工作不可直接比较 |
| Sreenivas et al., 2025(MDPI Electronics) | 自建(经 HF 镜像) | 对数据集描述与原始出处不符,引用需谨慎(坑点 8) |
精确复现说明:Zhou et al., 2021 未公布 80/10/10 划分的 PMID 清单,外部无法逐句复现其划分,只能"同口径重采样"。因此与 65.75 的对比应表述为"同口径可比",而非"同一测试集"。
§5.3 泄漏风险(重点)
- 句级划分 = 直接泄漏:同一文档相邻句共享上下文与实体指称,按句切分会让测试句在训练集里"见过邻居"。必须按文档(PMID)分组划分。
- 病例报告套话:
was admitted、laboratory examination revealed等模板句在 200 篇间高频复现,模型可能靠套话而非实体特征得分;建议在误差分析中单列模板句占比。 - 疾病组聚集:母体工程按疾病组整理文档,罕见病组内文档语义高度相似;分组交叉验证(§5.4)可暴露这类"软泄漏"。
- 双版本重叠:2018 与 2020 版是同一批文档的两套标注。若训练用 2018、测试用 2020(或混用),会得到系统性偏移的评估——始终单版本闭环(坑点 1)。
- 词典过拟合:200 篇规模下,词典/规则法容易"记住"全部实体字符串,得出虚高结果;务必保留文档级 held-out 折。
- 标签噪声与泄漏的区分:双版本混用产生的是标签噪声而非数据泄漏,但两者都表现为"分数虚高或虚低";排查时先锁定版本指纹(坑点 1),再查划分。
§5.4 交叉验证建议
- 推荐
GroupKFold(n_splits=5),以document_id(PMID)为组键,确保文档完整落入单折。 - 报告 5 折均值 ± 标准差;固定随机种子并在随附代码中保存每折的 PMID 清单,保证可复现。
- 低频类型可改用
StratifiedGroupKFold(按文档内高频类型分层),并单独报告稀有类型的每折命中情况。 - 折间诊断:若某折稀有类型 F1 异常为 0,先检查该折是否完全缺失该类型实例,再怀疑模型。
§5.5 外部验证建议
| 目标域 | 建议做法 | 注意 |
|---|---|---|
| 2010 i2b2/n2c2 出院小结 | 将 ACROBAT 类型映射到问题/治疗/检查三类后跨域测试 | 映射有损(见下表),仅作方向性参考 |
| BC5CDR / NCBI Disease | 取 Disease_disorder 子集对齐疾病 NER | 归一化口径不同,只比 span 检测 |
| 罕见病数据库(HPO/Orphanet 对齐) | 以 Disease_disorder/Sign_symptom 输出对接表型词表 | 概念归一化需自建(§2.1) |
| 医院真实病历 | 先小规模人工抽验再部署 | 需重新校准套话与缩写分布(§7.3) |
ACROBAT → i2b2 三类参考映射(有损):Disease_disorder、Sign_symptom → Problem;Medication、Dosage、Severity、Therapeutic 类 → Treatment;Diagnostic_procedure、Lab_value → Test;其余 30+ 描述性类型无对应,映射即丢弃。该映射仅为迁移诊断用,不得当作官方口径。
§6 AI 就绪指南
§6.0 云端快速启动
# Google Colab / Kaggle Notebook:一条命令装齐依赖(PyTorch 已预装)
!pip -q install datasets transformers seqeval accelerate evaluate
本地环境等价安装:
python3 -m venv .venv && source .venv/bin/activate
pip install datasets transformers seqeval accelerate evaluate torch
装好后可直接用 HF 镜像 30 秒看一眼数据形态;正式实验建议回到官方 brat 文件走 §6.3 全流程。
§6.1 快速上手
# 目录结构预期:data/maccrobat2020/ 下是 200 组 <PMID>.txt + <PMID>.ann 文件对
# data_root 与文件名的拼接关系:data_root / f"{pmid}.txt"(.ann 同名换后缀)
# 最小可用子集:任取 10 组文件对即可跑通本节全流程
from pathlib import Path
data_root = Path("data/maccrobat2020")
txt_files = sorted(data_root.glob("*.txt"))
print(len(txt_files), "documents") # 200 documents
sample = txt_files[0]
print(sample.stem, len(sample.read_text(encoding="utf-8").splitlines()), "lines")
§6.2 数据获取
| 渠道 | 链接 | 大小 | 形态 | 许可口径 |
|---|---|---|---|---|
| figshare 官方 | MACCROBAT2018 数据页 | 1.02 MB/版 | .txt/.ann 文件对 ZIP | CC BY 4.0 |
| HF 镜像 ktgiahieu | HF Datasets | 视缓存 | 预转 BIO 标签 | 镜像口径与官方存在差异(坑点 7/8) |
| HF 镜像 singh-aditya | HF Datasets | 视缓存 | BIO 序列 | 镜像标 MIT,与官方 CC BY 4.0 冲突,仅作解析参考 |
| NLM Data Catalog | 收录页 | — | 元数据 | 确认 Rights = CC BY 4.0 |
# 方式一:figshare 官方(推荐)
# 在数据页 Download 区域选择 MACCROBAT2018.zip 或 MACCROBAT2020.zip(各约 1.02 MB)
mkdir -p data && unzip MACCROBAT2020.zip -d data/maccrobat2020
# 方式二:HF 镜像快速原型
python3 -c "
from datasets import load_dataset
ds = load_dataset('ktgiahieu/maccrobat2018_2020')
print(ds)
"
获取三步:①在 figshare 页面选择版本(2018/2020)并下载 ZIP(约 1.02 MB);②校验解压后文件对数量(应为 200 组);③记录 ZIP 哈希写入实验配置(坑点 1)。无需注册、无需申请、无 DUA。
§6.3 预处理全流程
第 1 步:解析 brat standoff。 输入为 .txt/.ann 文件对,输出实体表与关系表;NER 只消费 T 行,RE 消费 R 行(坑点 7)。
import re
from pathlib import Path
def parse_ann(path):
"""解析 brat standoff .ann:返回实体列表与关系列表。"""
entities, relations = [], []
for line in Path(path).read_text(encoding="utf-8").splitlines():
if not line.strip() or line[0] not in "TR":
continue # # 备注 / A 属性等行,NER/RE 不需要
rid, body, *rest = line.split("\t")
covered = "\t".join(rest)
if rid.startswith("T"):
m = re.match(r"(\S+)\s+([\d;,\s]+)$", body)
etype, spans = m.group(1), m.group(2)
nums = [int(x) for x in spans.replace(";", " ").split()]
entities.append({"id": rid, "type": etype,
"start": min(nums), "end": max(nums), "text": covered})
elif rid.startswith("R"):
kind = body.split()[0]
args = dict(p.split(":") for p in body.split()[1:] if ":" in p)
relations.append({"id": rid, "type": kind,
"arg1": args.get("Arg1"), "arg2": args.get("Arg2")})
return entities, relations
def validate_pair(txt_path):
"""逐条校验 T 行:covered_text 必须与 .txt 切片一致(偏移自检)。"""
text = txt_path.read_text(encoding="utf-8")
entities, relations = parse_ann(txt_path.with_suffix(".ann"))
bad = [e for e in entities if text[e["start"]:e["end"]] != e["text"]]
return bad, entities, relations
第 2 步:字符级跨度 → 词级 BIO。 一句一行天然给出句切分;对齐策略取"词内首个非 O 标签",子词级对齐交给 §6.4 的 word_ids()(坑点 3)。
def to_bio(text, entities):
"""字符级 BIO → 词级 BIO:以词内首个非 O 标签为准(最简策略)。"""
tags = ["O"] * len(text)
for ent in sorted(entities, key=lambda e: e["start"]):
tags[ent["start"]] = f"B-{ent['type']}"
for i in range(ent["start"] + 1, min(ent["end"], len(tags))):
if tags[i] == "O":
tags[i] = f"I-{ent['type']}"
words, labels, cursor = [], [], 0
for chunk in text.split():
pos = text.index(chunk, cursor) # 词在原句中的字符区间
inside = tags[pos:pos + len(chunk)]
first_non_o = next((t for t in inside if t != "O"), None)
if first_non_o is None:
labels.append("O")
else:
head = inside[0] if inside[0] != "O" else None
prefix = "B" if (head and head.startswith("B")) else "I"
labels.append(f"{prefix}-{first_non_o[2:]}")
words.append(chunk)
cursor = pos + len(chunk)
return words, labels
def load_document(txt_path):
"""一句话读取整篇:返回逐句 (words, labels) 列表。"""
text = txt_path.read_text(encoding="utf-8")
entities, _ = parse_ann(txt_path.with_suffix(".ann"))
return [to_bio(s, entities) for s in text.splitlines() if s.strip()]
第 3 步:清洗与标准化注意。 ①先跑 validate_pair,坏偏移记录后再决定修还是丢;②不要在解析前做 Unicode 归一化(NFKC 会改字符宽度,直接毁掉全部偏移);③数值、单位、大小写保持原样,交给 tokenizer 与模型;④双版本只选其一(坑点 1)。
第 4 步:构建句级 HF Dataset。 把逐句 (words, tags) 装配成可直接交给 Trainer 的数据集:
from datasets import Dataset as HFDataset
def build_sentence_dataset(data_root):
rows = {"words": [], "tags": []}
for txt_path in sorted(Path(data_root).glob("*.txt")):
bad, entities, _ = validate_pair(txt_path)
if bad: # 偏移校验失败的文档先记录再处理
print("bad offsets:", txt_path.name, len(bad))
for words, tags in load_document(txt_path):
rows["words"].append(words)
rows["tags"].append(tags)
return HFDataset.from_dict(rows)
ds = build_sentence_dataset("data/maccrobat2020")
print(len(ds), "sentences") # 应为 3,652 量级
§6.4 PyTorch DataLoader
import torch
from torch.utils.data import Dataset, DataLoader
from transformers import AutoTokenizer, DataCollatorForTokenClassification
LABEL2ID = {"O": 0}
for t in ["Activity", "Age", "Diagnostic_procedure", "Disease_disorder", "Dosage",
"Lab_value", "Medication", "Severity", "Sign_symptom"]: # 完整 41 类以官方 .ann 实际出现为准
LABEL2ID[f"B-{t}"] = len(LABEL2ID)
LABEL2ID[f"I-{t}"] = len(LABEL2ID)
ID2LABEL = {v: k for k, v in LABEL2ID.items()}
class MaccrobatNER(Dataset):
"""按文档加载:一对 .txt/.ann → 词级 BIO 序列(整篇文档一个样本)。"""
def __init__(self, data_root, tokenizer, max_len=256):
self.files = sorted(Path(data_root).glob("*.txt"))
self.tokenizer, self.max_len = tokenizer, max_len
def __len__(self):
return len(self.files)
def __getitem__(self, idx):
txt_path = self.files[idx]
entities, _ = parse_ann(txt_path.with_suffix(".ann"))
enc = self.tokenizer([w for s in txt_path.read_text(encoding="utf-8").splitlines()
if s.strip() for w in s.split()],
is_split_into_words=True, truncation=True, max_length=self.max_len)
# 简化处理:文档级展平;句级实验请逐句编码后再拼接
words, tags = [], []
for s in txt_path.read_text(encoding="utf-8").splitlines():
if s.strip():
w, t = to_bio(s, [e for e in entities])
words += w; tags += t
labels = [-100 if wid is None else LABEL2ID[tags[wid]] for wid in enc.word_ids()]
return {"input_ids": enc["input_ids"],
"attention_mask": enc["attention_mask"], "labels": labels}
tokenizer = AutoTokenizer.from_pretrained("dmis-lab/biobert-base-cased-v1.2")
collator = DataCollatorForTokenClassification(tokenizer)
loader = DataLoader(MaccrobatNER("data/maccrobat2020", tokenizer),
batch_size=8, shuffle=True, collate_fn=collator)
batch = next(iter(loader))
print(batch["input_ids"].shape, batch["labels"].shape)
§6.5 坑点清单(8 个)
⚠️ 坑点 1:2018/2020 双版本混用,评估系统性漂移(分类:工程陷阱)
问题:figshare 同一数据页提供 MACCROBAT2018 与 MACCROBAT2020 两套标注,2020 版改进了标注一致性(实体 25,144 个)。跨版本训练/测试会让标注标准不一致。
症状:换版本后 F1 波动数个百分点;同一 span 在两版类型不同;与已发表论文对比时"怎么都对不上"。
解决:
- 简单方法:全项目锁定一个版本,在配置文件与数据卡中写死版本号。
- 进阶方法:写版本指纹脚本(统计文件对数量 + 标注行总数),与预期值不符即中止训练。
- SOTA 方法:用 DVC/MLflow 记录数据哈希与版本声明,任何实验报告强制携带数据指纹。
参考:figshare 版本页;Bayer 论文(2020 版实体口径)。
⚠️ 坑点 2:无官方划分,公开 F1 数字不可直接对比(分类:评估误用)
问题:官方不提供划分。C-ELMo/C-Flair 用 80/10/10 文档级划分 + 24 类子集;BMC 2025、MDPI 2025 各自建口径,数字互相不可比。
症状:复现 65.75 时得到 60 或 70,反复检查代码却找不到 bug。
解决:
- 简单方法:先对齐 Zhou et al., 2021 口径(文档级 80/10/10、24 类子集、micro-F1)再比数字。
- 进阶方法:自定义划分时,同表报告"官方口径复现行"作为桥接基线。
- SOTA 方法:固定划分清单(PMID 列表)随代码发布,声明随机种子与分层方式。
参考:arXiv:2106.12608;§5.2 口径表。
⚠️ 坑点 3:brat 偏移 + 一句一行 + 子词切分对不齐(分类:预处理陷阱)
问题:.ann 偏移是字符级(基于编辑后 .txt);Transformer tokenizer 的 WordPiece/BPE 把一个词拆成多个子词,标签必须对齐到正确的子词。
症状:labels 与 input_ids 长度不一致;loss 正常但 F1 恒为 0;偶发 IndexError。
解决:
- 简单方法:用
tokenizer(words, is_split_into_words=True)+word_ids(),仅首个子词带标签,其余置 -100。- 进阶方法:处理 brat 连续多 span(分号偏移)与特殊字符,解析后立即跑
validate_pair校验切片一致。- SOTA 方法:改用 span 级建模(span 分类头),完全绕开 token 对齐问题。
参考:Hugging Face Token Classification 官方教程;brat standoff 规范。
⚠️ 坑点 4:41 类长尾分布,稀有类型 F1 归零(分类:偏倚陷阱)
问题:Diagnostic_procedure 平均 >45 次/篇,而 Distance、Texture、Mass 等类型仅个位数实例,类别极度不均衡。
症状:micro-F1 达 60+,但稀有类型 F1 接近 0;混淆矩阵几乎全部塌缩到高频类。
解决:
- 简单方法:稀有类型并入 OTHER,或只按 24 类主口径评估。
- 进阶方法:损失加权(有效样本数加权)+ 文档级过采样稀有类密集文档。
- SOTA 方法:同类型 span 置换增广 + 同时报告 macro-F1 与稀有类召回,量化均衡性。
参考:原论文类型计数表;本文 §4.2。
⚠️ 坑点 5:从 i2b2 三类体系迁移,映射有损(分类:标签理解)
问题:团队若熟悉 2010 i2b2/n2c2 的 Problem/Treatment/Test 三类,把 41 类 ACROBAT 硬映射过去会丢弃 30+ 描述性类型。
症状:迁移实验 F1 莫名偏低;"消失"的实体全是 Severity、Dosage、Detailed_description 之类。
解决:
- 简单方法:只映射三大类核心类型(见 §5.5 表),其余丢弃并在报告注明丢弃比例。
- 进阶方法:保持 41 类建模,i2b2 数据仅作零样本跨域评估目标。
- SOTA 方法:经 UMLS 语义组做中间桥接,减少类型塌缩。
参考:本文 §5.5;i2b2 2010 任务说明。
⚠️ 坑点 6:编辑后文本偏移与 PMC 原文不对应(分类:工程陷阱)
问题:.txt 是删减编辑版(去引言/讨论/图表),字符偏移只在本数据集内有效;拿 PubMed ID 拉回原文直接套偏移必然错位。
症状:与 PMC 原文对齐时covered_text与切片不一致;关联原文图表的实验大面积失败。
解决:
- 简单方法:永远以包内 .txt 为偏移基准,原文需求另行处理。
- 进阶方法:用模糊对齐(最长公共子序列)为每篇构建 .txt ↔ 原文的字符映射表。
- SOTA 方法:span 文本 + k-gram 上下文指纹做稳健对齐,冲突时人工仲裁。
参考:figshare 数据说明;本文 §4.1。
⚠️ 坑点 7:59,164 不是实体数,.ann 内 T/R 行要分流(分类:标签理解)
问题:59,164 是 2018 版实体/事件 + 关系的总标注数;实体 25,144 是 2020 版口径。NER 只需要 T 行,R 行是关系行。
症状:统计出的"实体数"比文献多近一倍;把 R 行当实体解析时字段错乱报错。
解决:
- 简单方法:解析时按行首字符 T/R 分流,NER 只留 T 行。
- 进阶方法:校验每条 R 行的 Arg1/Arg2 都指向有效 T 行,剔除悬空关系。
- SOTA 方法:构建统一标注仓库(实体表 + 关系表 + 版本列),NER/RE 多任务共用。
参考:medRxiv 论文计数表;本文 §4.1。
⚠️ 坑点 8:次级来源与镜像失真,数字/许可被污染(分类:偏倚陷阱)
问题:MDPI Electronics 2025 论文把本语料描述为"多医院科室笔记、IAA>0.85、125,000 tokens、80 余类",与原始出处明显不符;HF singh-aditya 镜像标注 MIT 许可,与官方 CC BY 4.0 冲突。
症状:综述里各论文数字互相矛盾;错误引用镜像许可造成合规瑕疵。
解决:
- 简单方法:所有规模/许可数字回溯 figshare 与 medRxiv 原始出处。
- 进阶方法:用 NLM Data Catalog 收录页二次核对许可(Rights = CC BY 4.0)。
- SOTA 方法:建立来源分级引用规范(官方 > 收录目录 > 同行评审 > 预印本 > 镜像/博客)。
参考:Sreenivas et al., 2025;HF 镜像;NLM Data Catalog。
§6.6 数据增强
| 类别 | 做法 | 说明 |
|---|---|---|
| ✅ 安全 | 同类型 span 置换(用同类型实体互换上下文) | 保持类型一致性,偏移重算后必须复跑校验 |
| ✅ 安全 | 句级 dropout(随机删背景句) | 降低对套话的依赖(§5.3 风险 2) |
| ✅ 安全 | 基于已发布代码的子词遮蔽增广 | 配合 PubMedBERT 等域内权重效果更好 |
| ✅ 安全 | 按类型词典替换非实体上下文词 | 实体 span 保持不动,偏移重算后复跑校验 |
| ❌ 危险 | 随机删除实体 span 后直接当负例 | 会制造"实体被标 O"的标签噪声 |
| ❌ 危险 | 用 PMC 原文拼接增广 | 破坏偏移体系(坑点 6),标签全错位 |
| ❌ 危险 | 回译/改写不改标注 | 实体字符串一变,span 标注即失效 |
§6.7 模型推荐
| 模型 | 适用场景 | 同口径参考性能 | 备注 |
|---|---|---|---|
| BioBERT(dmis-lab/biobert-base-cased-v1.2) | 首选微调基线 | 64.38 micro-F1(Zhou et al., 2021 评测口径) | 权重 HF 可取 |
| GloVe + C-ELMo + BiLSTM-CRF | 论文最强传统方案 | 65.75(同口径) | 需自行加载域内向量 |
| PubMedBERT(microsoft/BiomedNLP-PubMedBERT) | 现代替代基线 | 未公布同口径数字(需自测) | 全 PubMed 文本预训练 |
| 通用 LLM 少样本 | 快速抽取原型 | 未公布同口径数字(需自测) | 用 span 级 prompt,注意幻觉率 |
| RoBERTa-base(通用域) | 通用预训练对照 | 未公布同口径数字(需自测) | 用于度量域内预训练的净增益 |
§6.8 硬件需求
| 配置 | 最低 | 推荐 | 说明 |
|---|---|---|---|
| GPU 显存 | 8 GB(推理) | 16 GB(微调) | batch 8–16、max_len 256 即可覆盖绝大多数文档 |
| 训练时长 | 单卡数小时级完成全量微调 | — | 语料仅 3,652 句,瓶颈不在算力 |
| 磁盘 | <1 GB | <1 GB | 含数据、BIO 中间产物与检查点 |
§6.9 评估指标
from seqeval.metrics import f1_score, classification_report
# y_true / y_pred:句级 BIO 标签序列列表(与 §6.4 的输出对齐)
y_true = [["B-Disease_disorder", "O", "B-Sign_symptom", "I-Sign_symptom"]]
y_pred = [["B-Disease_disorder", "O", "B-Sign_symptom", "O"]]
print(round(f1_score(y_true, y_pred), 2)) # 0.67(示例)
print(classification_report(y_true, y_pred, digits=2))
# 与论文口径对齐:仅统计 24 类主口径时,先过滤标签空间再计算,
# 并固定文档级划分(§5.2),否则数字不可比(坑点 2)。
口径提醒:seqeval 默认按实体(span)级统计;若需 token 级口径请自行展平标签,并在结果中显式声明,两种口径数值差异可观。
§6.10 MLOps 笔记
- 数据指纹:把 ZIP 的哈希 + 版本名写入实验配置,任何训练任务强制携带(坑点 1)。
- 划分清单入库:每折的 PMID 清单随模型 tag 一起存档,评测才可审计。
- 监控稀有类召回:上线后按类型监控召回漂移,长尾类型单独告警。
- 合规留痕:CC BY 4.0 要求署名——在模型卡与产品文档中保留数据来源与许可链接。
- 评测口径卡:把"版本 + 划分清单哈希 + 标签空间(24 类子集/41 类全口径)"制成口径卡,随结果一起发布。
- 镜像使用政策:HF 镜像仅用于原型验证,正式产物一律回溯官方 brat 文件(坑点 8)。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 选择偏倚 | 病例报告体裁天然偏好罕见、疑难、有教学价值的病例,常见病覆盖系统性不足 | 高 | 跨域验证(§7.3),报告疾病组分布 |
| 标注偏倚 | 标注者 1 名或多名、无 IAA 公布,低频类型的理解可能漂移 | 高 | 人工抽验 + 稀有类分组(坑点 4) |
| 体裁偏倚 | 一句一行、删去讨论章节,与真实病历的段落结构、缩写密度差异大 | 中 | 领域适配/再预训练后再落地 |
| 语言偏倚 | 100% 英文学术写作 | 中 | 多语任务需另选语料或翻译增广 |
| 规模局限 | 200 篇 / 3,652 句,对大模型时代偏小 | 中 | span 置换增广 + 中间任务预训练 |
| 时间偏移 | 语料整理与标注于 2018–2019 年,术语与指南持续演进 | 低-中 | 术语归一化 + 定期外部复测 |
| 母集采样偏倚 | 200 篇从 15 疾病组母集中抽选,抽样规则未公布,组间代表性未知 | 中 | 使用母集元数据时自行统计组分布 |
| 出版偏倚 | PMC 开放获取属性筛选了期刊范围 | 低-中 | 引用时注明体裁与来源限制 |
§7.2 标注质量
- 一致性未量化:官方未发布 IAA 或任何标注质量指标,这是使用本语料最大的质量盲区;对"金标准"三个字要保持克制——它更接近"研究级参考标注"。
- 版本改进声明:2020 版(MACCROBAT2020)声明改进了标注一致性与格式;第三方(Bayer)成功按类型统计出 25,144 个实体,间接说明 2020 版可解析性良好。
- 建议动作:投入生产前,随机抽 3–5 篇按 41 类人工复读,统计与你团队口径的类型冲突率;冲突率 >5% 时先建类型对齐备忘录再训练。
- 最小抽验协议:①随机抽 3–5 篇;②只盯三类高风险判定——Severity 等级、Dosage 边界、Detailed_description 起止;③记录分歧类型与频率;④分歧率超阈值即暂停训练,先与团队对齐类型定义。
- 记录口径:抽验结果(分歧类型、频率、处理决定)写进项目数据卡,供后续标注修订引用。
§7.3 泛化性
| 目标场景 | 失效风险 | 证据/依据 |
|---|---|---|
| 真实医院出院小结 | 高:体裁、格式、套话分布不同 | 与 2010 i2b2 出院小结体裁差异明显;§5.3 风险 2 |
| 生物医学文献 NER | 中:类型重叠但语境不同 | 与 BC5CDR/NCBI Disease 的体裁分野(§1.3) |
| 罕见病病例抽取 | 中-低:语料罕见病浓度高 | Bayer RD 子集(18 篇/2,444 实体)构建成功 |
| 多语言临床文本 | 高:无多语数据 | 语言 100% 英文(§3.8) |
| LLM 抽取/微调 | 待复测:已有微调+RAG 尝试但描述失真 | Sreenivas et al., 2025(坑点 8),结论不可直接采信 |
| 低资源语言临床文本 | 高:无任何多语数据支撑 | 语言 100% 英文(§3.8) |
| COVID-19 期叙事 | 中:新缩写与新实体暴增,2019 年前的语料未覆盖 | 语料时间止于 2019–2020(§3.7) |
§7.4 伦理
语料全部来自已公开发表的病例报告,无新增患者暴露;不包含生理信号或基因组数据。使用时注意两点:①CC BY 4.0 要求署名,衍生产品应保留来源与许可链接;②不应尝试利用罕见病细节逆向识别报告中的患者身份,下游系统应有相应使用政策。
落地检查点:□ 模型卡/产品页是否已署名并链接许可?□ 是否声明"本模型训练数据含公开病例报告"?□ 是否设置了防逆向识别的使用政策?□ 是否禁止直接临床决策用途?
§7.5 公平性
语料未汇总人口统计学字段(年龄/性别/种族均散落在叙事中且未标注结构化)。已知结构性问题:英语偏倚、学术医疗中心视角、儿科与成人混合无分层。在下游评测中建议按疾病组与实体密度分桶报告性能,避免"平均分"掩盖子群体差异。
可操作的分桶:①按文档实体密度(高/中/低);②按疾病组(若使用母集元数据);③按句长分位。每桶单独报告 micro-F1,防止长句或实体密集句被平均分掩盖。
§7.6 数据漂移
2018–2019 年整理的语料相对当下临床语言存在漂移:新药名、新检查缩写(尤其 COVID-19 之后的词汇变迁)与指南更替。建议:①把 ACROBAT 类型当作相对稳定的"语义骨架",词表部分允许演进;②每 12–24 个月用新病例文本做一次零样本复测,监控 OOV 实体率。
监控指标建议:①OOV 实体率(测试时未登录实体占比);②新缩写命中失败率;③类型混淆矩阵的季度漂移。任一指标恶化即触发再标注/再训练评估。
§7.7 DAIMS 24 项质量清单
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | .txt/.ann 文件对即"一行一记录",平铺无嵌套 |
| 2 | 唯一标识 | ✅ | PubMed ID 主干全局唯一 |
| 3 | 特殊字符 | ⚠️ | 含 Unicode 变体字符,tokenization 前需检查且勿归一化(坑点 3/6) |
| 4 | 重复行 | ⚠️ | 跨文档套话重复,官方无去重说明 |
| 5 | 缺失编码 | ⚠️ | 文本模态无缺失值编码体系,需自定义约定 |
| 6 | 标签标识 | ✅ | 41 类显式命名,见论文与 figshare 说明 |
| 7 | 罕见类分组 | ⚠️ | 官方未分组,需自建 OTHER/加权策略 |
| 8 | 偏倚评估 | ⚠️ | 论文局限性章节有定性讨论,无系统审计 |
| 9 | 数据字典 | ✅ | ACROBAT 类型定义完整可查 |
| 10 | 信息性缺失解释 | ❌ | 未提供(文本模态亦无此概念) |
| 11 | 设备记录 | ❌ | 纯文本模态,不适用 |
| 12 | 共线性 | ⚠️ | 不适用于表格特征;类型共现相关性需自行分析 |
| 13 | 编码映射 | ❌ | 无 SNOMED CT/ICD/UMLS 概念编码 |
| 14 | 时间戳处理 | ⚠️ | 无时间轴字段;行序即句序 |
| 15 | 划分建议 | ⚠️ | 无官方划分,社区口径需自行对齐(坑点 2) |
| 16 | 泄漏讨论 | ❌ | 官方未讨论;本文 §5.3 已补全 |
| 17 | 标签分布 | ✅ | 论文提供逐类型计数 |
| 18 | 测量偏倚 | ⚠️ | 标注者主观性未量化(无 IAA) |
| 19 | 外部验证建议 | ⚠️ | 官方未给出;本文 §7.8/§5.5 补充 |
| 20 | 版本记录 | ✅ | figshare V1/V2 双版本 + DOI 时间戳 |
| 21 | 预处理脚本 | ❌ | 官方未发布解析/划分脚本 |
| 22 | 合规要求 | ✅ | CC BY 4.0 清晰,NLM 目录二次确认 |
| 23 | 多模态对齐 | ❌ | 单模态文本,不适用 |
| 24 | 去标识化 | ⚠️ | 依赖原期刊出版流程,无额外去标识管线文档 |
DAIMS 评分:12.5 / 24(✅ 7 项 / ⚠️ 11 项 / ❌ 6 项)
评分解读:得分中等偏下,符合"小型学术语料"的典型形态——数据本体干净(宽格式、唯一标识、标签体系、版本记录、许可全部过关),而工程配套(划分、脚本、编码映射、泄漏讨论、一致性指标)整体缺位。6 个 ❌ 中有 3 项(设备记录、多模态对齐、信息性缺失)属文本模态天然不适用,实际可用度高于分数表象。
对你意味着什么:①选它就要接受"数据本体金标准、工程配套毛坯房"的现实——解析与划分脚本要自己写,本文 §5–§6 已给全;②需要概念归一化就得自建 SNOMED/ICD 映射(§2.1);③许可风险低,教学与商用衍生均可行(署名即可);④评测结论要保守化:把标签噪声当真实世界变异,稀有类型的结论务必单独标注置信度。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| CCR NER(24 类子集,80/10/10) | UCLA(Zhou et al., 2021,arXiv:2106.12608) | 临床 NER | GloVe+C-ELMo 65.75 micro-F1;BioBERT 64.38;GloVe 基线 59.63 | 域内预训练较静态向量 +6.12 | 域内上下文向量对本语料提升显著;同划分下数字可比 |
| IGa-BiHR BNERM | Bhushan et al., 2025,BMC Bioinformatics(PMID 39885428) | 生物医学 NER | Accuracy 99.11% / F1 98.05 | 远高于其他口径 | 数据取自 Kaggle 镜像 + 自建预处理,口径不明,不可直接比较 |
| BERT+词典增强 RAG | Sreenivas et al., 2025,Electronics 14(18):3676 | 临床 NER 微调 | 未公布同口径 F1 | — | 对数据集的描述与原始出处不符(坑点 8),结论需独立复测 |
| 关系分类正例聚合 | COVID-19 Surveiller(Phil. Trans. R. Soc. A, 2022) | 二元关系分类构造 | — | — | R 行关系标注可支撑 RE 原型与负例采样 |
| MACCROBAT-2020RD 子集 | Bayer(Hochschule Darmstadt, 2025) | 罕见病子集构建 | 18 篇 / 2,444 实体 | — | MeSH+Orphanet 过滤可行,验证罕见病方向可用性 |
提醒:本矩阵收录的是"使用本语料的外部研究",而非"本语料在其他数据集上的成绩";MACCROBAT 官方未发布跨语料迁移实验。
§8 基准性能与生态
§8.1 排行榜
统一口径:80/10/10 文档级随机划分(2,894/380/351 句)、24 种实体/事件类型子集、micro-F1。下列数字仅在该口径内可比:
| 排名 | 模型 | 性能(micro-F1) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | GloVe + C-ELMo(BiLSTM-CRF 框架) | 65.75 | 2021 | 在 PMC 临床相关子集上继续预训练的域内 ELMo 向量 | Zhou, Y. et al. Clinical Named Entity Recognition using Contextualized Token Representations. arXiv:2106.12608, 2021. DOI 10.48550/arXiv.2106.12608 | 无官方代码库 |
| 2 | BioBERT | 64.38 | 2021 | PubMed + PMC 预训练 BERT(由上文论文在本语料评测) | Lee, J. et al. BioBERT: a pre-trained biomedical language representation model for biomedical text mining. Bioinformatics 36(4):1234–1240, 2020. DOI 10.1093/bioinformatics/btz682 | dmis-lab/biobert(HF 权重可取) |
| 3 | GloVe + C-Flair | 64.18 | 2021 | 域内 Flair 字符特征 | Zhou, Y. et al., 2021(同第 1 行) | 无 |
| 4 | GloVe + Flair | 62.63 | 2021 | 通用 Flair | Zhou, Y. et al., 2021(同第 1 行) | 无 |
| 5 | ELMo | 61.69 | 2021 | 通用域 ELMo | Zhou, Y. et al., 2021(同第 1 行) | 无 |
| 6 | GloVe | 59.63 | 2021 | 静态词向量基线 | Zhou, Y. et al., 2021(同第 1 行) | 无 |
| 7 | Flair | 57.25 | 2021 | 静态字符特征基线 | Zhou, Y. et al., 2021(同第 1 行) | 无 |
不列入榜单的近期结果:Bhushan et al., 2025(BMC Bioinformatics)报告 Accuracy 99.11% / F1 98.05%,但数据取自 Kaggle 镜像、预处理与指标口径自建,与上表不可比;Sreenivas et al., 2025(Electronics)对数据集的描述与原始出处不符(坑点 8),数字不采信。原论文对比表中的其他传统基线因完整引用以原文为准,此处未逐一列出。
§8.2 SOTA 总结与选型建议
- 绝对水平不高是特性不是缺陷:65.75 的 micro-F1 反映了"病例叙事 + 41 类细粒度 + 长尾分布"的真实难度;在它上面刷分比在 i2b2 三类上更有信息量。
- 工程首选:BioBERT 一行权重即可复现接近最优(64.38),是起步默认项;C-ELMo 无公开代码库,复现成本高。
- 研究空白:公开数字仅覆盖 24 类子集,41 类全口径尚无权威基准——这是可直接发表论文的空白区。
- 分类型短板(GloVe+C-ELMo 口径):Disease_disorder 50.84、Detailed_description 45.81 显著拖后腿;Dosage 77.42、Non-biological Location 80.77 已接近上限。
- 先修标签空间:自测前先冻结你的标签空间(24 类子集或 41 类全口径),并写进结果表表头。
- 报告习惯:同一表格内并列 micro-F1 与 macro-F1,并附逐类型 F1 附录。
- 预期管理:与 MIMIC 级大规模语料不同,本语料的涨分空间主要来自类型定义对齐与稀有类处理,而非模型容量——先修数据,再换模型。
§8.3 评测协议
- 划分:按文档(PMID)分组,80/10/10;禁止句级划分(§5.3)。
- 指标:micro-F1 为主报口径;建议附 macro-F1 与稀有类型召回(坑点 4)。
- 标签空间:与论文对比时严格取 24 类子集;全 41 类结果单独成表。
- 复现声明:报告随机种子、版本名(2018/2020)与划分清单哈希。
- 显著性:200 篇规模下折间方差不可忽略,建议至少 5 折并报告标准差,不做单折排名。
- 版本声明:任何数字必须绑定版本名(2018/2020),双版本并存下无版本声明的结果视为无效。
§8.4 相关数据集
| 数据集 | 文本来源 | 与 MACCROBAT 的关系 | 获取方式 |
|---|---|---|---|
| 2010 i2b2(n2c2) | 医院出院小结 | 三类粗粒度对照与跨域目标 | DUA 申请 |
| 2012 n2c2(时间信息) | 医院出院小结 | 时间表达式与事件时序的进阶对照 | DUA 申请 |
| BC5CDR | PubMed 文献全文 | 疾病/化学实体对齐参考 | 开放下载(见官方页) |
| NCBI Disease | PubMed 摘要 | 疾病 NER 小基准 | 开放下载 |
| CRAFT | BioMed Central 全文 | 跨概念层最全文献标注 | 开放(见官网) |
| GENIA | Medline 摘要 | 生物医学事件抽取前辈语料 | 许可协议获取 |
| CCR 元数据工程(母体) | 约 3,100 篇 curated CCR | MACCROBAT 的未标注母集(15 疾病组) | 见 arXiv:2106.12608 说明 |
§8.5 关键论文
- Caufield, J.H., Zhou, Y., Bai, Y., Liem, D.A., Garlid, A.O., Chang, K.-W., Sun, Y., Ping, P., Wang, W. A Comprehensive Typing System for Information Extraction from Clinical Narratives. medRxiv 2019.10.22.19009118, 2019. DOI 10.1101/19009118 —— ACROBAT 类型体系与数据集本体出处。
- Zhou, Y., Ju, C., Caufield, J.H., Shih, K., Chen, C., Sun, Y., Chang, K.-W., Ping, P., Wang, W. Clinical Named Entity Recognition using Contextualized Token Representations. arXiv:2106.12608, 2021. DOI 10.48550/arXiv.2106.12608 —— 首个系统基准,定义了可比口径。
- Lee, J. et al. BioBERT: a pre-trained biomedical language representation model for biomedical text mining. Bioinformatics 36(4):1234–1240, 2020. DOI 10.1093/bioinformatics/btz682 —— 本语料上的主力微调模型。
- Bhushan, R.C., Donthi, R.K., Chilukuri, Y., Srinivasarao, U., Swetha, P. Biomedical named entity recognition using improved green anaconda-assisted Bi-GRU-based hierarchical ResNet model. BMC Bioinformatics, 2025. DOI 10.1186/s12859-024-06008-w —— 近期深度学习尝试(口径自建,读时留心)。
- Sreenivas, S.C., Chowdhury, S., Masum, M. Enhancing Clinical Named Entity Recognition via Fine-Tuned BERT and Dictionary-Infused Retrieval-Augmented Generation. Electronics 14(18):3676, 2025. DOI 10.3390/electronics14183676 —— LLM 时代尝试,同时是"次级来源失真"的警示案例。
- Bayer, J. 硕士论文(Hochschule Darmstadt, 2025)—— MACCROBAT-2020RD 罕见病子集方法论与 2020 版逐类型统计。
- COVID-19 Surveiller 团队(Phil. Trans. R. Soc. A, 2022)—— 复用 R 行关系标注构造关系分类正例的应用示例。
§8.6 社区活跃度
- figshare 指标(截至 2026-09 检索快照):14,507 次浏览、4,421 次下载、4 次数据引用。
- 论文 Google Scholar 被引 9+(截至 2026-09);无官方 GitHub 代码库。
- 第三方生态以 HF 镜像(2 个)与硕士论文级研究为主:定位是"小众但稳定"的教学/原型语料,不是大规模竞赛赛道。
- 定位解读:它更像基础设施领域的"标准砝码"——引用量不大,但凡是做临床细粒度 NER 的方法学论文都会拿来对照;生态增长取决于母体工程后续是否发布扩展标注。
- 镜像贡献提示:两个 HF 镜像承担了大部分"即插即用"需求,但均非官方维护,解析口径以官方 brat 文件为最终依据(坑点 8)。
§8.7 生态快照
| 资源 | 类型 | 链接 | 指标(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| figshare 数据页 | 官方托管 | figshare | 14,507 浏览 / 4,421 下载 | 唯一权威下载源 |
| medRxiv 预印本 | 论文 | DOI 10.1101/19009118 | Scholar 9+ | 类型体系与标注协议出处 |
| HF 镜像 ktgiahieu | 第三方镜像 | HF Datasets | — | 预转 BIO,快速原型 |
| HF 镜像 singh-aditya | 第三方镜像 | HF Datasets | — | 解析参考(注意许可口径) |
| NLM Data Catalog | 权威目录 | 收录页 | — | 许可与元数据二次核对 |
| brat | 标注工具 | brat.nlpl.eu | — | standoff 格式的原生工具 |
| WHO ICD-11 Browser | 术语参考 | icd.who.int | — | §2.1 映射表核对工具 |
| PubMed Central | 原文来源 | ncbi.nlm.nih.gov/pmc | — | 按文档名回溯原始病例文献 |
§9 相关资源与引用
§9.1 官方资源
- figshare 数据页(V1/V2 双版本下载):https://figshare.com/articles/dataset/MACCROBAT2018/9764942
- 数据 DOI:https://doi.org/10.6084/m9.figshare.9764942
- 数据合集 collection DOI:10.6084/m9.figshare.c.4652765
- 类型体系论文(medRxiv):https://doi.org/10.1101/19009118
- 基准论文(arXiv):https://arxiv.org/abs/2106.12608
- NLM Data Catalog 收录页:https://datasetcatalog.nlm.nih.gov/dataset?q=0000503613
- HF 镜像:ktgiahieu/maccrobat2018_2020、singh-aditya/MACCROBAT_biomedical_ner
- brat 标注工具:https://brat.nlpl.eu
- WHO ICD-11 Browser:https://icd.who.int
- PubMed Central(原文回溯):https://www.ncbi.nlm.nih.gov/pmc/
- Hugging Face Datasets 文档:https://huggingface.co/docs/datasets
10 分钟上手路径:①读 §1.0 速览;②按 §6.2 下载 2018 版;③跑 §6.3 解析与 BIO 转换;④用 §6.9 的 seqeval 搭评测;⑤回到 §3.0 决定是否切换 2020 版。半天进阶路径:在 10 分钟路径之上,按 §5.4 建立文档级 5 折划分,用 §6.4 的 BioBERT 微调出第一条可对比基线,再对照 §8.1 定位差距。
§9.2 BibTeX
@article{caufield2019comprehensive,
title = {A Comprehensive Typing System for Information Extraction from Clinical Narratives},
author = {Caufield, J. Harry and Zhou, Yichao and Bai, Yunsheng and Liem, David A. and
Garlid, Anders O. and Chang, Kai-Wei and Sun, Yizhou and Ping, Peipei and Wang, Wei},
journal = {medRxiv},
year = {2019},
doi = {10.1101/19009118}
}
@article{zhou2021clinical,
title = {Clinical Named Entity Recognition using Contextualized Token Representations},
author = {Zhou, Yichao and Ju, Chelsea and Caufield, J. Harry and Shih, Kevin and
Chen, Calvin and Sun, Yizhou and Chang, Kai-Wei and Ping, Peipei and Wang, Wei},
journal = {arXiv preprint arXiv:2106.12608},
year = {2021},
doi = {10.48550/arXiv.2106.12608}
}
@misc{caufield2020maccrobat,
title = {MACCROBAT2018},
author = {Caufield, J. Harry and Zhou, Yichao and Ping, Peipei and Wang, Wei},
year = {2020},
publisher = {figshare},
doi = {10.6084/m9.figshare.9764942},
url = {https://figshare.com/articles/dataset/MACCROBAT2018/9764942}
}
§9.3 引用指南
- 引数据本身:用 figshare DOI(10.6084/m9.figshare.9764942),并注明所用的具体版本(2018 或 2020)。
- 引类型体系:用 medRxiv 论文(DOI 10.1101/19009118)。
- 引基准数字:必须同时引用 Zhou et al., 2021 并声明 80/10/10 文档级划分 + 24 类子集口径,否则数字不可比。
- 引规模数字:注意口径——59,164(2018 版实体+关系合计)与 25,144(2020 版实体)不可互换(坑点 7)。
- 引分类型 F1:注明"GloVe+C-ELMo 口径(Zhou et al., 2021)",避免被误读为通用 SOTA 值。
- 引坑点:本文坑点基于官方文档、第三方论文与镜像差异整理,引用时请回溯对应"参考"链接。
- 引母集数字:约 3,100 篇 curated CCR、15 疾病组出自 Zhou et al., 2021,与 MACCROBAT 的 200 篇是"母集/子集"关系,勿混写。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型/工具 | 类型 | 用途 | 版本说明 |
|---|---|---|---|
| fast-model(CodeBuddy Code 内置) | 大语言模型 | 条目起草、结构化、代码示例撰写 | 2026-09 会话 |
| WebSearch / WebFetch | 联网检索工具 | 事实核验与来源抓取 | 2026-09 |
| check_md.py | 格式校验脚本 | frontmatter/结构/纯净度校验 | 随仓库内置版本 |
| FACTS.md | 研究事实清单 | 来源索引与硬数字核对底稿 | 随条目归档 |
§10.2 AI 参与范围
AI 承担:全文初稿起草、表格与代码示例编写、格式化与校验修复。人工承担:研究问题定义、来源可信度判定、硬数字逐一核对、医学叙事与工程建议复核(见 §10.4)。准入规则:所有硬数字(规模、日期、许可、基准)必须在 FACTS.md 中落有来源 URL 方可进入正文。
- 事实准入:无来源 URL 的数字一律不得写入正文,检索快照类数据须标注"截至"日期。
- 代码准入:示例代码须与 §4 数据结构逐字段对应,不得引入数据中不存在的字段假设。
- 风险声明准入:所有"不可比/失真/有损"判断必须有可回溯的对比依据(坑点 2/5/8)。
§10.3 输入来源列表
- Caufield, J.H., Zhou, Y., Bai, Y., Liem, D.A., Garlid, A.O., Chang, K.-W., Sun, Y., Ping, P., Wang, W. A Comprehensive Typing System for Information Extraction from Clinical Narratives. medRxiv 2019.10.22.19009118, 2019. DOI 10.1101/19009118.
- Zhou, Y., Ju, C., Caufield, J.H., Shih, K., Chen, C., Sun, Y., Chang, K.-W., Ping, P., Wang, W. Clinical Named Entity Recognition using Contextualized Token Representations. arXiv:2106.12608, 2021. DOI 10.48550/arXiv.2106.12608.
- Lee, J. et al. BioBERT: a pre-trained biomedical language representation model for biomedical text mining. Bioinformatics 36(4):1234–1240, 2020. DOI 10.1093/bioinformatics/btz682.
- MACCROBAT2018 数据页(figshare,含 V1/V2 版本与下载指标):https://figshare.com/articles/dataset/MACCROBAT2018/9764942(DOI 10.6084/m9.figshare.9764942)。
- figshare 数据合集:DOI 10.6084/m9.figshare.c.4652765。
- NLM Data Catalog 收录页(Rights 核对):https://datasetcatalog.nlm.nih.gov/dataset?q=0000503613。
- Bayer, J. 硕士论文(Hochschule Darmstadt, 2025):https://fbmn.h-da.de/fileadmin/Dokumente/Studium/DS/SS25_MDS_Thesis_Julian_Bayer_THE.pdf。
- Bhushan, R.C., Donthi, R.K., Chilukuri, Y., Srinivasarao, U., Swetha, P. BMC Bioinformatics, 2025. DOI 10.1186/s12859-024-06008-w(PMID 39885428)。
- Sreenivas, S.C., Chowdhury, S., Masum, M. Electronics 14(18):3676, 2025. DOI 10.3390/electronics14183676。
- COVID-19 Surveiller(Phil. Trans. R. Soc. A, 2022)关系标注复用:https://www.researchgate.net/figure/Relation-annotation-counts_tbl5_336734882。
- HF 镜像 ktgiahieu/maccrobat2018_2020(含标签口径 Discussion):https://huggingface.co/datasets/ktgiahieu/maccrobat2018_2020。
- HF 镜像 singh-aditya/MACCROBAT_biomedical_ner(许可口径警示):https://huggingface.co/datasets/singh-aditya/MACCROBAT_biomedical_ner。
- Google Scholar 被引页(截至 2026-09 快照):https://scholar.google.com.py/citations?citation_for_view=jneypZ8AAAAJ%3AzYLM7Y9cAGgC。
- brat standoff 标注工具文档:https://brat.nlpl.eu。
- WHO ICD-11 Browser(§2 映射参考):https://icd.who.int。
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| frontmatter 与 INFOBOX 元数据 | 千方病案医学编辑部 | 对照 FACTS.md 逐项核对来源 URL | ✅ 已验证 |
| §1 概览与 §2 医学背景 | 千方病案医学编辑部 | 医学叙事与映射表人工复核 | ✅ 已通过 |
| §3–§5 规格与划分策略 | 千方病案医学编辑部 | 规模/日期/许可与官方页面比对 | ✅ 已验证 |
| §6 AI 就绪指南与 8 坑点 | 千方病案医学编辑部(数据工程) | 代码走查 + 坑点来源逐条核对 | ✅ 已验证 |
| §7 DAIMS 与质量评估 | 千方病案医学编辑部 | 24 项逐项评定复核 | ✅ 已通过 |
| §8–§9 基准与引用 | 千方病案医学编辑部 | 引用逐条回溯原文页面 | ✅ 已验证 |
| §10 与 JSON-LD | 千方病案医学编辑部 | 格式与 schema 结构校验 | ✅ 已通过 |
§10.5 AI 生成章节标注
全部章节由 AI 起草,并经 §10.4 所列人工流程复核后定稿;各章节未区分"纯人工"或"纯 AI"属性,数字与结论的最终责任在人工审核链。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)。
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- pmc-oa-subset — 共享标签:医疗NLP / 临床文本 / 生物医学文献
- ncbi-disease — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献
- jnlpba — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献
- pharmaconer — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- meddoprof — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- cantemist — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- radgraph — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- bc5cdr — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献
- carmen — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- medmentions — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

