信息速览

MedMentions — 35 万提及 UMLS 实体链接语料 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | MedMentions |
| 英文全称 | MedMentions: A Large Biomedical Corpus Annotated with UMLS Concepts |
| 别名/简称 | MedMentions、MedMentions full、MedMentions st21pv、Med-Mentions |
| 疾病分类 | 生物医学全疾病谱与生命科学概念(ICD-11:不限定单一系统;语料经 UMLS CUI 覆盖 127 个语义类型中的 126 个,含疾病、药物、基因、解剖结构等) |
| SNOMED CT | 经 UMLS 2017AA Metathesaurus 间接映射 SNOMED CT 概念(SNOMED CT 是 UMLS 收录的源词表之一,CUI 为桥接键) |
| 数据模态 | 自由文本(PubMed 标题与摘要)+ 字符级概念标注(UMLS CUI 链接) |
| AI 任务类型 | 生物医学命名实体识别(NER)、实体链接/实体消歧(NED)、概念归一化、文档级概念画像、知识图谱接地 |
| 样本总数 | 4,392 篇 PubMed 论文 / 352,496 个提及 / 34,724 个唯一概念;st21pv 子集 203,282 个提及 / 21 个语义类型 |
| 数据格式 | PubTator(UTF-8 纯文本,| 与 \t 双分隔符) |
| 许可证 | CC0 1.0 Universal |
| 访问级别 | 开放(无需注册、无需申请,GitHub 直接下载) |
| DUO 标签 | NRES, GRU(文献语料,无人类受试者使用限制) |
| 语言 | 英文 |
| 首发日期 | 2018-05(GitHub 仓库创建)/ 2019-02-25(arXiv 论文正式发布) |
| 最后更新 | 2021-11-09(GitHub 仓库最后推送) |
| 发布机构 | Chan Zuckerberg Initiative(CZI)Meta 团队 |
| 官方主页 | https://github.com/chanzuckerberg/MedMentions |
| 下载地址 | https://github.com/chanzuckerberg/MedMentions |
| DOI | 无(arXiv 索引号 1902.09476,dblp 记录为 informal publication) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方固定划分 + CC0 零门槛获取 + 论文级文档;扣分项:无官方预处理脚本、CUI 到概念名称需另行获取 UMLS Metathesaurus、PubTator 双分隔符需自行解析 |
| 页面状态 | published |
§0 E-E-A-T 审核声明与免责
医学审核声明:本页面由千方病案医学编辑部审核。审核范围:§2 医学背景(UMLS 语义类型体系、实体链接临床意义)、§7 偏倚分析。
数据工程审核声明:本页面由千方病案医学编辑部交叉审核。医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。MedMentions 以 CC0 1.0 许可发布,可自由下载、使用、修改与再分发,无需注册或签署协议;但语料中链接的 UMLS 概念体系(Metathesaurus)本身受 UMLS 版权许可约束,获取与使用 UMLS 原表需遵守美国国立医学图书馆(NLM)的 UMLS 许可条款。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? MedMentions(“医学提及”)是一份由Chan Zuckerberg Initiative(CZI)在 2019 年 2 月公开发布的英文生物医学文献标注语料。研究团队从 PubMed 上随机抽取了 4,392 篇论文,把每篇论文的标题和摘要交给专业标注团队,逐字逐句地找出其中所有医学术语——从"乳腺癌"这类疾病名,到"阿司匹林"这类药物名,再到基因、蛋白质、人体结构——并把每一个提及都精确地链接到统一医学语言系统(UMLS)中唯一的概念编号(CUI)上。整份语料共标注了 352,496 个提及,对应 34,724 个不同的医学概念(官方仓库)。
为什么重要? 在 MedMentions 出现之前,生物医学实体标注语料大多只覆盖少数几类实体(比如只标疾病或只标药物),而且概念字典往往只有几千到几万个候选。MedMentions 首次做到了"全谱系 + 全链接":它覆盖了 UMLS 2017AA 版本中 127 个语义类型里的 126 个,候选概念本体超过 300 万个——这意味着模型必须从约 350 万个候选概念中找出正确答案,任务难度和真实世界几乎一致。它也因此成为衡量"医学名词消歧"能力的标准考卷(arXiv:1902.09476)。
我能用它做什么? 如果你在做医学文献检索、药物警戒、知识图谱构建或医学问答,你可以用它训练模型自动"读懂"一篇摘要里提到的所有概念,把自由文本变成结构化的概念列表;如果你在研究大模型或稠密检索,官方固定的 train/dev/test 划分(约 6:2:2,按论文切分)和测试集中约 42% 从未在训练集出现的概念,让它成为检验模型零样本/开放词表能力的高质量基准(arXiv:1902.09476)。
§1.1 技术摘要
MedMentions 的构建流程是"抽样 → 穷尽标注 → 全链接"。首先,研究团队在 2016 年 1 月至 2017 年 1 月间发表于 PubMed 的文献中随机抽样 4,392 篇,取其标题与摘要作为文本载体;随后由专业标注团队对每篇文本进行穷尽式人工标注——不是只标注预定义类型的实体,而是把 UMLS 2017AA Metathesaurus 中所有处于 Active 状态的概念的提及都找出来,链接到对应 CUI;无法对应到 2017AA Active 概念的提及被统一标注为 UnknownType 语义类型。最终语料包含 352,496 个提及、34,724 个唯一概念,覆盖 126/127 个语义类型。官方同时发布了 st21pv 子集:将本体裁剪到 21 个语义类型、约 232.7 万个概念,保留 203,282 个提及。数据以 PubTator 纯文本格式发布,附带按文档(PMID)划分的固定 train/dev/test 划分(约 60%/20%/20%),以及一个实体链接基线模型及其指标。标注质量通过抽样复审验证:8 篇文献、469 个概念由 2 名生物学家独立复审,一致率为 97.3%(arXiv:1902.09476)。
§1.2 战略价值
维度一:概念空间的"真实难度"标杆。 多数医学实体链接评测的候选集只有几万概念(如 NCBI-disease 的疾病词表),而 MedMentions 的全版候选集超过 300 万概念、st21pv 亦有约 232.7 万。在这个规模下,基于别名词典的查表方法和浅层排序模型会迅速失效——Biomedical Entity Linking 领域从"词典匹配问题"转变为"大规模稠密检索问题"的范式转移,正是由这份语料推动的。它直接催生了 SapBERT、BioSyn 等以 UMLS 同义词对做表示学习的标杆模型(arXiv:2010.11253)。
维度二:零成本、零风险的合规底座。 语料采用 CC0 1.0 许可(即"无版权保留"的公共领域贡献),发布主体是资金与工程能力雄厚的 CZI,GitHub 仓库自 2018 年上线以来持续可访问,最后更新于 2021 年 11 月。对工业界而言,它是少数不需要注册、不需要 DUA、不涉及任何患者隐私的医学 NLP 高质量语料,可以直接进入商用产品的训练管线,合规摩擦几乎为零(官方仓库)。
维度三:跨语义类型的统一监督信号。 因为标注覆盖 126 个语义类型,同一份语料可以同时服务于疾病识别、药物识别、基因识别、解剖部位识别等下游任务,并天然支持"类型预测 + 实体链接"的联合建模。官方 st21pv 子集(21 个语义类型)更是为文档检索场景量身定制的裁剪版本,让研究者可以在"全谱系难度"与"检索实用主义"之间自由切换(arXiv:1902.09476)。
维度四:可复现性的"文化资产"。 官方发布固定划分 + 统一评测口径,使五年间的实体链接方法演进(词典 → 稠密检索 → 结构化推理)都能在同一把尺子上读数,这在数据集家族中并不多见。对工程团队而言,这意味着选型时可以直接站在一条连续、可比的文献基线上,而不是在不同口径的碎片数字间猜谜——本页 §8 的整理即受益于此。
§1.3 同类数据集横向对比
| 数据集 | 文本载体 | 标注粒度 | 概念体系 | 概念候选规模 | 与 MedMentions 的差异 |
|---|---|---|---|---|---|
| MedMentions | 4,392 篇 PubMed 标题+摘要 | 字符级提及,穷尽式 | UMLS 2017AA 全谱(126/127 语义类型) | >300 万(st21pv 约 232.7 万) | 唯一覆盖全语义类型、链接全版 UMLS 的大规模摘要语料 |
| BC5CDR | 约 500 篇全文 | 字符级提及 | 疾病 + 化学物质(CDR 子集) | 远小于 MedMentions | 全文标注、类型窄,适合细粒度化学-疾病关系抽取 |
| NCBI-disease | PubMed 摘要 | 字符级提及 | 疾病专用词表 | 数千级 | 单一疾病类型,候选集小,适合入门级 NED 评测 |
| COMETA | 社交媒体(Reddit)短句 | 字符级提及 | UMLS 子集 | 中等 | 面向消费级健康语言,域偏移大,语言风格与文献完全不同 |
| GENIA / CRAFT | 全文(生物医学期刊) | 实体 span(类型集固定) | 本体化程度低/部分链接 | — | 偏重 span 识别而非全谱概念链接,不提供 CUI 级监督 |
注:BC5CDR、NCBI-disease、COMETA、GENIA、CRAFT 均为 MedMentions 论文与后续实体链接文献(如 arXiv:2109.02237)中常用的对比评测集;表中定性描述为各数据集公开文档的通行结论,具体规模数字以各自官方文档为准。
读表的关键是"概念候选规模"一列:候选集规模决定了任务难度上限,MedMentions 以百万级候选独一档;也因此各数据集上的 acc@1 数值天然不可横向比较——同一个模型在 NCBI-disease(小词表)能拿到 90+ 的 acc@1,在 MedMentions 全版候选上可能只有 50-70(§8.1 有同模型跨口径的直接例证)。横向对比表适合回答"该用哪个数据集回答我的问题",而不是"哪个数字更好看"。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2018-05-10 | GitHub 仓库创建 | CZI 在 chanzuckerberg 组织下建立 MedMentions 仓库(GitHub) |
| 2019-02-25 | arXiv 论文发布 | 《MedMentions: A Large Biomedical Corpus Annotated with UMLS Concepts》(arXiv:1902.09476)正式释出全版语料、st21pv 子集、固定划分与基线(arXiv) |
| 2019-03-12 | 会议版记录 | 同名论文的 proceedings 版本记录见学术索引(SciSpace 作者页收录记录) |
| 2021-11-09 | 仓库最后推送 | 此后语料内容保持冻结,未再发布新版本(GitHub,截至 2026-09-13) |
时间轴的解读要点:MedMentions 是"一次成型、此后冻结"型数据集——没有 v1/v2 的版本演进,所有后续工作共享同一份语料与划分,这解释了它为何能成为跨年可比的标尺;但也意味着任何对新概念、新文本窗口的需求都无法通过"等官方更新"解决,只能靠 §7.6 的增量策略兜底。
§1.5 典型应用场景
- 医学文献语义检索:把查询与摘要都映射到 UMLS 概念空间,用概念级匹配替代关键词匹配——这正是官方 st21pv 子集面向 document retrieval 设计的初衷。
- 医学知识图谱构建:从海量摘要中批量抽取"提及 → CUI"三元组,为下游知识图谱(如基于 UMLS 的图谱补全)提供高precision种子数据。
- 药物警戒与文献监测:识别摘要中的药物、不良事件与疾病概念,自动化追踪药物-疾病关联的最新文献证据。
- 医学大模型的接地与评测:以 MedMentions 的固定划分评测医学 LLM 或稠密检索器的概念归一化能力,尤其是测试集约 42% unseen 概念构成的零样本压力测试。
- 生物医学 NER 预训练:35 万字符级提及是天然的 span 标注资源,可用于医学 NER 模型的预训练或多任务联合学习。
场景选择的快速判断:如果你的产出物是"结构化概念列表"(检索、画像、图谱),优先链接任务路线(§6.9 的检索式评测);如果你的产出物是"文本理解模型",可以把 MedMentions 当多任务训练数据之一,但要用它做评测时务必与其他文献域评测集(如 BC5CDR)联合报告,避免单点过拟合某一文本形态的结论。
§2 医学背景
§2.1 概念类别与 ICD-11 对应
MedMentions 不是单一疾病数据集,而是覆盖生物医学全谱概念的语料。其标签体系是 UMLS 语义类型(Semantic Type,TUI 编码),而 ICD-11、SNOMED CT 等术语系统本身就是 UMLS Metathesaurus 收录的源词表——因此语料中的每个 CUI 都可以通过 UMLS 官方映射通道桥接到 ICD-11 编码(映射关系随 UMLS 版本发布,2017AA 版本对应当时的 ICD-10-CM 为主)。下表按语义类型群组归纳其与 ICD-11 的对应逻辑:
| 概念类别(语义类型群组) | 代表 TUI | UMLS 释义 | ICD-11 关联方式 | 语料内角色 |
|---|---|---|---|---|
| 疾病与综合征 | T047(Disease or Syndrome)、T037(Injury or Poisoning)、T184(Sign or Symptom) | 疾病、损伤、症状实体 | 经 UMLS 概念映射至 ICD-11 疾病章节(如 1A00-1E90 感染性疾病、5A11 糖尿病等编码族) | 实体链接的核心目标类 |
| 药物与化学物质 | T121(Pharmacologic Substance)、T195(Antibiotic)、T103(Chemical) | 药物、抗生素、一般化学物 | 映射至 ICD-11 外因章节(V-VT)与扩展码 | 药物警戒任务的目标类 |
| 基因与蛋白 | T028(Gene or Genome)、T116(Amino Acid, Peptide, or Protein) | 基因、基因组、蛋白质 | ICD-11 无直接章节;关联至扩展分类与 OMIM 等外部库 | 生物机制研究的目标类 |
| 解剖结构 | T017(Anatomical Structure)、T023(Body Part, Organ, or Organ Component) | 解剖实体 | 映射至 ICD-11 用于编码定语的解剖学术语轴 | NER 中高频修饰性实体 |
| 医疗操作与技术 | T061(Therapeutic or Preventive Procedure)、T060(Diagnostic Procedure) | 治疗、诊断操作 | 直接对应 ICD-11 操作编码(X 系列) | 临床流程建模 |
| 生物体 | T001(Organism)、T005(Virus)、T007(Bacterium) | 病原体 | 对应 ICD-11 感染性疾病章节的病原学条目 | 感染病文献挖掘 |
| 现象与法规 | T069(Governmental or Regulatory Activity)、T033(Finding) | 审批、监管、临床发现 | 部分映射至 ICD-11 外因与扩展章节 | 文献政策挖掘中的噪声源 |
| 科研概念性实体 | T085(Scientific or Research-Related Concept)、T170(Intellectual Product) | 学术概念、期刊、方法 | 无 ICD-11 对应(Meta 数据非临床实体) | 说明"穷尽标注"带来的非临床噪声 |
注意:上表 TUI 编码与释义来自 UMLS Semantic Network 的公开标准定义;"ICD-11 关联方式"一栏描述的是 UMLS Metathesaurus 提供的映射通道,具体 CUI → ICD-11 码的映射表需从 NLM 官方下载,本页不逐条复制映射码。
使用该表时的两点提醒:其一,语料内标注的是 CUI 而非 TUI 之上的诊断编码,把提及统计直接当作 ICD 编码发病率使用在方法学上不成立;其二,语义类型是单亲分类(一个 CUI 属于一个 TUI),但一个 CUI 的所指可能横跨多个临床视角(如某些药物既是 T121 又涉及 T195),分层统计时应先在 UMLS 内核对概念的主语义类型。
§2.1b SNOMED CT 映射通道
SNOMED CT 是 UMLS Metathesaurus 收录的主要源词表之一。MedMentions 语料本身只发布 CUI,不直接发布 SNOMED 码;研究者可借助 UMLS 官方映射文件(MRCONSO/MRHIER 表族,需 UMLS License)把语料中的 CUI 桥接到 SNOMED CT 概念。下表给出 SNOMED CT 顶层概念层级与本语料主要语义类型的对应关系:
| SNOMED CT 顶层概念(SCT 码) | SNOMED 中文名 | 对应 MedMentions 语义类型(TUI 示例) | 桥接说明 |
|---|---|---|---|
| 404684003 Clinical finding | 临床发现 | T047、T184、T033(Finding) | 疾病/症状类 CUI 的主要落点 |
| 71388002 Procedure | 操作 | T061、T060、T059(Lab Procedure) | 治疗与诊断操作类 CUI 落点 |
| 123037004 Body structure | 身体结构 | T017、T023、T022(Body Region) | 解剖类 CUI 落点 |
| 373873005 Pharmaceutical / biologic product | 药物/生物制品 | T121、T195、T200(Clinical Drug) | 药物类 CUI 落点(临床药物需 MRMAP 区分成分与制剂) |
| 105590001 Substance | 物质 | T103、T167(Substance) | 一般化学/物质类 CUI 落点 |
桥接实践提醒:CUI 与 SNOMED 码不是一对一关系(一个 CUI 可能聚合多个 SCT 概念,反之亦然),映射表中的关系类型(R/RO/RN 等)决定是否可引用;建立产品级映射前请用 UMLS 官方 MRMAP/MRHIER 做关系类型过滤,切勿做"首条命中即映射"的粗暴对齐。
§2.2 背景简介:实体链接与 UMLS
**统一医学语言系统(UMLS)**是美国国立医学图书馆(NLM)自 1986 年起维护的术语集成系统,其核心组件 Metathesaurus 把 200 多个源词表(含 SNOMED CT、ICD、MeSH、RxNorm 等)中的同义概念归并为唯一的概念标识符(CUI)。截至 MedMentions 采用的 2017AA 版本,Metathesaurus 收录概念超过 300 万个,语义网络将其组织为 127 个语义类型(NLM UMLS)。
**生物医学实体链接(Biomedical Entity Linking)**的任务是:给定一段文献文本中的提及(如 “tamoxifen”),从庞大的候选概念集中找到它指代的确切概念(C0025401,他莫昔芬)。该任务是医学文献检索、药物警戒、知识图谱构建和临床决策支持的知识接地环节——只有把自由文本落到标准化概念上,后续的统计分析与推理才可能进行。传统方法依赖别名词典(synonym lexicon)的查表匹配,但在超过 300 万候选、且缩写歧义严重的医学语境下,词典法的召回与消歧能力均不足,这正是 MedMentions 论文反复强调的规模挑战。
从方法演进看,MedMentions 充当了三次"分水岭"角色:词典/TF-IDF 时代(全版候选下约 51 点封顶)、稠密表示时代(SapBERT/BioSyn 将 gold-spans 指标推至 70 上下)、结构化推理时代(文档内聚类把指标推至 74-79)。每一步跃迁都以 MedMentions 的官方划分为共同考卷,这使它成为观察"实体链接 = 检索问题"这一范式确立过程的最佳标本——相关方法学脉络详见 §8.5。
“文献流行病学”:语料抽样窗口为 2016 年 1 月至 2017 年 1 月,正值高通量测序、免疫治疗与微生物组研究的高产期,因此语料中肿瘤学、基因组学与药理学概念的密度显著高于其他学科(这一分布与同期 PubMed 的学科构成一致,属抽样窗口的固偏,详见 §7.1)。
§2.3 临床任务定义
在临床信息学语境下,MedMentions 支撑的任务链是"提及识别 → 概念归一化 → 知识接地":
- 提及识别(NER):定位文本中所有医学概念的字符区间。与经典 NER 不同,MedMentions 的"类型"是 UMLS 语义类型而非粗粒度实体类别,模型需输出字符偏移 + 语义类型。
- 概念归一化/实体链接(NED):把提及映射到唯一 CUI。候选集规模达百万级,且同一提及文本常对应多个合法概念(如缩写 “RA” 可指类风湿关节炎或右心房),消歧必须依赖上下文。
- 文档级概念画像(document profiling):将整篇摘要聚合为概念集合,直接服务于检索与推荐——官方 st21pv 子集的过滤目标(21 个语义类型)即为文档检索场景定制(arXiv:1902.09476)。
这些任务在临床端的落点是:文献监测系统自动汇总新证据、药物警戒系统从海量摘要中捕捉药物-不良事件信号、以及为 CDSS 提供可追溯的文献概念证据链。
任务链各环节的难度差异显著:提及识别在文献域已相对成熟( span 边界规整、术语拼写规范),而概念归一化在百万级候选下仍是开放难题——同一个提及文本在语料内就可能对应多个 CUI(如高缩写密度的方法学句子),且相当比例的测试概念在训练中不可见。因此,评测 MedMentions 的研究通常把 NER 与 NED 解耦(gold spans 下测 NED),联合端到端评测需单独声明并解释与 gold-spans 结果的差距来源。
§2.4 文献人群构成
MedMentions 的"人群"不是患者而是文献。其构成如下:
| 维度 | 构成 | 说明 |
|---|---|---|
| 来源 | PubMed 收录期刊 | 全球生物医学期刊体系,以欧美期刊为主 |
| 时间窗 | 2016-01 至 2017-01 发表 | 随机抽样(arXiv:1902.09476) |
| 篇数 | 4,392 篇 | 每篇取标题 + 摘要 |
| 语言 | 英文 | 非英文文献不在 PubMed 英文子集中 |
| 学科覆盖 | 生物医学全学科 | 由 126/127 语义类型覆盖佐证 |
| 受试者数据 | 无 | 仅论文摘要文本,不含病例级数据 |
该构成决定了语料的"人群外推"边界:任何按年龄、性别、地域分层的人群体学分析都无法从本语料直接得出——它观察的是"论文写了什么",而不是"人群发生了什么"。
§2.5 临床与科研价值
对临床研究而言,MedMentions 提供了"把文献读薄"的关键原料:352,496 个经过人工确认的"文本片段 → 标准概念"对,是训练概念归一化模型最有效的监督信号之一。在药物警戒场景中,用该语料训练的链接器可以把每周数万篇新摘要自动归一到 RxNorm/ICD 概念,使药物-事件信号的提取从人工阅读变为结构化统计;在系统综述场景中,概念画像可用于 PICO 要素自动抽取与文献筛查排序。对科研方法论而言,它测试集约 42% 概念未在训练集出现的开放世界结构,为"模型是否真的学会了泛化"提供了接近真实分布的压力测试场。
价值的另一面是能力边界:这份监督信号诞生于"期刊摘要"这一高度规整的文本生态,把由此训练的模型称为"医学概念识别器"而不加域限定,是文献与方法论文里都反复出现过的过度概括。稳妥的表述是"生物医学文献域概念链接器",并在部署文档中明确其验证域。
§2.6 金标准属性表
| 属性 | 内容 |
|---|---|
| 划分方式 | 按 PMID 划分的固定 train/dev/test(约 60%/20%/20%),官方随语料发布,社区沿用(官方仓库) |
| 标注方式 | 专业标注团队穷尽式人工标注;提及链接到 UMLS 2017AA 全版 CUI;非 Active 概念标注为 UnknownType |
| 标注者 | 专业标注团队(论文未公开人数);质量抽检由 2 名生物学家独立复审 |
| 一致性 | 无全量 IAA;抽样 8 篇 469 个概念复审,一致率 97.3%(标注精确度估计)(arXiv:1902.09476) |
| 性质 | 人工标注金标准(gold standard),单通道标注 + 抽样复审 |
| 许可 | CC0 1.0(公共领域贡献,无使用限制) |
把上表放回"金标准"的定义域检验:划分固定、标注可追溯、指标协议统一,三者齐备使其满足基准评测的金标准要件;唯一弱项是单通道标注使 recall 侧证据缺失,这一点在 §7.2 有详细讨论。
§3 数据集规格
§3.0 版本抉择矩阵
MedMentions 官方发布两个语料版本,选错版本是社区复现偏差的头号来源:
| 你的需求 | 推荐版本 | 候选概念规模 | 提及数 | 理由 |
|---|---|---|---|---|
| 追踪实体链接 SOTA、复现 SapBERT/BioSyn 类论文 | st21pv 子集 | 约 232.7 万 | 203,282 | 主流论文(SapBERT、BioSyn)以 st21pv 为默认评测口径,对比最公平 |
| 构建全谱系概念画像/知识图谱 | full 全版 | >300 万 | 352,496 | 覆盖 126/127 语义类型,信息最全 |
| 资源受限快速实验(全版候选易 OOM) | st21pv 子集 | 约 232.7 万 | 203,282 | 候选索引内存减约 20% 以上,全版曾致 BioSyn 类模型 OOM(arXiv:2109.02237) |
| 研究开放词表/零样本泛化 | 任一版本 | — | — | 两版本测试集均有大量 unseen 概念(st21pv 中 test 约 42% 概念不在 train) |
§3.1 模态详情
- 文本模态:每篇文献贡献两段文本——标题(
|t|行)与摘要(|a|行)。标注偏移基于"标题 + 空格 + 摘要"拼接后的完整字符串,字符级 0-based 索引(官方仓库 README)。 - 标注模态:每行一个提及,五元组为 PMID、起始偏移、结束偏移、提及文本、语义类型 TUI、UMLS CUI。注意一个提及行只含一个 CUI,但同一字符区间可能对应多行(多概念歧义)。
- 词汇模态(隐含):语料只含 CUI,不含概念名称与同义词表。要做链接评测,必须另行获取 UMLS Metathesaurus(2017AA)以构建"CUI → 名称/同义词"候选词典——这是选型时的隐性成本。
- 结构模态(可选派生):由 CUI 与 TUI 可以派生概念-类型二部图、文档-概念二部图,用于图神经网络与检索排序实验;官方语料本身不提供这些派生表,需在管线中自行构建(§6.3 为起点)。
§3.2 子集与划分样本数
下表汇总两版本与 st21pv 各划分的规模。全版不公开逐划分计数(论文只给 st21pv 的划分明细),做全版实验时以自己解析的统计为准并记录在案。
| 子集/划分 | 文档数(PMID) | 提及数 | 唯一概念数 | 说明 |
|---|---|---|---|---|
| full 全版 | 4,392 | 352,496 | 34,724 | 126/127 语义类型(arXiv:1902.09476) |
| st21pv 合计 | 4,392 | 203,282 | — | 21 个语义类型,目标本体 2,327,250 概念 |
| st21pv train | 约 60% 文档 | 122,241 | 18,520 | 官方 PMID 划分 |
| st21pv dev | 约 20% 文档 | 40,884 | 8,643 | dev/test 仅约 57.5% 概念在 train 出现 |
| st21pv test | 约 20% 文档 | 40,157 | 8,457 | test 约 42% 概念不在 train、约 38% 不在 train+dev |
st21pv 从全版的过滤量级(arXiv:1902.09476):
| 过滤步骤 | 排除提及数 | 排除概念数 | 排除原因 |
|---|---|---|---|
| 步骤 0:Active 检查 | 2,473 | 685 | 概念在 UMLS 2017AA 中非 Active 状态 |
| 步骤 1-2:语义类型裁剪 | 135,986 | 6,002 | 语义类型不在 21 类目标集合内 |
| 步骤 3:文档级裁剪 | 10,755 | 2,618 | 文档内剩余提及归属的概念不符合 st21pv 收录标准 |
合计从 352,496 个提及裁剪到 203,282 个(约保留 57.7%),文档数保持 4,392 篇不变——st21pv 过滤的是提及行而非文档。
§3.3 数据格式
语料为 PubTator 纯文本格式,三类行混排:
| 行类型 | 语法 | 示例结构 |
|---|---|---|
| 标题行 | `PMID\ | t\ |
| 摘要行 | `PMID\ | a\ |
| 提及行 | 五列制表符分隔 | 1234567\t<start>\t<end>\t<提及文本>\t<TUI>\t<CUI> |
| 文档分隔 | 空行 | 文档之间以空行分隔 |
上面示例中的 PMID、偏移与概念码仅为格式示意,不是语料中的真实数据行。提及行的偏移是"标题 + 空格 + 摘要"拼接串上的 0-based 字符索引;同一字符区间因概念歧义可能出现多行;提及文本中可能包含制表符以外的特殊字符,解析时不要按空格重新切分。
一份"单文档"的完整 PubTator 结构示意(数字仅为演示格式):
1234567|t|Tamoxifen and bilateral breast cancer: a case report
1234567|a|Background: Tamoxifen is widely used for endocrine therapy ...
1234567 0 9 Tamoxifen T121 C0025401
1234567 24 37 breast cancer T191 C0006142
1234567 38 42 cancer T191 C0006826
<空行>
(下一文档的 |t| 行开始)
结构要点:每个文档由标题行、摘要行与若干提及行组成,文档间以空行分隔;提及行按其在拼接串中的出现顺序排列(不保证严格有序,解析后建议按 StartIndex 稳定排序);同一字符区间(如上例的 24-42 交叉区间)可出现指向不同 CUI 的多行。
§3.4 存储大小
语料为 UTF-8 纯文本(PubTator),全部文件可在一个 Git 仓库内直接托管与浏览,无二进制大文件;各文件准确大小以 官方仓库 当前发布为准,本页不引用未经验证的数字。实践中的磁盘开销大头不在语料本身,而在配套的 UMLS Metathesaurus(约数 GB 量级的 MySQL/RRF 安装体积,随安装方式浮动,以 NLM 官方文档为准)。
存储规划的三条经验:其一,语料目录整体小于常见单颗医学影像,任何 CI 缓存均可容纳;其二,真正占空间的是派生产物——候选向量索引(§6.8 的推算)与 UMLS RRF 解压产物,建议与源语料分目录管理;其三,git clone 一次即可获得全量历史,若只需数据可用 ZIP 下载避免历史体积。
§3.5 标注方式
穷尽式人工标注(exhaustive manual annotation):标注团队不以预定义实体类别清单为限,而是对每篇摘要中所有能对应到 UMLS 2017AA Active 概念的提及逐一标注 CUI;凡无法落到 2017AA Active 概念的提及,统一赋 UnknownType 语义类型(TUI 为 UnknownGroup 下的占位类型)。这种"宁可多标、不可漏标"的策略使语料的召回偏置明显——它更适合作为链接评测集,直接当作 NER 训练集时需注意 UnknownType 与长尾类型的处理策略。
与"类型优先"语料(先定类型清单再找实体)相比,"概念优先"标注还有一个工程细节差异:提及边界由概念的整体表达决定,同一相邻概念可能形成重叠区间(如 “breast cancer cell line” 中 “breast cancer” 与 “cell line” 的边界裁量),后处理时不能假设 span 之间严格不重叠。官方语料未对重叠/嵌套情况给出专门统计,使用时按实际解析结果处理即可。
§3.6 标注者资质与一致性
标注由 CZI 组织的专业标注团队完成(论文未披露标注者人数与临床资质细节)。质量保障采用"单通道标注 + 抽样复审"协议:随机抽取 8 篇文献、共 469 个概念,由 2 名生物学家独立复审,一致率 97.3%,以此估计标注精确度。需要注意:97.3% 是抽样精确度而非全量 IAA,语料没有发布全量双标数据,recall 层面的系统性漏标无法从数据内部直接估计(arXiv:1902.09476)。
与同代语料相比,该协议的特点与代价都很鲜明:穷尽式标注要求标注者对全 UMLS 谱系(而非限定实体类型清单)负责,人力密度远高于 BC5CDR 类双类型语料;换来的是语义类型层面的全覆盖监督。代价则是无全量 IAA 与无标注工具界面记录,标注者间对"短语边界"的裁量差异(如 “breast cancer cell line” 内部何处断开)只能靠 97.3% 的抽检数字间接反映,使用时建议对 span 边界类指标保留宽容度。
§3.7 采集周期
文献抽样窗口为 2016 年 1 月至 2017 年 1 月;标注与语料构建在 2018 年前后完成,2019 年 2 月随论文正式发布。抽样窗口与 UMLS 版本(2017AA)大体同期,两者构成相互自洽的"时间断面":文本里的概念在该版本的候选集中基本可查,这也是官方能把 UnknownType 控制在小比例的原因。
§3.8 地域覆盖
无地域限制,覆盖 PubMed 收录的全球英文生物医学文献;受文献发表体系影响,来源期刊以北美与欧洲机构主办的英文期刊为主。对地域敏感的应用(如区域流行病学研究),应把"文献产地不等于事件发生地"作为前提约束:一篇摘要的作者机构与研究对象所在人群可以完全不同。
§3.9 设备规格
不适用。语料为纯文本,不含任何设备采集信号字段。
§3.10 深度溯源链
PubMed 文献(2016-01 ~ 2017-01 抽样,PMID 唯一标识)
└─> 标题 + 摘要文本(PubTator |t| 与 |a| 行)
└─> 人工标注提及(0-based 字符偏移 + 提及文本)
└─> 语义类型 TUI(UMLS Semantic Network,127 类)
└─> UMLS CUI(Metathesaurus 2017AA,>300 万候选)
└─> 各源词表概念(SNOMED CT / ICD / MeSH / RxNorm,需 UMLS 官方映射文件)
每一级都可用官方主键回溯:PMID 可在 PubMed 网站复核原文;CUI 可在 UMLS 浏览器复核定义;TUI 可在 Semantic Network 文档复核层级。
不可完全追溯的两处边界需要知晓:其一,2017AA 是历史版本,部分 CUI 在当期 UMLS 浏览器中显示的名称/定义可能与标注时点有出入,严格复核需下载 2017AA 存档版本;其二,标注过程中的中间产物(标注工具界面记录、标注指南细节)未随仓库公开,语义边界的裁量依据只能从论文与抽检一致率间接推断。
§4 数据结构
§4.0 目录树
从官方 GitHub 仓库克隆后,文件结构如下:
MedMentions/
├── README.md # 数据说明、格式规范、引用指南
├── LICENSE # CC0 1.0
├── corpus_pubtator.txt # 全版语料(4,392 篇 / 352,496 提及)
├── corpus_pubtator_pmids_all.txt # 全版全部 PMID(每行一个)
├── corpus_pubtator_pmids_tr.txt # 训练集 PMID 列表
├── corpus_pubtator_pmids_dev.txt # 开发集 PMID 列表
├── corpus_pubtator_pmids_test.txt # 测试集 PMID 列表
├── corpus_pubtator_st21pv.txt # st21pv 子语料(203,282 提及)
├── corpus_pubtator_st21pv_pmids_all.txt # st21pv 全部 PMID
├── corpus_pubtator_st21pv_pmids_tr.txt # st21pv 训练集 PMID
├── corpus_pubtator_st21pv_pmids_dev.txt # st21pv 开发集 PMID
└── corpus_pubtator_st21pv_pmids_test.txt # st21pv 测试集 PMID
划分是文档级的:先由
pmids_tr/dev/test决定每篇文献归属,再过滤语料文件中对应 PMID 的行。两个版本共用同一批 PMID 与同一划分比例(约 60/20/20),但 st21pv 的语料文件只保留过滤后的提及行。
§4.1 DAIMS 字段字典
PubTator 提及行五列 + 文档行的字段字典(DAIMS 八列规范):
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| PMID | 整数 | PubMed 文档唯一标识 | 32971571 形式 |
文档分组、划分对齐、原文回溯 | 无(主键) | 无 | PubMed 有效 PMID;与 pmids 文件一致 |
| 行类型 t/a | 字符 | 文档头行标记:t=标题、a=摘要 | `\ | t\ | /\ |
a\ | ` |
| StartIndex | 整数 | 提及在"标题+空格+摘要"拼接串中的 0-based 起始字符位 | 42 |
span 定位、上下文窗口切取 | 直接在摘要上取偏移会整体错位(见坑点 2) | 无 | 0 ≤ x < 拼接串长度 |
| EndIndex | 整数 | 提及结束字符位(不含) | 48 |
span 长度统计、边界评估 | 半开区间易被误解为闭区间 | 无 | StartIndex < EndIndex ≤ 串长 |
| MentionTextSegment | 文本 | 偏移区间内的原文片段 | cancer 形式 |
拼接校验、OCR/编码错误检测 | 与 text[start:end] 不一致即解析错误 |
无 | 与原文严格一致 |
| SemanticTypeID | 代码 | UMLS 语义类型标识(TUI) | T191(Neoplastic Process) |
类型预测子任务、候选过滤 | UnknownType 行混入真实类型分布 | UnknownType(非 Active 概念) | 127 个标准 TUI + UnknownType |
| EntityID | 代码 | UMLS CUI(概念唯一标识) | C0006826 形式 |
实体链接标签、候选词典构建 | 部分 CUI 已在后续 UMLS 版本中改名/合并 | 无 | 2017AA Active CUI |
| mention_id(建议派生) | 整数 | 解析时自增的提及序号 | 1, 2, 3, ... |
唯一索引、抽样复审 | 无 | 无 | 自定义 |
示例值仅为格式与量纲示意(
C0006826/T191为 UMLS 中 cancer 概念的标准码)。同一字符区间可能出现多行(一 span 多 CUI 的歧义标注),做 NER 标签时需决定保留全部还是取第一行。
字段字典之外的三个"隐性字段":拼接文本串(由 t/a 两行派生,是偏移的参照系,§6.3)、文档划分标签(由 pmids_* 文件派生)、mention_id(建议派生的代理主键)。把这三个派生字段纳入你的内部 schema,可以避免后续所有"偏移对不上""划分对不齐"类问题的反复排查。
§4.2 标签分布
- 全版语料 352,496 个提及覆盖 127 个语义类型中的 126 个,仅 1 个语义类型零出现(arXiv:1902.09476)。
- 34,724 个唯一概念仅占 UMLS 2017AA 全集的约 1%——极端长尾:少量高频概念(疾病、药物、基因类)贡献大部分提及,绝大多数概念只有个位数提及。
- st21pv 裁剪到 21 个语义类型后保留 203,282 个提及(约 57.7%),被过滤的 149,214 个提及主要属于步骤一的语义类型裁剪(135,986 个提及)。
- 官方未随语料发布逐类型频次表;需要精确分布时建议解析语料自行统计(§6.3 提供代码)。
分布分析的两点提示:第一,语义类型维度的分布相对平缓(21 个 st21pv 类型都保有数千级提及),而概念维度(CUI)的长尾极陡,做类平衡策略时应作用于 CUI 层而非 TUI 层;第二,提及文本与概念之间是"多对一 + 一对多"的复杂映射——同一个 CUI 有大量不同表面形式(缩写、全称、俗名),同一个表面形式也可能指向多个 CUI,因此"表面形式 → 概念"的直查表在高频段有用、在中长尾段会快速失效,这正是 §8 稠密检索方法兴起的结构性原因。
§4.3 关键统计
| 统计项 | 数值 | 来源 |
|---|---|---|
| 文档总数 | 4,392 篇 | arXiv:1902.09476 |
| 提及总数(全版) | 352,496 | arXiv:1902.09476 |
| 唯一概念数(全版) | 34,724 | arXiv:1902.09476 |
| 语义类型覆盖 | 126/127 | arXiv:1902.09476 |
| 目标本体规模(全版) | UMLS 2017AA,>300 万概念 | arXiv:1902.09476 |
| st21pv 提及/本体 | 203,282 / 2,327,250 | arXiv:1902.09476 |
| st21pv 划分(train/dev/test 提及) | 122,241 / 40,884 / 40,157 | arXiv:1902.09476 |
| st21pv 划分(train/dev/test 唯一概念) | 18,520 / 8,643 / 8,457 | arXiv:1902.09476 |
| test 概念不在 train 的比例(st21pv) | 约 42% | arXiv:1902.09476 |
| 抽样复审一致率 | 97.3%(8 篇 469 概念) | arXiv:1902.09476 |
| 平均每篇提及数 | 约 80.3(352,496 ÷ 4,392,推算值) | 本页推算 |
| 语料许可 / 本体许可 | 语料 CC0 1.0 / UMLS 受 NLM License 约束 | 官方仓库、NLM UMLS |
§4.4 数据层级
语料(corpus)
└─ 文档 document(PMID 唯一,4,392 篇)
└─ 文本段 segment(标题 t / 摘要 a,每篇 2 段)
└─ 提及 mention(0-based 字符 span,352,496 个;可多概念共 span)
└─ 概念 concept(UMLS CUI,34,724 个唯一值)
└─ 语义类型 semantic type(TUI,126 类被覆盖)
层级要点:划分与抽样都以文档为原子单位;提及是唯一带监督的粒度;概念与语义类型是字典级维表,语料内不提供其名称与定义。
这一层级结构对建模的直接含义:文档级模型(如 Clustering-based)可以把"同文档提及共享候选"作为结构先验;提及级模型(如 bi-encoder)则把文档上下文当作特征窗口;而任何"跨文档聚合"(如全局概念共现统计)都应放在 train 划分内进行,避免把 test 文档的统计信息泄漏进训练(§5.3)。
§4.5 缺失值与信息性缺失编码
| 情形 | 表现 | 建议处理 |
|---|---|---|
| 概念不在 2017AA Active 集 | 提及行的 SemanticTypeID 为 UnknownType(UnknownGroup) | 链接评测:从候选集中排除该类提及或单列报告;NER 训练:当作独立类别或过滤,须在论文中声明 |
| CUI 在新版 UMLS 中已合并/改名 | 2017AA 码在 UMLS 新版本浏览器中查不到 | 保持 2017AA 口径,勿跨版本混用映射 |
| 同 span 多概念 | 同一 (PMID, start, end) 出现多行 | NER 用第一行或全部展开;NED 评测按多标签处理并注明协议 |
| 概念名称缺失 | 语料不含 CUI 名称 | 从 UMLS Metathesaurus 2017AA 获取(需 UMLS License) |
| 划分文件与语料不同步 | 某个 pmids_*.txt 中的 PMID 在语料中找不到对应文档行 | 以语料文件为准做交集校验,报告差集再决定处置,勿静默丢弃 |
| 提及文本含非空白特殊字符 | MentionTextSegment 出现希腊字母、单位符号等 | 按 UTF-8 原样保留,勿做无差别清洗,否则破坏与原文的对齐 |
“信息性缺失"在本语料的独特之处在于它是显式编码的:UnknownType 行本身就是信息——它告诉你"这里有一个医学概念提及,但无法落到 2017AA Active 概念”。把它当噪声删除会引入选择偏倚(被删除的恰恰是知识库边界上的提及),正确姿势是单列统计并在评测协议中声明处置方式(§8.3)。
§5 划分与使用建议
§5.1 官方划分
官方按文档(PMID)固定划分 train/dev/test ≈ 60%/20%/20%,随语料发布 3 份 PMID 列表(*_pmids_tr/dev/test.txt),全版与 st21pv 共用同一文档划分(官方仓库、arXiv:1902.09476):
| 划分 | st21pv 提及数 | st21pv 唯一概念 | 特性 |
|---|---|---|---|
| train | 122,241 | 18,520 | 占比约 60% |
| dev | 40,884 | 8,643 | 仅约 57.5% 概念在 train 出现 |
| test | 40,157 | 8,457 | 约 42% 概念不在 train;约 38% 不在 train+dev |
全版语料使用同一批文档与同一划分逻辑(未随论文公开逐划分的提及计数),两个版本的划分文件独立发布、互不混用:做 st21pv 实验时务必读 corpus_pubtator_st21pv_pmids_*.txt,做全版实验读 corpus_pubtator_pmids_*.txt。划分与官方基线的对应关系在论文与 README 中均有说明,复现实验前建议先按 §6.3 的断言校验划分文件与语料的 PMID 交集。
§5.2 社区惯例划分
SapBERT(Liu et al.)、BioSyn、Clustering-based EL 等主流工作全部沿用官方划分,并把"st21pv + 官方划分"当作默认评测协议;对全版 UMLS 候选集的评测则作为补充设定单独报告。跨论文比较时务必确认对方用的是哪一版本口径(见坑点 3)。
§5.3 划分策略与泄漏风险
- 不要自行重划分:MedMentions 的文档抽样来自连续时间窗,同一研究团队的系列论文会同时出现相似概念组合;若按提及级或概念级重划分,会造成"同一文档的提及一半在 train 一半在 test"的极端泄漏,指标虚高。
- 概念跨划分是特性而非缺陷:st21pv 测试集约 42% 概念未在 train 出现,这是有意构造的开放词表评测场景;把它当作普通分类问题"修复"掉(例如只用 train 见过的概念过滤测试集)会破坏基准语义。
- 同名缩写消歧:同一文本段内的缩写展开关系(如 “systemic lupus erythematosus (SLE)”)是天然的局部监督,上下文窗口过窄会丢失消歧线索,属"信息性泄漏"而非数据泄漏,建议上下文至少覆盖句级。
§5.3b 概念可见性自查清单
提交实验结果前,建议逐项自查:
- 训练集概念字典中是否包含了 dev/test 文档独有的 CUI?(应只从 train 文档构建)
- UMLS 同义词预训练是否与 test 集表面形式重叠?(SapBERT 类方法预训练语料覆盖全 UMLS,属于"本体可见、标签不可见",需在论文中明示该设定)
- 评估时是否用 test 分布调过阈值或候选过滤规则?(用 dev 调,test 只跑一次)
- 划分文件哈希是否与官方一致?
§5.4 交叉验证建议
进行模型选择与消融时,建议在官方 train 内部做文档级 K 折交叉验证,保持每折的概念 unseen 比例与整体分布接近(分层抽样键:文档内高频概念的覆盖度);dev 集只用于超参选择与早停,禁止参与训练。不要对 test 集做任何形式的迭代调优。
K 折的具体折中:文档级 K=5 即可满足方差估计需求;每折重新统计"该折验证集概念在其余折的可见率",若某折可见率异常偏离 57.5%(官方 dev/test 对 train 的参照值),考虑重新洗牌该折切分——否则折间方差会被 unseen 比例差异放大,消融结论不稳。
§5.5 外部验证建议
在 MedMentions 上训练的链接器,建议在 BC5CDR、NCBI-disease、COMETA 上验证跨语域泛化(文献 → 全文、文献 → 社交媒体);反向地,用 UMLS 同义词对预训练的模型(SapBERT 类)在未微调的情况下即可在 NCBI-disease 取得与监督方法相当的 acc@1(见 §7.8),这提示预训练-评测组合比单数据集调参更能反映真实能力。
实操顺序建议:先在 dev 集完成模型选择,再一次性跑 test 与外部数据集;把"MedMentions test + 外部集"的结果放在同一张表发布,并注明各列的候选集与指标口径。跨域掉点是正常且有价值的信息——它量化的正是从文献到目标域的知识鸿沟,掩盖这一信息(例如在外部集上继续调参)会让评测失去预警功能。
§6 AI 就绪指南 ⭐
§6.0 云端快速启动
语料体量小(纯文本,GitHub 直接托管),任何一台免费 Colab/Kaggle 实例即可完成全部解析与基线实验;真正的算力开销在链接模型的训练与候选索引检索(见 §6.8)。
最快路径三步:git clone(§6.2)→ 运行 §6.1 解析脚本(秒级完成)→ 用 §6.9 的评测框架接入你自己的候选索引。前三步在免费实例上全程无需 GPU;只有当你要训练 bi-encoder 或构建百万级稠密索引时,才需要进入付费计算。
§6.1 快速上手:解析语料
# ============================================================
# 快速上手:把 MedMentions st21pv 语料解析为 DataFrame
#
# 目录结构预期(data_root 拼接关系):
# data_root/
# corpus_pubtator_st21pv.txt # 语料正文(唯一必需文件)
# corpus_pubtator_st21pv_pmids_tr.txt # 官方训练划分(每行一个 PMID)
# corpus_pubtator_st21pv_pmids_dev.txt # 官方开发划分
# corpus_pubtator_st21pv_pmids_test.txt # 官方测试划分
#
# 最小可用子集:仅 corpus_pubtator_st21pv.txt 即可完成解析与统计;
# 划分文件仅在构造 train/dev/test 时需要。
# ============================================================
from pathlib import Path
import pandas as pd
data_root = Path("data/MedMentions") # 按你的实际解压路径修改
def parse_pubtator(path):
"""解析 PubTator 文件 -> (docs: dict[pmid -> {title, abstract}], mentions: list[dict])"""
docs, mentions = {}, []
with open(path, encoding="utf-8") as f:
for line in f:
line = line.rstrip("\n")
if not line: # 文档之间的分隔空行
continue
if "|t|" in line or "|a|" in line: # 文档头行(注意分隔符是竖线)
pmid, _tag, kind, text = line.split("|", 3)
d = docs.setdefault(pmid, {"title": "", "abstract": ""})
d["title" if kind == "t" else "abstract"] = text
else: # 提及行(注意分隔符是制表符)
pmid, start, end, seg, tui, cui = line.split("\t")
mentions.append({"pmid": pmid, "start": int(start), "end": int(end),
"segment": seg, "type": tui, "cui": cui})
return docs, mentions
docs, mentions = parse_pubtator(data_root / "corpus_pubtator_st21pv.txt")
df = pd.DataFrame(mentions)
print(f"docs: {len(docs)}, mentions: {len(df)}, unique CUI: {df.cui.nunique()}")
# st21pv 预期输出:docs: 4392, mentions: 203282(与论文一致)
§6.2 数据获取
| 方式 | 命令/入口 | 前置条件 | 说明 |
|---|---|---|---|
| Git 克隆(推荐) | git clone https://github.com/chanzuckerberg/MedMentions.git |
无 | 一次拿到全部文件与 README |
| 网页下载 | 打开仓库页 → Code → Download ZIP | 无 | 与克隆等价 |
| HuggingFace 镜像 | load_dataset("bigbio/medmentions") |
pip install datasets |
返回解析好的 NER/NED 结构,适合快速实验 |
| UMLS Metathesaurus 2017AA | NLM 官网(需 License) | UMLS License(免费,需签电子协议) | 非 MedMentions 本体,但构建候选词典的必备配套 |
# 一行获取语料(推荐方式)
git clone https://github.com/chanzuckerberg/MedMentions.git && mv MedMentions data/
# CC0 许可:无需注册、无需申请、无需签署任何协议
HuggingFace 镜像的加载方式(适合快速原型):
from datasets import load_dataset
# bigbio 社区镜像:返回按 bigbio schema 组织的 NER/NED 结构,
# 具体可用 config 名以镜像数据卡为准(提供 ner 与 ned 两种 schema)
ds = load_dataset("bigbio/medmentions")
print(ds) # 含 train/validation/test 三个 split
# 注意:镜像的 schema 字段名与原始 PubTator 不同,生产管线若需
# 官方口径(偏移、划分文件),仍建议回到 git clone 的原始文件。
§6.3 预处理全流程
三步:重建拼接串并校验偏移 → 统计标签分布 → 构建候选概念词典。
# ------------------------------------------------------------
# 步骤 1:重建 "标题 + 空格 + 摘要" 拼接串,校验所有偏移
# (偏移基准是拼接串,不是摘要单独文本,见坑点 2)
# ------------------------------------------------------------
def build_doc_text(d):
return d["title"] + " " + d["abstract"]
bad = 0
for m in mentions:
text = build_doc_text(docs[m["pmid"]])
if text[m["start"]:m["end"]] != m["segment"]:
bad += 1
assert bad == 0, f"offset mismatch: {bad}(解析有误,检查坑点 1/2)"
# ------------------------------------------------------------
# 步骤 2:标签分布统计(语义类型 Top-N 与 CUI 长尾检查)
# ------------------------------------------------------------
print(df["type"].value_counts().head(10)) # 语义类型频次
print((df["cui"].value_counts() <= 2).mean()) # 长尾:仅出现 1-2 次的概念占比
# ------------------------------------------------------------
# 步骤 3:构建 CUI -> 同义词列表 候选词典
# 前置:下载 UMLS 2017AA Metathesaurus(RRF 格式,需 NLM UMLS License,
# https://www.nlm.nih.gov/research/umls/),解压出 MRCONSO.RRF
# ------------------------------------------------------------
from collections import defaultdict
def build_umms_lexicon(mrconso_path):
"""从 MRCONSO.RRF 提取英文概念名称,构建 CUI -> [name, ...]。
MRCONSO 每行 22 列,第 1 列 CUI、第 2 列语言(ENG)、第 14 列名称字符串。"""
lexicon = defaultdict(set)
with open(mrconso_path, encoding="utf-8") as f:
for line in f:
cols = line.rstrip("\n").split("|")
if cols[1] == "ENG":
lexicon[cols[0]].add(cols[13])
return {cui: sorted(names) for cui, names in lexicon.items()}
# lexicon = build_umms_lexicon("2017AA/META/MRCONSO.RRF")
# 缺少 UMLS License 时的替代方案:使用公开的同义词资源
# (如 SapBERT 官方仓库发布的 UMLS 处理产物)并在论文中声明来源。
§6.4 PyTorch DataLoader
import torch
from torch.utils.data import Dataset, DataLoader
class MedMentionsDataset(Dataset):
"""mention 级数据集:输出 (上下文窗口, 提及文本, 正例 CUI)。
前置条件:已用 §6.3 的 parse_pubtator 得到 docs/mentions;
pmid_file 传入官方 *_pmids_tr/dev/test.txt 之一,保证划分对齐。"""
def __init__(self, docs, mentions, pmid_file, window=64):
keep = set(Path(pmid_file).read_text().split())
self.samples = [m for m in mentions if m["pmid"] in keep]
self.docs, self.window = docs, window
def __len__(self):
return len(self.samples)
def __getitem__(self, i):
m = self.samples[i]
text = build_doc_text(self.docs[m["pmid"]])
left = max(0, m["start"] - self.window)
right = min(len(text), m["end"] + self.window)
context = (text[left:m["start"]] + " [ENT] " + text[m["start"]:m["end"]]
+ " [ENT] " + text[m["end"]:right])
return {"context": context, "mention": m["segment"], "label": m["cui"]}
train_loader = DataLoader(
MedMentionsDataset(docs, mentions,
data_root / "corpus_pubtator_st21pv_pmids_tr.txt"),
batch_size=32, shuffle=True, num_workers=2)
batch = next(iter(train_loader))
print(batch["context"][0][:200]) # 上下文示例(提及以 [ENT] 标出)
print(batch["label"][:4]) # 正例 CUI(bi-encoder 训练的查询-正例对)
面向 bi-encoder 训练的两点扩展:其一,负采样应从"全候选词典"而非"batch 内标签"抽取,否则模型学不会区分百万级候选中的易混淆同义词对;其二,window 参数(默认 64)是精度-算力的直接旋钮,句级消歧通常需要至少覆盖缩写展开位置,建议用 dev 集扫描 32/64/128/256 取最优点,并将选定值写入实验配置而非代码常量。
§6.5 坑点清单:8 个真实失败模式
⚠️ 坑点 1:PubTator 双分隔符格式,pandas 一把读必然失败(分类:预处理陷阱)
问题:语料在同一文件里混排两种结构——文档头行用竖线分隔(
PMID|t|...),提及行用制表符分隔(五列),中间还有空行。用pd.read_csv或按单一分隔符split()处理会把两类行搅在一起。
症状:ValueError: Expected 6 fields, saw more/less;或 DataFrame 列全部错位,出现以|t|、|a|开头的"脏行"。
解决:
- 简单方法:逐行判断——含
|t|/|a|的行按竖线split("|", 3),否则按\tsplit("\t")(§6.1 的parse_pubtator已实现)。- 进阶方法:用正则
^\d+\|t\|/^\d+\|a\|先分流头行与提及行,再对提及行做\t拆分与int()类型转换,转换异常即记录坏行。- SOTA 方法:直接使用 HuggingFace 镜像
bigbio/medmentions(内置解析器),或社区维护的 BELB 等标准化加载器,省去自维护解析逻辑。
参考:官方 README 格式说明;bigbio/medmentions
⚠️ 坑点 2:字符偏移基于"标题+空格+摘要"拼接串,而非摘要本身(分类:预处理陷阱)
问题:StartIndex/EndIndex 是"标题 + 空格 + 摘要"整体字符串上的 0-based 索引。若只在摘要文本上切片,所有偏移会整体平移(差值 = 标题长度 + 1),提取出的片段与标注文本完全对不上。
症状:text[start:end] != MentionTextSegment的比例接近 100%;下游模型训练能跑通但标签全错,指标异常低且训练曲线发散。
解决:
- 简单方法:严格按
title + " " + abstract拼接后再切片(§6.3 步骤 1 的断言校验为 0 才继续)。- 进阶方法:把提及映射回摘要局部坐标时,统一减去
len(title) + 1,并抽样 100 条做segment == abstract[lo:hi]校验。- SOTA 方法:在解析器里内置"偏移-文本双向校验",任何一条不匹配即 fail-fast,把校验固化进 CI。
参考:官方 README(明确写了偏移基于拼接串)
⚠️ 坑点 3:full 版与 st21pv 版混用,跨论文指标不可比(分类:评估误用)
问题:同一份"MedMentions"有两个官方口径——全版(>300 万候选概念、352,496 提及)与 st21pv(约 232.7 万候选、203,282 提及、21 语义类型)。不同论文选用不同口径,甚至同一模型在两口径下指标相差悬殊。
症状:复现论文数字对不上(例如 BioSyn 类模型在全版候选集上直接 OOM,而其在 st21pv 上为 70+);综述表格里同一方法出现两个"矛盾"的准确率。
解决:
- 简单方法:复现前先确认论文用的是哪个文件(
corpus_pubtator.txt还是corpus_pubtator_st21pv.txt)与哪套候选集。- 进阶方法:在自己的结果表中为每个数字标注"版本 + 候选集 + gold span/end-to-end"三元组元数据。
- SOTA 方法:两个口径都跑,作为模型在不同本体压力下的敏感性分析(Yuan et al. 2021 与 ResCNN 论文即按此惯例分别报告)。
参考:arXiv:2010.11253;arXiv:2109.02237
⚠️ 坑点 4:把实体链接当闭集分类做——42% 的测试概念根本没在训练集出现过(分类:标签理解)
问题:st21pv 测试集约 42% 的概念不在 train 中、约 38% 不在 train+dev 中。softmax 分类头"类别数 = 训练概念数"的做法在这些样本上结构性无效。
症状:分类式模型在 seen 子集上表现尚可,整体 acc@1 却远低于稠密检索式基线;对 unseen 提及一律输出训练集高频概念。
解决:
- 简单方法:改用"提及表示 vs 概念同义词表示"的最近邻检索(bi-encoder),候选集覆盖本体全集而非训练集概念。
- 进阶方法:用 UMLS 同义词对做表示预训练(SapBERT 范式),再在 MedMentions 微调;按 seen/unseen 分组分别报告指标。
- SOTA 方法:clustering-based 推理(文档内提及互相投票)或生成式链接器,对 unseen 概念的召回进一步提升(Yuan et al. 2021 在 gold spans 下整体 74.1、加类型 79.1)。
参考:arXiv:1902.09476(unseen 统计);arXiv:2010.11253
⚠️ 坑点 5:自行重划分引发文档级泄漏(分类:数据泄漏)
问题:部分工作为"平衡类别"按提及级重新划分数据。同一篇摘要的多个提及分散到 train/test 后,上下文、作者风格、概念搭配完全泄漏; MedMentions 抽自连续时间窗,系列论文间的概念重复还会带来文档间泄漏。
症状:自划分数值比官方划分高出 10-20 个点且无法被他人复现;审稿人用官方划分复测后结果塌方。
解决:
- 简单方法:永远使用官方
pmids_tr/dev/test文件划分。- 进阶方法:如需内部交叉验证,只在 train 内做文档级 K 折,并保持每折 unseen 概念比例稳定。
- SOTA 方法:报告官方划分结果为主、内部 CV 为辅,并显式声明未触碰 test 集。
参考:官方仓库;arXiv:2010.11253(评测协议)
⚠️ 坑点 6:候选概念索引内存爆炸(BioSyn 在全版上直接 OOM)(分类:工程陷阱)
问题:全版候选集超过 300 万概念,若每概念编码多个同义词,稠密向量数可达千万级;768 维 fp32 向量每百万条约 3 GB(本页推算:1,000,000 × 768 × 4 B ≈ 2.9 GB)。朴素暴力检索在常规单卡上不可行——ResCNN 论文明确报告 BioSyn 框架在 MedMentions 全版候选下 OOM。
症状:评估阶段进程被 OOM-killer 杀死;或为省内存降 batch 后评估耗时以天计。
解决:
- 简单方法:切到 st21pv 口径(候选减约 20%+)或对候选做语义类型预过滤。
- 进阶方法:向量 fp16 存储 + FAISS
IndexFlatIP/IndexIVFPQ近似检索,先把候选缩到 top-100 再精排。- SOTA 方法:两级检索(bi-encoder 粗排 + cross-encoder 精排),或类型感知的分桶索引(gold types 下加类型先验可再涨约 5 个点,见 Yuan et al. 2021)。
参考:arXiv:2109.02237(OOM 实证);arXiv:2010.11253
⚠️ 坑点 7:UnknownType 与极端长尾概念的训练策略(分类:偏倚陷阱)
问题:全版语料中凡不对应 2017AA Active 概念的提及都标为 UnknownType;同时 34,724 个概念中绝大多数只出现个位数次数。把它们与高频概念无差别混入训练,会同时污染类型分布与链接排序。
症状:模型对 UnknownType 提及强行输出某个真实 CUI;低频概念的召回近乎为零但宏观 acc@1 被高频概念"撑高",掩盖失效。
解决:
- 简单方法:评测前明确声明 UnknownType 提及的处置(剔除或单列),训练时将 UnknownType 作为独立类或过滤。
- 进阶方法:对长尾概念做负采样加权/类平衡损失;按概念频次分层报告指标(head/torso/tail)。
- SOTA 方法:用同义词对自监督预训练(SapBERT/BioSyn 范式)让低频概念从词表结构中获益,而非仅靠语料内出现次数学习。
参考:arXiv:1902.09476(标注协议);arXiv:2010.11253
⚠️ 坑点 8:同 span 多概念与 Hits@1 口径差异(分类:评估误用)
问题:MedMentions 中同一字符区间可对应多个合法 CUI(缩写与多概念歧义),而部分链接方法(如 BioSyn/SapBERT 的检索实现)以"命中同义词"返回,一个同义词串可能对应多个实体。评测脚本若未对齐口径,会系统性高估或低估。
症状:同一模型权重在不同论文的复测表里相差数个点;带†(Hits at one synonym)标记的数字与严格 acc@1 混排后被直接比较。
解决:
- 简单方法:固定"gold span + 严格 acc@1(返回唯一 CUI)"作为主指标,同 span 多概念按任一命中记对或多标签宏平均,二选一并声明。
- 进阶方法:同时报告 acc@1 与 acc@5,并对 seen/unseen、有类型/无类型四种切面分别统计。
- SOTA 方法:采用 Yuan et al. 2021 的协议(gold spans / gold spans+types 双设定,gold types 下 Clustering-based 达 79.1),便于与主流表格对齐。
参考:arXiv:2010.11253(Table 2 及†口径注释)
§6.6 数据增强
| 策略 | 做法 | 风险评估 |
|---|---|---|
| ✅ 上下文窗口滑动 | 同一提及取多个左右窗口 | 安全,等价于天然数据扩充 |
| ✅ 同义词替换(概念级) | 用 UMLS 同义词替换提及文本、标签不变 | 安全,与 SapBERT 预训练思想一致;注意替换后重新计算偏移 |
| ✅ 概念名称对预训练 | 用 UMLS 同义词对做对比学习,语料内标注留作微调 | 安全,已被 SapBERT/BioSyn 验证有效 |
| ❌ 字符截断/拼接后不更新偏移 | 对拼接串做任何插入删除而标注偏移不动 | 标注整体错位,训练即报毒(关联坑点 2) |
| ❌ 提及级随机重划分 | 为"平衡类别"打散文档重分 train/test | 文档级泄漏,指标虚高(关联坑点 5) |
| ❌ LLM 摘要改写做增强 | 生成"新摘要"但概念集合未重新标注 | 引入未标注/错误标注的概念提及,标签噪声不可控 |
增强策略的共同底线:任何改变文本的操作都必须同步更新偏移标注(或干脆在增强前把标注转换为 span 文本对、增强后再重新对齐)。这也是为什么"概念级替换"比"字符级扰动"更适合本语料——替换单位与标注单位一致,偏移重算规则简单可控。
§6.7 模型推荐
| 模型 | 范式 | MedMentions 相关结果 | 适用场景 | 代码 |
|---|---|---|---|---|
| N-gram TF-IDF | 稀疏检索 | gold spans 50.9(全版候选,Yuan et al. 2021 复测) | 快速基线、无 GPU 环境 | 自实现 |
| Logeswaran et al. 2019(Independent) | bi-encoder 零样本 | gold spans 72.8 | 零样本链接研究 | 论文复现 |
| BioSyn(Sung et al. 2020) | 同义词边缘化 + bi-encoder | 72.5(Yuan et al. 复测);全版候选曾 OOM | 类型多样、同义词资源丰富场景 | dmis-lab/BioSyn |
| SapBERT(Liu et al. 2020) | UMLS 同义词对自对齐预训练 | 69.8(Yuan et al. 复测);zero-shot 迁移强 | 需要跨数据集泛化 | HuggingFace cambridgeltl/SapBERT-* |
| Clustering-based(Yuan et al. 2021) | 文档内提及聚类推理 | gold spans 74.1 / +types 79.1 | 文档级一致性要求高 | 论文配套代码 |
| ResCNN(arXiv:2109.02237) | 轻量残差 CNN 排序 | 全版候选 53.5-55.0,速度显著优于 BERT 系 | 资源受限、低延迟推理 | 论文配套 |
上表数字分别来自 arXiv:2010.11253 与 arXiv:2109.02237 的自报告/复测,口径不完全一致(候选集、是否加 gold types、
†同义词命中口径),不可直接横向排名,详见 §8.1 的协议说明。
§6.8 硬件需求
| 阶段 | 最低配置 | 推荐配置 | 瓶颈说明 |
|---|---|---|---|
| 解析与统计(§6.1-6.3) | 任意 CPU + 4 GB 内存 | 无特殊要求 | 纯文本处理,免费 Colab 即可 |
| 候选词典构建(UMLS RRF) | 16 GB 内存 | 32 GB 内存 | MRCONSO 单文件较大,流式读取 |
| bi-encoder 微调 | 1 × 16 GB 显存 | 1 × 24-40 GB 显存 | batch 内难负例挖掘吃显存 |
| 候选向量索引(全版) | fp16 + FAISS IVF,约 8-12 GB 内存 | 64 GB 内存工作站 | 300 万概念 × 多同义词向量(本页按 768 维推算) |
| 近似检索评估 | 单卡即可 | CPU/GPU 混合 | FAISS IVFPQ 可压到原体积 1/8 以下 |
表中候选索引内存为按 768 维 fp32/fp16 的推算量级(帮助规划),非官方数字;实际占用取决于同义词表规模与向量维度(如 384 维蒸馏模型约减半)。验证方式:先用 10 万候选试建索引,按线性外推估算全量。
§6.9 评估指标代码
# ------------------------------------------------------------
# acc@1 / acc@5 + seen/unseen 分组评估(链接任务的黄金协议)
# 输入:retriever 为已编码好的候选索引;queries 为测试提及表示
# ------------------------------------------------------------
import numpy as np
def evaluate(retriever, test_mentions, train_cuis, topk=5):
hits1, hits5, seen1, unseen1 = [], [], [], []
for m in test_mentions:
ranked = retriever.search(m["context"], topk=topk) # 返回 CUI 列表
h1 = ranked[0] == m["cui"]
hits1.append(h1)
hits5.append(m["cui"] in ranked)
(seen1 if m["cui"] in train_cuis else unseen1).append(h1)
report = {
"acc@1": float(np.mean(hits1)),
"acc@5": float(np.mean(hits5)),
"acc@1_seen": float(np.mean(seen1)) if seen1 else None,
"acc@1_unseen": float(np.mean(unseen1)) if unseen1 else None,
"n_unseen_ratio": len(unseen1) / len(hits1), # 与官方约 42% 对照
}
return report
# 使用要点:
# 1) train_cuis 由训练划分的 CUI 集合构建,用于 seen/unseen 分组;
# 2) n_unseen_ratio 应接近官方统计(st21pv test 约 42%),偏差大说明划分用错;
# 3) 追求与 Yuan et al. 2021 对齐时,评估输入使用 gold mention spans。
指标解读的两个提醒:acc@1 的宏观值会被高频概念主导,发布结果时 seen/unseen 两个切面必须同表呈现(unseen 掉点多少是衡量"真泛化"的核心信号);acc@5 与 acc@1 的差值则反映"检索空间质量"——差值小说明排序已到瓶颈,差值大说明目标概念在候选前 5 内但排序失准,二者对应的改进方向完全不同。
§6.10 MLOps 笔记
- 数据版本固定:语料冻结在 2021-11-09 的仓库状态;在 DVC/数据清单中记录 git commit 哈希,避免上游仓库未来变更(尽管概率极低)导致的不可复现。
- 本体版本绑定:训练与评测的全部 CUI 操作绑定 UMLS 2017AA;跨版本合并 CUI 会让新旧实验数字失去可比性。
- 划分即代码:把
pmids_tr/dev/test文件纳入版本控制,评测脚本启动时校验文档集合哈希(关联坑点 5)。 - 指标元数据:每次评估落盘"版本口径 + 候选集 + gold/end-to-end + seen/unseen"四元组(关联坑点 3、8),便于自动汇总。
- 合规自动化:CC0 无需任何申请流程,但若管线合并 UMLS 原表,需在数据血缘中记录 UMLS License 的获取与授权主体(NLM 要求签署电子协议)。
- CI 中的数据契约:把 §9.2b 的三项自检(偏移一致性、划分完整性、量级对照)固化为 CI 步骤,任何数据文件的意外变动都会在合并前被拦截。
- 可复现性快照:训练/评测记录中保存(语料 commit 哈希 + UMLS 版本 + 候选词典构建日期)三元组,任一缺失都会让后续复现退化成考古。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 文本载体偏倚 | 仅标注标题与摘要,不含正文;全文中的实体信息(方法细节、结果数字)缺席 | 高 | 需要全文信息时配合 CRAFT/BC5CDR 等全文语料使用 |
| 时间窗偏倚 | 抽样窗口为 2016-01 至 2017-01,热点学科(肿瘤、基因组学)概念密度偏高 | 中 | 评估学科覆盖面时按语义类型分层统计 |
| 语言偏倚 | 仅英文文献 | 中 | 跨语言场景需另行构建,或使用多语 UMLS 映射 |
| 单通道标注 | 无全量双标,recall 层面漏标不可内部估计 | 高 | 高召回应用中用多来源数据交叉验证 |
| 长尾概念稀疏 | 绝大多数概念仅个位数提及,尾部分布不可靠 | 高 | 频次分层评估;同义词预训练补强(见坑点 7) |
| 学科密度不均 | 高产概念类别(疾病/药物/基因)与冷门类别(医疗设备、职业实体)密度差异大 | 中 | 按语义类型分层设计评测与训练采样 |
| 本体冻结 | 概念体系冻结于 UMLS 2017AA,新药新病名缺位 | 中 | 保持 2017AA 口径闭环;跨版本使用需官方映射(见 §4.5) |
§7.2 标注质量
官方质量证据是抽样复审:8 篇文献 469 个概念、2 名生物学家独立复审、一致率 97.3%,用于估计标注精确度(arXiv:1902.09476)。需要清醒认识的三点:其一,这是精确度侧证据,漏标(recall)没有量化;其二,样本量小(占语料约 0.2%),置信区间宽;其三,"穷尽标注 + 单通道"意味着某些复杂句中的概念提及可能被系统性跳过。社区后续工作(如 BELB 生态)将其当作"精确度高、召回不保证"的基准使用。
对下游的三条操作建议:① 以 MedMentions 为评测集时,把 97.3% 视为"指标天花板约为 97-98 点"的参照——任何显著超过该区间的自报结果应优先怀疑口径问题而非模型飞跃;② 以它为 NER 训练集时,建议配合后处理规则验证 span 边界的自然语言合理性;③ 需要高 recall 场景(如安全监测)时,用多模型集成或人工抽检补齐召回证据。
§7.3 泛化性评估
| 目标场景 | 失效风险 | 证据 |
|---|---|---|
| 临床病历文本(非正式、缩写混乱) | 高 | 语料全部来自期刊摘要,语言风格与病历差异大 |
| 患者论坛/社交媒体 | 高 | COMETA 论文专门指出文献语料在消费级健康文本上域移严重 |
| 2017 年后的新概念(新药、新冠后术语) | 高 | 本体冻结于 2017AA,新概念不在候选集内(§7.1 本体冻结) |
| 非英文文献 | 高 | 仅英文抽样 |
| 病历/临床叙述文本 | 高 | 语料无临床文档;缩写习惯与句式与期刊摘要差异大 |
| 学术摘要内的新话题 | 中 | 时间窗偏倚导致 2016-2017 热点之外的领域概念覆盖偏弱 |
§7.4 伦理
语料只包含已公开发表、可自由访问的论文摘要,不含患者记录、病例图像或任何个人身份数据;CC0 许可意味着作者已将其贡献至公共领域。基于该语料训练的模型不直接接触患者信息,但也因此不能假设其学到病历语境的处理能力——把文献模型直接用于临床文本是常见误用(§7.3 第一行)。
一个仍需留意的伦理边界:摘要中偶尔出现的罕见病例描述(个案报告类文献)虽经发表同意,被模型批量抽取后可能形成对可识别人群的统计画像;在面向公众的产品中使用该类模型时,建议对单文档概念画像的对外输出做聚合与免责处理。
§7.5 公平性
语料反映的是英文期刊文献生态:研究地缘、期刊准入与学科话语权的分布会传导进概念频率,非英语世界的临床实践与本土药物(如传统药物条目)覆盖薄弱。在跨语言或全球健康场景使用时,应把"英语文献中心"作为已知约束声明。
可操作的公平性检查:对模型输出做按概念类别的错误率分解(如罕见病 vs 常见病、区域特有药物 vs 全球性药物),把"哪些类别系统性地更差"写进模型卡;当业务面向非英语人群时,先用小规模本地标注验证错误模式,再决定是否上线,而不是默认文献域精度可以外推。
§7.6 数据漂移
医学词汇的半衰期显著:2017AA 之后 UMLS 每半年一版,概念合并、拆分与新增持续发生;语料文本窗口(2016-2017)也与当下文献热点存在温差。固定基准的价值在于历史可比性,代价是"现实覆盖度"随时间衰减——评测结果应表述为"在 UMLS 2017AA 体系上的能力",而非"当前医学词汇上的能力"。
监控漂移的可行做法:对线上系统的未命中提及(无法链接到 2017AA 候选集的文本片段)建立月度采样与人工归类流程;当"新概念未命中率"持续上升时,说明现实词汇与 2017AA 的差距已影响业务,此时应考虑在 2017AA 之外维护增量别名词典,或迁移到以新版 UMLS 重新标注的后继资源,同时保留 2017AA 口径做历史对比。
§7.7 DAIMS 数据质量评估
以下 24 项按 DAIMS 检查表逐项核验,评分为 ✅=1、⚠️=0.5、❌=0 的加权和:
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | PubTator 单文件行式结构,一提及一行,可直接展开为关系表 |
| 2 | 唯一标识 | ✅ | PMID + 字符偏移可唯一确定提及;CUI 唯一标识概念 |
| 3 | 特殊字符 | ⚠️ | 提及文本含希腊字母、上下标残留等,跨编码处理需谨慎 |
| 4 | 重复行 | ✅ | 无冗余重复;同 span 多行属多概念歧义,语义明确 |
| 5 | 缺失编码 | ✅ | 非Active 概念以 UnknownType 显式编码,非静默缺失 |
| 6 | 标签标识 | ✅ | TUI + CUI 双层标签,类型与概念可分离建模 |
| 7 | 罕见类分组 | ⚠️ | 长尾概念无官方分组,需自行按频次分层 |
| 8 | 偏倚评估 | ⚠️ | 论文未附系统性偏倚分析,需自行做学科/时间窗诊断 |
| 9 | 数据字典 | ✅ | README 明确定义各字段语义与偏移基准 |
| 10 | 信息性缺失解释 | ✅ | UnknownType 的产生机制在论文与 README 中有明确说明 |
| 11 | 设备记录 | ❌ | 纯文本语料,无设备级元数据(不适用但无替代字段) |
| 12 | 共线性 | ✅ | 单表标注结构,无高维共线问题 |
| 13 | 编码映射 | ⚠️ | CUI → 概念名称/ICD/SNOMED 映射需另取 UMLS(License 门槻) |
| 14 | 时间戳处理 | ⚠️ | 语料仅含文献发表窗口,无事件时间戳字段 |
| 15 | 划分建议 | ✅ | 官方固定文档级划分随数据发布,社区统一沿用 |
| 16 | 泄漏讨论 | ⚠️ | 概念跨划分(dev/test 仅约 57.5% 在 train)官方有统计但未展开讨论防泄漏实践 |
| 17 | 标签分布 | ⚠️ | 未随语料发布逐类型频次表,需自行统计 |
| 18 | 测量偏倚 | ⚠️ | 单通道标注的漏标率无法从数据内部估计 |
| 19 | 外部验证建议 | ✅ | 论文与后续文献提供了与 BC5CDR/NCBI 等数据集的对比框架 |
| 20 | 版本记录 | ⚠️ | 语料无正式版本号,只能以 git 时间戳(2021-11-09)锚定 |
| 21 | 预处理脚本 | ❌ | 官方未提供解析/预处理代码(仅有 baseline 指标描述) |
| 22 | 合规要求 | ✅ | CC0 1.0,零门槛合规 |
| 23 | 多模态对齐 | ✅ | 单模态纯文本,无对齐负担 |
| 24 | 去标识化 | ✅ | 公开发表摘要,无 PHI,天然去标识 |
DAIMS 评分:17.5 / 24
评分解读:良好——标识、字典、划分、合规四大基础项齐备,主要失分在"生态配套":无官方预处理脚本、无版本号、无标签分布表、映射需要额外 License。这是一份"数据本体质量高、工程配套靠社区"的语料。
对你意味着什么:可以直接把它当训练/评测主干,但计划里必须为三件事预留工作量——自己写并测试 PubTator 解析器(含偏移校验,§6.1-6.3 可直接复用)、获取 UMLS 2017AA 以补齐概念名称与映射(License 申请是流程性等待)、按概念频次分层设计评测报告(宏观指标会掩盖长尾失效)。若团队无 UMLS License 管理带宽,改用公开同义词资源并显式声明口径。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| NCBI-disease | NCBI(美国国家生物技术信息中心) | 疾病实体链接 acc@1 | SapBERT(仅 UMLS 同义词对预训练、未在目标集微调)92.0,对比监督 SOTA BioSyn 91.1 | 零样本设定,无内部基线可比 | UMLS 表示预训练可直接迁移到疾病链接任务(Liu et al., 2021, SapBERT) |
| BC5CDR-d | 北卡罗来纳大学教堂山分校(CDR 任务组) | 化学/疾病实体链接 acc@1 | 同上 zero-shot SapBERT 93.5,对比监督 BioSyn 93.2 | 零样本设定 | 文献摘要预训练表示在全文任务上依旧成立 |
只收录有论文支撑的条目;MedMentions 内部指标与外部指标因任务与候选集不同不可直接相减,"相对内部变化"列以定性说明为准。
§8 基准性能与生态
§8.1 排行榜
下表的价值不在"排名"而在"口径":所有数字统一到 gold mention span + 全版候选设定,是为了给读者一条纵向方法演进的清晰线索;任何复制到论文、报告中的数字,请回到"完整引用"列的原始论文核对口径后再用。
以下为 gold mention span 输入下的实体链接结果(全版 UMLS 候选口径,均引自 Yuan et al. 2021 的统一复测表,arXiv:2010.11253):
| 排名 | 模型 | 性能(acc@1,仅 gold spans) | 性能(gold spans + gold types) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|
| 1 | Clustering-based | 74.1 | 79.1 | 2021 | 文档内提及聚类联合推理 | Yuan, Z., et al., 2021. Clustering-based Inference for Biomedical Entity Linking. arXiv:2010.11253. | 论文声明开源 |
| 2 | Independent(zero-shot) | 72.8 | 76.8 | 2019 | 无监督候选打分 + 零样本架构 | Logeswaran, L., Chang, M.-W., Lee, K., Toutanova, K., 2019. Zero-Shot Entity Linking with Invisible Entity Lexicons. NAACL. | — |
| 3 | BioSyn | 72.5† | 77.0† | 2020 | UMLS 同义词边缘化训练 | Sung, M., et al., 2020. Biomedical Entity Representations with Synonym Marginalization. NAACL. | dmis-lab/BioSyn |
| 4 | SapBERT | 69.8† | 74.1† | 2020 | UMLS 同义词对自对齐预训练 | Liu, F., Shareghi, E., Meng, Z., Basaldella, M., Collier, N., 2020. Self-Alignment Pretraining for Biomedical Entity Representations. NAACL 2021. | HuggingFace cambridgeltl/SapBERT-* |
| 5 | TaggerOne | — | 73.8 | 2016 | 半马尔可夫联合识别+归一化 | Leaman, R., Lu, Z., 2016. TaggerOne: joint named entity recognition and normalization with semi-Markov Models. Bioinformatics 32(18). | NLM 官方分发 |
| 6 | N-gram TF-IDF | 50.9 | 67.9 | 2021 | 稀疏字符 n-gram 基线 | Yuan, Z., et al., 2021(同上,作为基线报告) | 自实现 |
数值不可直接比较的原因:① † 为"命中同义词即算对"的口径(一个同义词串可对应多个实体),与严格 CUI 命中不同;② 加 gold types 的设定使用了人工语义类型先验,属另一任务设定;③ 其他论文在全版/st21pv、end-to-end/gold spans 上的数字(如 BioSyn 自报 st21pv 结果、ResCNN 全版候选下 SapBERT 50.4 与 ResCNN 55.0,见 arXiv:2109.02237)与本表口径互不兼容,跨表排名无意义。
补充口径:全版 UMLS 候选、gold spans 设定下的代表性数字(引自 arXiv:2109.02237 的汇总表):
| 模型 | acc@1(全版候选,gold spans) | 说明 |
|---|---|---|
| ResCNN(Self-Attention Pooling) | 55.0 | 轻量 CNN,1.8M 参数 |
| ResCNN(Max Pooling) | 53.5 | 1.7M 参数,CPU 推理速度显著占优 |
| SapBERT(Fine-Tuned) | 50.4 | 110M 参数 |
| BioSyn | OOM | 全版候选下内存溢出,无法出分 |
该表与 §8.1 主表的巨大落差(同一 SapBERT 在不同候选口径下从 69.8 到 50.4)直观展示了"候选集口径"对指标的支配性影响——引用任何 MedMentions 数字前,先核对它的候选集设定。
§8.2 SOTA 总结与选型建议
三条主线清晰:稀疏基线(约 51)→ 零样本/稠密检索(约 70-73)→ 结构化推理(约 74-79)。选型建议:工业管线优先 SapBERT 类预训练权重起步(迁移性最好);报告研究级 SOTA 时对齐 Yuan et al. 2021 协议(gold spans ± types 双设定);资源受限场景考虑 ResCNN 类轻量排序器。零样本与 unseen 概念占比是 MedMentions 区别于其他基准的核心卖点,评测时务必保留 seen/unseen 切面。
按使用目标的差异化建议:做文献检索/概念画像,优先 Clustering-based 思路(文档内提及互相印证,天然契合整篇摘要的输入形态);做跨域通用链接器(病历、社交媒体都要接),优先 SapBERT 预训练 + 目标域微调,MedMentions 只承担"学术域"评测;做端侧/低延迟部署,ResCNN 证明了放弃预训练语言模型也能守住全版候选下的可用精度,性价比路线值得评估。
§8.3 评测协议
官方与社区共识协议:
- 使用官方
pmids_tr/dev/test划分,不重划分; - 主指标 acc@1(可选 acc@5),命中定义 = 返回 CUI 与标注 CUI 完全一致;
- 链接评测以 gold mention spans 为输入;end-to-end(含 span 检测)需单独声明;
- 全版或 st21pv 候选口径二选一并显式声明(同 span 多候选时按 §6.5 坑点 8 的约定);
- seen/unseen 分组报告(以 train 划分内的 CUI 集合定义 seen);
- UnknownType 提及的处置(剔除/单列)需写明;
- 候选词典来源(UMLS 2017AA 官方 RRF 或公开替代品)需披露。
以上任何一条的偏离都会让数字失去与既有表格的可比性;投稿或对外发布前建议把这七条做成 checklist 逐项核对。
§8.4 相关数据集
| 数据集 | 关系 | 差异要点 |
|---|---|---|
| BC5CDR | 常配对使用的全文化学/疾病基准 | 全文标注、类型窄,候选集小几个数量级 |
| NCBI-disease | 疾病归一化经典基准 | 单类型、小词表,适合入门与消融 |
| COMETA | 社交媒体域实体链接 | 语言域偏移大,考验消费级健康文本泛化 |
| GENIA / CRAFT | span 识别为主的全文旅料 | 不以 CUI 全链接为卖点,监督信号类型不同 |
| BELB | 多数据集统一加载生态 | 把上述语料(含 MedMentions)标准化成统一接口 |
| MIMIC 类临床文本组件 | 互补评测域 | 覆盖 MedMentions 缺失的临床病历文本生态 |
搭配建议:MedMentions(文献域、全谱系、百万候选)与 BC5CDR(全文域、窄类型、小候选)几乎是互补的两极——同时在这两者上报告,能让"模型学的是链接能力还是数据集口味"这个问题得到初步回答;再加 COMETA 即覆盖"文献 → 消费文本"的域移轴。三条评测轴齐备后,剩余未覆盖的主要是临床病历域(MIMIC 类语料的文本组件)。
§8.5 关键论文 Top 6
- Mohan, S., Li, D., 2019. MedMentions: A Large Biomedical Corpus Annotated with UMLS Concepts. arXiv:1902.09476. — 数据集本体论文:全版 + st21pv + 划分 + 基线的原始定义。
- Logeswaran, L., et al., 2019. Zero-Shot Entity Linking with Invisible Entity Lexicons. NAACL. — 把 MedMentions 用作开放词表零样本链接的先声。
- Sung, M., et al., 2020. Biomedical Entity Representations with Synonym Marginalization (BioSyn). NAACL 2021. — 同义词边缘化学习概念表示的代表工作。
- Liu, F., et al., 2020. Self-Alignment Pretraining for Biomedical Entity Representations (SapBERT). NAACL 2021. — UMLS 同义词对自对齐预训练,跨基准迁移能力的标杆。
- Yuan, Z., et al., 2021. Clustering-based Inference for Biomedical Entity Linking. arXiv:2010.11253. — 文档级聚类推理,当前 gold-spans 协议下的头部结果与统一复测表来源。
- Lai, et al., 2021. BERT might be Overkill: A Tiny but Effective Biomedical Entity Linker based on Residual Convolutional Neural Networks. arXiv:2109.02237. — 证明轻量 CNN 在全版候选下可行,并实证 BioSyn 类框架的 OOM 边界。
阅读顺序建议:先 1(数据与协议)→ 5(统一复测表与最新协议)→ 4(预训练范式)→ 2/3(方法脉络)→ 6(工程视角);每篇都提供与本文 §8.3 协议可直接对接的实验设定。
§8.6 社区活跃度
- GitHub 官方仓库:312 stars / 31 forks / 10 个 open issues(截至 2026-09-13,chanzuckerberg/MedMentions);2021-11 后无代码更新,处于"冻结但稳定"状态。
- HuggingFace 镜像
bigbio/medmentions提供 datasets 接口;SapBERT 权重在 HuggingFace Hub 持续可下载。 - 无官方排行榜与竞赛挂载;基准活跃度主要体现为新论文持续采用其官方划分做评测。
- 开放 issue 数量少且仓库长期无维护者回复(2021-11 后),使用前请浏览 issue 区确认无影响自身用例的未决问题;数据本体自 2019 年发布以来未见事实性更正公告。
- 基准采用面:从零样本链接(Logeswaran 2019)到表示预训练(SapBERT 2020)再到聚类推理(Yuan 2021),主要方法论文的评测协议均以官方划分为锚,文献脉络连续可查(§8.5)。
§8.7 生态快照
| 资源 | 类型 | 链接 | Star/状态(截至 2026-09-13) | 推荐理由 |
|---|---|---|---|---|
| chanzuckerberg/MedMentions | 官方数据仓库 | https://github.com/chanzuckerberg/MedMentions | 312 stars,冻结 | 唯一权威分发渠道 |
| bigbio/medmentions | HuggingFace 数据集镜像 | https://huggingface.co/datasets/bigbio/medmentions | 社区维护 | 一行 load_dataset 快速接入 |
| dmis-lab/BioSyn | 训练框架 | https://github.com/dmis-lab/BioSyn | 社区活跃 | 同义词边缘化参考实现 |
| cambridgeltl/SapBERT | 预训练权重 | HuggingFace Hub(cambridgeltl 命名空间) | 持续可用 | 开箱即用的强基线表示 |
| NLM UMLS | 概念体系与映射 | https://www.nlm.nih.gov/research/umls/ | 官方 | CUI 名称、同义词与 ICD/SNOMED 映射的合法来源 |
生态的结构性特征:数据本体只有一个权威源(官方仓库),其余资源都是"消费层"(镜像、加载器、预训练权重、映射体系)。这意味着数据真伪容易锚定,而消费层组件的版本选择(如 UMLS 处理产物的口径)才是实验可复现性的主要风险点。
§9 相关资源与引用
§9.1 官方与权威资源
- 官方 GitHub 仓库(数据唯一分发渠道) — 语料、划分列表、格式规范、引用说明。
- arXiv 论文页(arXiv:1902.09476) — 数据集论文全文与版本记录。
- HuggingFace 镜像 bigbio/medmentions — 社区标准化加载接口(NER/NED 任务结构)。
- NLM UMLS 官方站点 — UMLS Metathesaurus 2017AA 下载(需 License)、语义网络文档、CUI 浏览器。
- PubMed — 按 PMID 回溯原文的官方入口。
- Creative Commons CC0 1.0 — 语料许可全文。
- dblp 书目记录 — 论文书目与引用入口。
- FAISS — 候选向量索引的工业标准实现(百万级候选检索的必备组件)。
§9.2 实用教程与工具
- dmis-lab/BioSyn — 同义词边缘化训练框架,含 MedMentions 训练配置。
- HuggingFace
cambridgeltl/SapBERT-*模型卡 — SapBERT 各权重版本与其论文中 MedMentions 评测脚本。 - FAISS 官方文档 — 大规模候选向量索引(IVF/PQ 压缩)的工程参考(关联坑点 6)。
- HuggingFace datasets 文档 —
load_dataset("bigbio/medmentions")的加载配置与任务结构说明。 - 本页 §6.1-§6.3 的解析与校验代码可直接复用为团队内部的数据接入层起点(含偏移一致性断言)。
§9.2b 快速自检脚本清单
接入语料后建议先跑三项自检(均只需 §6.1-§6.3 代码):
- 偏移一致性:
text[start:end] == segment全量断言(应为 0 失败)。 - 划分完整性:三份 pmids 文件的并集 == 语料全部 PMID;三份互斥。
- 量级对照:st21pv 提及数 == 203,282、文档数 == 4,392(对照 §4.3)。
§9.3 BibTeX 引用
引用 MedMentions 数据集本身时,使用官方仓库推荐的论文引用:
@article{mohan2019medmentions,
title = {MedMentions: A Large Biomedical Corpus Annotated with UMLS Concepts},
author = {Mohan, Sunil and Li, Donghui},
journal = {arXiv preprint arXiv:1902.09476},
year = {2019},
url = {https://arxiv.org/abs/1902.09476}
}
若工作依赖 UMLS 概念体系(候选词典、语义类型),建议同时引用 NLM 的 UMLS 通用引用(以 NLM UMLS 引用页 当期格式为准),并在文中注明所用版本为 2017AA。引用版本信息的完整度直接影响他人复现——"用了 UMLS"与"用了 UMLS 2017AA 的 ENG 名称"在候选词典层面是两个不同的实验设定。
§9.4 引用指南
- 引用本页面:
千方病案医数集. MedMentions AI-Ready Wikipedia. https://www.qianfanghub.com/ai-ready-dataset/medmentions/390(含 2026-09-05 审核日期)。 - 论文中报告基准数字时,注明数据版本(full/st21pv)、划分(官方 pmids 文件)、候选集与指标口径(acc@1/acc@5、seen/unseen),并与 §8.3 协议保持一致。
- 引用链推荐:数据集论文(Mohan & Li 2019)必引;若使用了 UMLS 候选词典,加引 UMLS;若数字取自某篇复测表(如 Yuan et al. 2021),应引用复测论文而非转抄第三方转述,避免二手数字以讹传讹。
§10 AI 使用声明卡
§10.1 使用的 AI 模型列表
| 模型/工具 | 用途 | 参与范围 |
|---|---|---|
| 大语言模型(CodeBuddy Code 智能体) | 条目撰写 | 检索结果整合、正文起草、代码示例生成 |
§10.2 AI 参与范围说明
AI 负责基于公开检索结果进行事实整合、结构组织与代码示例编写;所有规模数字、日期、许可与基准结果均溯源至 §10.3 所列来源;医学背景章节(§2)与质量评估章节(§7)经编辑部交叉审核。AI 未访问任何 MedMentions 原始数据之外的非公开材料。
边界声明:AI 不对原始语料做了解析验证——本页所有代码均基于官方 README 声明的格式规范编写并通过逻辑走查,标注"预期输出"的行以论文报告数字为准;读者首次接入时建议按 §9.2b 的自检清单验证后再进入生产管线。
§10.3 输入来源列表
- Mohan, S., Li, D., 2019. MedMentions: A Large Biomedical Corpus Annotated with UMLS Concepts. arXiv:1902.09476. https://arxiv.org/abs/1902.09476
- CZI 官方数据仓库 README 与格式规范. https://github.com/chanzuckerberg/MedMentions
- dblp 书目记录(CoRR abs/1902.09476). https://dblp.uni-trier.de/rec/journals/corr/abs-1902-09476.html
- HuggingFace 数据集镜像 bigbio/medmentions. https://huggingface.co/datasets/bigbio/medmentions
- Yuan, Z., et al., 2021. Clustering-based Inference for Biomedical Entity Linking. arXiv:2010.11253. https://arxiv.org/abs/2010.11253
- Lai, et al., 2021. BERT might be Overkill (ResCNN). arXiv:2109.02237. https://arxiv.org/abs/2109.02237
- Sung, M., et al., 2020. Biomedical Entity Representations with Synonym Marginalization (BioSyn),含官方代码库 https://github.com/dmis-lab/BioSyn
- Liu, F., et al., 2020. Self-Alignment Pretraining for Biomedical Entity Representations (SapBERT).
- Logeswaran, L., et al., 2019. Zero-Shot Entity Linking with Invisible Entity Lexicons(经来源 5、8 转引核对).
- NLM UMLS 官方文档与语义网络. https://www.nlm.nih.gov/research/umls/
- PubMed 官方站点(原文回溯与抽样窗口核对). https://pubmed.ncbi.nlm.nih.gov/
- Creative Commons CC0 1.0 许可全文. https://creativecommons.org/publicdomain/zero/1.0/
- GitHub 仓库元数据(stars/forks/issues/时间戳,经检索快照获取,截至 2026-09-13). https://github.com/chanzuckerberg/MedMentions
- SNOMED CT 顶层概念公开层级(经 UMLS 文档体系交叉核对).
- FAISS 项目文档(候选索引工程推算的参考依据). https://github.com/facebookresearch/faiss
- SNOMED CT 顶层概念公开层级复核备注(404684003/71388002/123037004/373873005/105590001,经 UMLS 文档体系交叉核对).
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景(语义类型体系、任务定义) | 千方病案医学编辑部 | 对照 UMLS Semantic Network 公开标准逐项核对 | ✅ 已通过/已验证 |
| §4 数据结构与 §6 代码(字段字典、解析与评测代码) | 医疗 AI 数据工程师 | 代码走查 + 偏移校验断言逻辑复核 | ✅ 已通过/已验证 |
| §5 划分与泄漏(官方划分数字) | 医疗 AI 数据工程师 | 与 arXiv:1902.09476 表格逐数核对 | ✅ 已通过/已验证 |
| §8 基准数字(排行榜与口径说明) | 千方病案医学编辑部 | 与 arXiv:2010.11253 / 2109.02237 原表核对 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
初稿由 AI 起草的章节:§1 概览、§3 规格、§6 AI 就绪指南、§8 基准生态、§9 资源与引用;经人工审核修订后发布。AI 起草内容中的全部关键数字均可回溯至 §10.3 来源列表。
修订重点集中在两处:把无来源支撑的规模描述替换为论文可查数字(或整行删除),以及将泛化的工程建议改写为与本数据集口径绑定的操作(如版本口径三元组、自检清单)。未由 AI 起草的 §0、§10 为编辑部固定模板章节。### §10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
§C 结构化数据(JSON-LD)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- biored — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献 / 知识图谱
- craft — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献 / 知识图谱
- s2orc — 共享标签:医疗NLP / 生物医学文献 / 知识图谱
- cometa — 共享标签:医疗NLP / 命名实体识别 / 知识图谱
- ncbi-disease — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献
- jnlpba — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献
- pubtator-central — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献 / 知识图谱
- distemist — 共享标签:医疗NLP / 命名实体识别 / 知识图谱
- umls — 共享标签:医疗NLP / 命名实体识别 / 知识图谱
- bc5cdr — 共享标签:医疗NLP / 命名实体识别 / 生物医学文献
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
