信息速览

DisTEMIST — 西语临床疾病实体标注与 SNOMED CT 链接语料 AI-Ready Wikipedia
INFOBOX
| 字段 | 内容 |
|---|---|
| 数据集名称 | DisTEMIST(西语疾病实体注释语料) |
| 英文全称 | DisTEMIST corpus: detection and normalization of disease mentions in Spanish clinical cases |
| 别名/简称 | DISease TExt MIning Shared Task;DisTEMIST Gold Standard;Distemist |
| 疾病分类(ICD-11) | 全疾病谱:注释实体可对应 ICD-11 第 1—22 章各类疾病(如 1E90 结核病、2A00 恶性肿瘤、5A11 心力衰竭等),并提供 ICD-10 交叉映射 |
| SNOMED CT | 7,303 个唯一编码,覆盖 disorder、finding、morphologic abnormality 层级(2021-07-31 国际版) |
| 数据模态 | 西班牙语临床文本(已发表临床病例报告) |
| AI 任务类型 | 命名实体识别(NER)、实体链接与术语规范化(Entity Linking)、跨本体映射 |
| 样本总数 | 1,000 篇临床案例(训练 750 / 测试 250)+3,000 篇 background 预测集;疾病注释 10,665 个 |
| 数据大小 | 15.8 MB(v5.1 ZIP 压缩包) |
| 数据格式 | UTF-8 纯文本 TXT + TSV 注释 + Brat .ann |
| 许可证 | CC BY 4.0(知识共享署名 4.0 国际) |
| 访问级别 | 开放(Zenodo 直接下载,无需注册) |
| DUO 标签 | NRES(无限制) |
| 语言 | 西班牙语(es);另附 6 语种机器翻译银标准 |
| 首发日期 | 2022-04(entities 训练集发布) |
| 最后更新 | 2023-02(v5.1,测试集金标准公开发布) |
| 发布机构 | 巴塞罗那超算中心(BSC)TeMU 团队 |
| 官方主页 | DISTEMIST: DISease TExt Mining Shared Task |
| 下载地址 | Zenodo 记录 7614764 |
| DOI | 10.5281/zenodo.7614764 |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方训练/测试划分齐全、评估库开源可运行、TSV 格式可直读;扣分项:linking 训练注释仅覆盖 750 篇中的 584 篇,多编码拼接与 EXACT/NARROW 语义关系需自行解析 |
| 页面状态 | published |
§0 E-E-A-T 审核声明
医学审核者:[千方病案医学编辑部] 交叉审核:§2 医学背景(疾病谱与 SNOMED CT 映射解读)、§7 质量评估(偏倚与公平性分析)。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。DisTEMIST 采用 CC BY 4.0 许可通过 Zenodo 开放获取,再分发与使用时须署名并引用官方 overview 论文。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
事实核查声明:本页面全部关键数字在撰写过程中经多轮网络检索核实,来源清单见 §10.3;凡无法核实的信息一律标注"官方未披露"或直接省略,未做推测性填充。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? DisTEMIST 是首个专门面向西班牙语临床文本的疾病标注语料库:1,000 篇经过临床医生遴选的西班牙语临床病例报告,由医疗专业人员逐词标注疾病提及(共 10,665 处),并把每一处提及人工映射到 SNOMED CT 术语编码(7,303 个唯一编码)。它由巴塞罗那超算中心(BSC)组织,作为 BioASQ 2022/CLEF 2022 共享任务赛道发布,采用 CC BY 4.0 许可免费下载。
为什么重要? 全球约 5 亿人以西班牙语为母语,但临床 NLP 资源高度集中于英语。中文团队做西语医疗 NLP 时,几乎找不到带术语规范化的疾病级金标准——DisTEMIST 填补的正是"非英语临床文本 + 受控术语链接"这个组合空缺,并且附带了 MeSH、ICD-10、HPO、OMIM 跨本体映射和 6 语种银标准翻译,可直接支撑跨语言研究。
我能用它做什么? 训练西语疾病命名实体识别(NER)模型;构建临床文本到 SNOMED CT 的实体链接系统;评测术语规范化算法;利用多语言银标准做零样本/跨语言迁移实验;或借助配套 gazetteer(约 11 万 SNOMED CT 概念、约 14.7 万西语术语)快速搭建词典基线。
§1.1 技术摘要
DisTEMIST(DISease TExt MIning Shared Task)语料的建设流程是:先由临床医生从西班牙医学期刊发表的临床病例报告中精选 1,000 篇文档,覆盖心脏病学、肿瘤学、泌尿学、放射学、儿科等多个专科;随后由医疗专业标注团队按官方标注指南人工标注疾病提及(单一标签 ENFERMEDAD),并对每处提及执行 SNOMED CT 编码分配(2021-07-31 国际版),语义关系分为 EXACT(精确对应)与 NARROW(提及比所链概念更具体)两类。语料随机划分为训练集 750 篇与测试集 250 篇,实体链接注释仅覆盖训练集 584 篇(209+375 两部分发布)。10% 语料由两名标注者独立双标,疾病提及标注一致性(pairwise agreement)为 82.3%。官方另经 UMLS Metathesaurus 生成到 MeSH、ICD-10、HPO、OMIM 的交叉映射,并用神经机器翻译+注释投影技术产出英语、葡萄牙语、加泰罗尼亚语、意大利语、法语、罗马尼亚语 6 语种银标准。CLEF 2022 官方评测中,entities 子任务最优 macro F1 为 0.7770(PICUSLab),linking 子任务最优为 0.5657(HPI-DHC)。
§1.2 战略价值
维度一:非英语临床 NLP 的稀缺金标准。 疾病是临床检索与语义索引中最高频的实体类别之一——官方论文引用的统计显示,超过 20% 的 PubMed 检索查询与疾病、异常相关。英语世界的对应资源(如 2010 年 i2b2 语料、NCBI-Disease)已较成熟,但非英语、且针对临床叙事文本的疾病级金标准长期稀缺。DisTEMIST 提供了西语临床病例报告级别、带术语链接的完整标注,是当前构建西语临床 NER/实体链接系统事实上的公共基准。
对中文读者的额外意义:中国与西班牙语世界的医疗 AI 交流正在快速增长(跨境医疗产品、多语言临床系统出海),而团队普遍缺少西语临床文本的处理经验。该语料提供了低成本的练兵场——用 §6 的流水线一天内可完成首跑,把西语 NER/实体链接的完整工程链路走通后再评估投入产出。
维度二:受控术语互操作枢纽。 该语料的价值不止于 NER:所有注释都锚定到 SNOMED CT(临床场景最常用的多语言医学术语系统),并经 UMLS 辐射到 MeSH、ICD-10、HPO、OMIM。这意味着同一批标注可以换算到文献索引(MeSH)、编码报销(ICD-10)、罕见病表型(HPO)与遗传病(OMIM)四种语义空间,适合做术语互操作、本体对齐与临床编码自动化研究。对中文团队而言,其"文本提及 → 受控编码 → 跨本体映射"的三段式数据组织,也可作为中文临床术语规范化数据集设计的参考范本。
§1.3 同类数据集横向对比
| 数据集 | 语言 | 文档规模 | 实体/标注对象 | 术语规范化 | 与 DisTEMIST 的差异 |
|---|---|---|---|---|---|
| DisTEMIST | 西班牙语 | 1,000 篇临床病例 +3,000 篇 background | 疾病(ENFERMEDAD) | SNOMED CT +MeSH/ICD-10/HPO/OMIM 交叉映射 | 本词条主题;全疾病谱 |
| PharmaCoNER | 西班牙语 | 1,000 篇(同一文档集合) | 药物、化学物质、基因/蛋白、疫苗 | 部分子任务提供规范化 | 同文档不同实体类型,可与 DisTEMIST 叠加标注 |
| CodiEsp | 西班牙语 | 1,000 篇(同一文档集合) | 诊断与过程(文档级编码) | CIE-10(ICD-10 西语版) | 同文档做文档级分类,DisTEMIST 做提及级 NER,可互补 |
| CANTEMIST | 西班牙语 | 独立肿瘤学文档集 | 肿瘤形态提及 | 无 SNOMED 链接(以 NER 为主) | 专注肿瘤形态学,文档集不同 |
| Symptemist | 西班牙语 | 1,000 篇(同一文档集合) | 症状、体征与发现 | SNOMED CT | 同文档集的症状版姊妹任务,与疾病标注互不重叠 |
| MedProcNER | 西班牙语 | 1,000 篇(同一文档集合) | 临床操作与过程 | SNOMED CT | 同文档集的操作/过程版姊妹任务 |
| NCBI-Disease | 英语 | 793 篇 PubMed 摘要 | 疾病提及 | MeSH/OMIM | 文献摘要级而非临床叙事级,规模更小 |
| BC5CDR | 英语 | 500 篇 PubMed 摘要 | 疾病+化学物质 | MeSH | 生物医学文献域,非临床域 |
对比小结:西语家族(前五行)共享文档集合或方法论,构成"同文档多实体类型"的标注矩阵,适合做联合学习;英语对照组(NCBI-Disease、BC5CDR)则提供了跨语言对比的锚点。DisTEMIST 是该矩阵中唯一同时具备"临床叙事+疾病全谱+SNOMED CT 链接"三要素的语料。
§1.4 版本时间轴
| 时间 | 事件 |
|---|---|
| 2022-04-01 | DisTEMIST-entities 训练集(750 篇)发布 |
| 2022-04-13 | DisTEMIST-linking 训练集第 1 部分(209 篇)发布 |
| 2022-04-22 | 标注指南 v1 发布(Zenodo DOI 10.5281/zenodo.6458078) |
| 2022-04-25 | DisTEMIST-linking 训练集第 2 部分(375 篇)发布 |
| 2022-04-29 | gazetteer v2.0 发布(DOI 10.5281/zenodo.6458114) |
| 2022-05-10 | 测试集文本发布;2022-05-21 参赛预测截止 |
| 2022-05-25 | 官方评估结果发布 |
| 2022-09-05 至 09-08 | BioASQ @ CLEF 2022(博洛尼亚)报告与 workshop |
| 2023-02-07 | 测试集金标准注释正式公开发布 |
| 2023-02 | 语料包 v5.1(Zenodo DOI 10.5281/zenodo.7614764),当前最新版本 |
时间轴的使用提示:Zenodo 上同名的多个记录(6408476、6500526、6458455、6671292、7614764)对应任务不同阶段的发布,内容差异主要在测试集是否带注释与多语言资源的完整性;只认 v5.1(7614764)即可避免版本混乱,引用旧版仅用于复现历史结果。
§1.5 典型应用场景
- 西语疾病 NER 基准评测:用 750 篇训练集微调 RoBERTa/BERT 类模型,在 250 篇测试集上以官方评估库复现 CLEF 2022 排行榜口径的 macro/micro F1。训练量小(约 40 万词元),单卡数小时即可完成一轮完整实验,适合作为进入西语医疗 NLP 领域的第一个完整项目。
- 临床实体链接与术语规范化:基于 gazetteer 与 UMLS 交叉映射构建候选生成+重排序管线,把疾病提及自动映射到 SNOMED CT 编码。该任务上限明确(冠军 0.5657)且长尾问题突出,适合发表改进工作。
- 跨语言迁移研究:利用 6 语种银标准(机器翻译+注释投影)评测零样本跨语言疾病抽取,或构建多语言临床 NER 预训练基线。银标准仅作训练/探针用途,评估仍以西语金标准为准。
- 术语资源与词典构建:从金标准注释与 gazetteer 中挖掘西语疾病同义表达,扩充临床术语库、缩写词典与检索同义词表;交叉映射文件可直接用于本体对齐基准。
- 教学与原型验证:作为小体量(15.8 MB)、免审批的开放语料,适合 NLP 课程作业、临床文本挖掘原型(如病历结构化 RAG 的实体召回模块)快速验证;从下载到首跑可在一天内完成。
§2 医学背景
§2.1 疾病谱与 ICD-11 映射
DisTEMIST 是全疾病谱语料:注释不限于特定系统或专科,从感染性疾病到恶性肿瘤、慢病均可出现。下表给出语料中高频实体类别与 ICD-11(2024 版 MMS)的对应关系。注意:语料官方术语映射目标是 SNOMED CT,ICD-11 列为本百科为方便中文读者理解的对照层(官方仅提供 ICD-10 交叉映射)。
| 典型实体类别 | 西语示例提及 | ICD-11 编码 | 中文名 |
|---|---|---|---|
| 感染性疾病 | tuberculosis、neumonía | 1B10 / CA40 | 结核病 / 肺炎 |
| 肿瘤 | carcinoma de pulmón、metástasis | 2A00—2F9Z(按部位编码) | 恶性肿瘤(各系统) |
| 心血管疾病 | infarto agudo de miocardio | BA41 | 急性心肌梗死 |
| 心血管疾病 | hipertensión arterial esencial | BA00 | 原发性高血压 |
| 呼吸系统疾病 | asma bronquial | CA23 | 哮喘 |
| 内分泌与代谢病 | diabetes mellitus tipo 2 | 5A11 | 2 型糖尿病 |
| 泌尿系统疾病 | enfermedad renal crónica | GB61 | 慢性肾脏病 |
上表仅示例语料中必然可承载的高频疾病类别;由于语料为全疾病谱设计,注释中还会出现精神障碍、妊娠并发症、先天异常等类别。使用本表做文档级分类标签映射时,建议经 SNOMED CT 编码中转(官方交叉映射提供到 ICD-10 的路径,ICD-10 与 ICD-11 之间再经 WHO 映射表转换),而非从西语文本直接推断。
§2.1b SNOMED CT 映射机制
语料的官方规范化目标是 SNOMED CT 2021-07-31 国际版(该版含超过 350,000 个概念),gazetteer 抽取其中 disorder、finding、morphologic abnormality 三个层级的术语与同义词。映射由医疗专家人工完成,并遵循以下机制:
| 映射机制 | 官方规则 | 示例 | 说明 |
|---|---|---|---|
| EXACT | 提及与所链 SNOMED CT 概念精确对应 | “infarto agudo de miocardio” 对应相应 SNOMED 概念 | 主流情形,训练集 4,819 个唯一编码多数为 EXACT |
| NARROW | 提及所指概念比可用编码更具体时,回退链接到上位概念 | 官方文档原例:“chorioretinal lacunae”(脉络膜视网膜裂隙,SNOMED CT 无此概念)→ 302893000 “Chorioretinal disorder” | 防止无码可链时漏标 |
| 多编码 | 一个提及可链接多个编码,以 “+” 拼接 | 同一提及对应多个可接受概念 | 评估与解析代码时必须按 “+” 切分 |
| 跨本体交叉映射 | 经 UMLS Metathesaurus 自动生成 | MeSH、ICD-10、HPO、OMIM | 自动映射,质量低于人工 SNOMED 映射 |
§2.2 疾病谱简介与流行病学视角
语料文档来源于西班牙医学期刊发表的临床病例报告,专科分布覆盖心脏病学、肿瘤学、泌尿学、放射学、儿科学等。病例报告文体天然偏向罕见病、非典型表现与教学价值高的病例,因此语料中的疾病频率分布不等于西班牙人群的真实流行病学分布(官方未披露注释层面的疾病频率统计,使用者可用 §6.3 的脚本自行统计)。从人群视角看,西班牙语覆盖全球约 5 亿母语人口,西语国家的疾病负担以心血管疾病、肿瘤与慢性非传染性疾病为主,这与病例报告中常见的叙事主题(肿瘤分期与转移、心衰管理、感染抗感染治疗等)一致。中文团队在使用时应记住:该语料代表"书面、教学式"临床叙事,与中文电子病历的口语化、缩写密集风格差异显著。
流行病学推断的边界也要说清楚:同一文档集合被 CodiEsp 用于诊断编码研究、被 DisTEMIST 用于疾病提及抽取、又被 Symptemist 用于症状抽取,说明该批病例在语义层面可多重利用;但文档级样本量(1,000)与无患者级关联的设计决定了它只能支撑模型层面的研究,任何"疾病 X 在西语人群中占比"式的推断都不在本数据集的能力范围内。若需要人群级证据,应转向各国卫生统计或登记队列数据,本语料的角色是语言模型与术语系统的训练与评测底座。
§2.3 临床任务定义
DisTEMIST 定义了两个递进的临床 NLP 任务。任务一(DisTEMIST-entities):疾病提及检测——在 UTF-8 纯文本临床病例中输出所有疾病提及的字符偏移(off0/off1)与文本片段,本质是单类型 NER。任务二(DisTEMIST-linking):疾病提及检测+术语规范化——在任务一基础上为每处提及分配 SNOMED CT 编码,需处理 EXACT/NARROW 语义关系与多编码情形,本质是实体链接(entity linking)。临床语义上,任务一支撑病历结构化、检索召回与队列筛选;任务二支撑临床编码(向 ICD-10 等编码体系迁移)、语义检索与真实世界数据标准化。官方评测对 linking 子任务仅计入 gazetteer v1.0/v2.0 范围内的编码,超出词表的预测不计分。
两个任务的难度差异值得强调:entities 冠军 0.7770 对 linking 冠军 0.5657 的落差(中位数口径落差更大)并非模型能力问题,而是任务结构问题——linking 的标签空间约 11 万概念且测试集出现大量训练未见的编码。给中文团队的建议:把两个任务当成两个项目排期,先在 NER 上拿到稳定基线,再投入链接系统,不要用单一端到端模型硬吃两个目标。
§2.4 患者人群构成
| 维度 | 描述 |
|---|---|
| 数据来源 | 西班牙医学期刊已发表的临床病例报告(与 CodiEsp 同一文档集合) |
| 时间跨度 | 历年发表的病例报告(官方未披露逐篇发表年份分布) |
| 年龄分布 | 官方未披露(病例级人口学信息未结构化发布,散见于叙事文本) |
| 性别分布 | 官方未披露(可从叙事文本抽取,但需自行处理语言学性别标记) |
| 种族/族群分布 | 官方未披露 |
| 就医类型 | 以住院与专科门诊病例叙事为主(病例报告文体决定) |
| 覆盖专科 | 心脏病学、肿瘤学、泌尿学、放射学、儿科学等 |
人口学维度的整体缺席是设计使然而非疏漏:病例报告文体把叙事重心放在临床推理过程,人口学信息零散且非结构化。若研究需要人口学分层数据,可以在文本层面用 NLP 抽取年龄/性别表述自行重建(需处理西语语法性别的干扰),或改用带结构化人口学字段的 EHR 语料。
§2.5 临床价值
对临床信息学而言,疾病提及检测+规范化是病历结构化的第一公里:它把自由文本中的"可能得了什么"变成可计算的概念 ID,进而支撑病种检索、不良事件监测、入组筛选与临床编码辅助。DisTEMIST 的价值在于把这一链条放到了非英语语境下验证:其 82.3% 的标注一致性与 24.6 字符的平均实体长度说明真实临床叙事中的疾病表述远比"一个词对应一个病"复杂(长组合式表述、缩写、嵌套修饰),对中文团队构建中文病历疾病抽取系统具有直接的教训迁移价值——边界判定和术语粒度才是主要难点,而非模型容量。
具体到中文场景的三点迁移:一是"提及级标注先于文档级编码"的路径可直接照搬(先 NER 后规范化,对应中文的 ICD 编码自动化);二是 EXACT/NARROW 的语义关系设计启发中文术语系统处理"无精确码时的上位回退",这在中文 ICD 映射实践中同样常见;三是官方用 gazetteer 限定评估口径的做法,为中文评测集控制标签空间提供了范本。
§2.6 金标准属性
| 属性 | 内容 |
|---|---|
| 划分 | 训练 750 篇 / 测试 250 篇(随机划分);另设 3,000 篇 background 预测集 |
| 标注方式 | 人工实体标注(单一标签 ENFERMEDAD)+人工 SNOMED CT 编码映射 |
| 标注者 | 医疗专业人员团队;文档由临床医生遴选 |
| 一致性 | 疾病提及标注 pairwise agreement 82.3%(10% 语料双人独立标注) |
| 性质 | 金标准(gold standard);多语言版本为银标准(机器翻译+注释投影) |
| 评测约束 | linking 子任务仅计入 gazetteer v1.0/v2.0 范围内的 SNOMED CT 编码 |
金标准属性小结:DisTEMIST 的"金"体现在三层——文本经临床医生遴选、提及经专业人员标注、编码经专家逐条映射;而多语言版本明确降级为银标准并在资源包中分目录存放,杜绝误用。这一"金/银分层"设计是同类共享任务语料中较为严谨的做法,中文团队构建多方言或多语言临床语料时值得借鉴。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 从零训练/评测疾病 NER 与实体链接 | Zenodo v5.1(DOI 10.5281/zenodo.7614764) | 15.8 MB | 唯一同时含训练集、已标注测试集、background 集、多语言资源与交叉映射的完整版本 |
| 复现 CLEF 2022 参赛时点的历史结果 | 早期任务版(Zenodo 6458455 / 6500526) | 1.4 MB | 与 2022-05 评测期状态一致;注意其测试集当时未带注释 |
| 快速接入 Hugging Face 生态做原型 | HF bigbio/distemist 加载脚本 | 在线加载 | 免手工解析 TSV,直接得到 bigbio_kb 结构;但版本固定为 v2.0.0,且需要本地下载 Zenodo 原始包 |
| 构建西语疾病词典与候选生成器 | gazetteer v2.0(Zenodo 6505583) | 9.9 MB | 约 11 万概念、约 14.7 万西语术语,独立于语料包发布,便于单独更新 |
§3.1 模态详情
DisTEMIST 是纯文本单模态语料:每篇文档为一份 UTF-8 编码的西班牙语临床病例报告纯文本(.txt),内容涵盖主诉、现病史、既往史、体格检查、辅助检查、诊断、治疗与随访等标准病例叙事段落。文本特点包括:长组合式疾病表述(平均 24.6 字符/实体)、西语重音字符(á é í ó ú ñ ü)与缩写(如 HTA、DM2、ACV)。所有标注通过字符偏移锚定到原文,与 Brat 标注工具的 .ann 格式兼容。
文体层面有三个对建模有直接影响的特征:其一,病例报告为期刊发表的成文叙事,段落完整、句法规范,句子边界清晰,适合先分句再编码;其二,疾病表述常带修饰链(部位+病理+分期+并发症,如"carcinoma epidermoide de pulmón estadio IV"),边界判定比单词型实体困难;其三,同一疾病在全文中多次出现时表述会变化(全称、缩写、代词回指),标注指南只覆盖有明确疾病语义的显式提及,回指与隐含提及不在标注范围——这是与真实信息抽取需求的主要差距。
§3.2 按子集样本数统计
| 子集 | 文档数 | 疾病注释数 | 唯一 SNOMED CT 编码数 | 句子数 | 词元数 |
|---|---|---|---|---|---|
| 训练集 | 750 | 8,066 | 4,819 | 12,499 | 305,166 |
| 测试集 | 250 | 2,599 | 2,484 | 4,179 | 101,152 |
| 合计(金标准) | 1,000 | 10,665 | 7,303 | 16,678 | 406,318 |
| background 预测集 | 3,000(含测试 250 篇) | 仅测试子集有金标准 | — | — | — |
| linking 训练注释覆盖 | 584(分 209+375 两部分) | — | — | — | — |
| 测试集金标准发布前状态 | 2022-05 至 2023-02 期间为盲测集 | — | — | — | — |
读表要点:训练集与测试集的注释密度高度一致(每篇约 10—11 处),划分无分布漂移;测试集唯一编码 2,484 个、几乎与其注释总数相当,说明测试集编码长尾比训练集更重;linking 训练覆盖行是复现排行榜时最容易忽略的一行——用 750 篇训 NER 没问题,但链接器只能用 584 篇。
§3.3 数据格式清单
| 文件/类型 | 格式 | 内容 |
|---|---|---|
| text_files/*.txt | UTF-8 纯文本 | 临床病例报告正文 |
| subtrack1_entities/*.tsv | TSV | filename、mark、label(ENFERMEDAD)、off0、off1、span 六列 |
| subtrack2_linking/*.tsv | TSV | 在六列基础上增加 codes("+"拼接)与 semantic_rel(EXACT/NARROW) |
| brat/*.ann | Brat 标注格式 | 测试集注释的 Brat 兼容形式 |
| cross-mappings/*.tsv | TSV | SNOMED CT 到 MeSH、ICD-10、HPO、OMIM 的 UMLS 交叉映射 |
| multilingual-resources/ | 目录 | 6 语种(EN/PT/CA/IT/FR/RO)翻译文本与投影注释 TSV |
| DISTEMIST gazetteer | TSV(9.9 MB) | code、term、semantic_tag、mainterm 四列,约 11 万概念、约 14.7 万别名 |
| 标注指南 | PDF(687.2 kB) | 标注与规范化流程、边界判定与编码规则 |
格式要点:TSV 以制表符分隔、首行为列名(v2.0.0 起部分文件补入表头,合并新旧文件时注意跳行);brat 的 .ann 与 TSV 注释内容一致,只是载体不同,做标注可视化调试时用 Brat 更直观;交叉映射与 gazetteer 均为独立 TSV,可脱离语料单独分发。
§3.4 存储大小
当前主版本 v5.1 压缩包 15.8 MB(解压后含文本、注释、多语言资源与交叉映射,官方未披露解压后总大小);gazetteer 单文件 9.9 MB;标注指南 PDF 687.2 kB。即使叠加 gazetteer 与评估库,全套资源也不足 30 MB,可存入任意免费代码仓库或 Colab 会话,是本站收录语料中体量最小的临床金标准之一。体量小不等于信息密度低:40.6 万词元的金标准叙事、10,665 个术语映射与 14.7 万条词表条目的组合,在单位体积的信息价值上远超许多以 GB 计的影像语料。
§3.5 标注方式
标注分四层:人工实体标注(医疗专业人员按指南标注疾病提及,单一标签 ENFERMEDAD,含质量检查流程);人工术语映射(每处提及由专家逐一映射到 SNOMED CT 编码,标注 EXACT/NARROW 关系);自动跨本体映射(人工 SNOMED 映射经 UMLS Metathesaurus 扩展到 MeSH、ICD-10、HPO、OMIM);自动翻译投影(原文与注释经神经机器翻译系统翻译到 6 种语言,注释经投影技术迁移,属银标准)。
四层标注的可信度依次递减:人工两层是金标准,自动两层分别服务于互操作(跨本体映射有 UMLS 质量背书但非人工校验)与多语言探索(银标准,仅作训练增强与探针)。工程上建议在数据加载层就为不同来源的标签打上置信级标记,避免下游把银标准当金标准用(坑点 8)。
§3.6 标注者资质与一致性
标注由医疗专业人员(healthcare professionals)执行,文档遴选由临床医生完成,全程遵循公开标注指南并实施一致性质量检查。官方在 10% 的语料上安排两名标注者独立双标,疾病提及层面的 pairwise agreement 为 82.3%。作为参照,官方论文指出实体更短、更规整的 PharmaCoNER 语料一致性为 93%,而 DisTEMIST 平均实体长 24.6 字符——实体复杂度直接压低一致性,也压低了参赛系统的得分天花板。
解读该数字时还要注意口径:82.3% 是提及层面的 pairwise agreement(两名标注者在 10% 样本上的一致比例),不等于实体级 F1,也不含术语映射层的一致性;引用时不要与其他语料按 F1 报告的 IAA 直接混比。
§3.7 采集与发布周期
语料构建与发布集中于 2021—2022 年(Plan TL 框架项目):2022-04 起分批发布训练资源,2022-05 完成评测,2023-02-07 公开测试集金标准并形成 v5.1 完整包。构成语料的病例报告本身为历年发表的期刊文献,逐篇发表年份官方未披露。
按月的资源节奏回顾:2022-04-01 entities 训练集(750 篇);04-13 linking 第 1 部分(209 篇);04-22 标注指南 v1;04-25 linking 第 2 部分(375 篇)与 gazetteer v1.0;04-29 gazetteer v2.0;05-10 测试文本+background 集;05-21 预测截止、05-25 评估结果;2022-09 CLEF 2022 报告;2023-02-07 测试集金标准与 v5.1 完整包。分批发布的节奏意味着早期下载的旧版包不完整,务必以 v5.1 为准。
§3.8 地域覆盖
文档来源为西班牙医学期刊,术语与书写习惯遵循西班牙半岛用法(peninsular Spanish);由于 CC BY 4.0 与多语言资源的设计,资源面向整个西语世界开放,但拉美西语变体在语料中的占比官方未披露。
对中文团队的实际含义:做面向西班牙市场的产品可直接使用;做拉美市场(墨西哥、阿根廷、哥伦比亚等)时,注意疾病俗称与药品命名习惯的差异(如infarto/ACV 等缩写偏好不同),建议用目标地区小规模标注样本先做术语适配评估,再把 DisTEMIST 作为预训练语料之一。
§3.9 文本处理规格
全部文档为 UTF-8 编码纯文本;标注偏移(off0/off1)为字符偏移,评估按 UTF-8 字符级匹配。平均每篇约 406 个词元(406,318 词元/1,000 篇)、约 16.7 个句子,单篇长度远短于长篇住院病历,适合直接整篇送入 512 token 上下文的 Transformer(西语分词后大部分文档单段可容纳)。
| 文本规格项 | 数值/约定 | 工程影响 |
|---|---|---|
| 编码 | UTF-8 纯文本 | 读文件必须显式 encoding=“utf-8” |
| 偏移基准 | Unicode 码点(字符级) | 禁止 NFC/NFD 转换后直接用原偏移 |
| 平均文档长度 | 约 406 词元/篇 | 512 token 窗口单段可容纳 |
| 平均实体长度 | 24.6 字符(训练集) | 长实体边界是主要误差来源 |
| 平均句数 | 约 16.7 句/篇 | 分句后逐句编码显冗余,推荐整篇编码 |
| 平均注释密度 | 约 10.7 处/篇 | 与多数 NER 语料相当,无极端稀疏 |
§3.10 深度溯源链
| 层级 | 溯源内容 |
|---|---|
| 文档层 | 西班牙医学期刊公开发表的临床病例报告(与 CodiEsp 同一文档集合) |
| 遴选层 | 临床医生按教学/信息价值人工精选 1,000 篇 |
| 标注层 | 医疗专业人员按公开指南双标 10% +全量单人标注+质量检查 |
| 术语层 | SNOMED CT 2021-07-31 国际版人工映射;UMLS 自动交叉映射(MeSH/ICD-10/HPO/OMIM) |
| 资助层 | 西班牙 Plan de Impulso de las Tecnologías del Lenguaje(Plan TL) |
| 发布层 | BSC TeMU 团队经 Zenodo 发布,DOI 可引用、版本可追溯 |
溯源链小结:从期刊文献到可用数据的六层链条中,每一层都有可查证的载体(期刊 DOI、标注指南、Zenodo 版本记录、资助计划公示),这是公共资助数据集的透明度优势;使用者在做数据声明(data statement)时,可以直接把本表映射为 provenance 章节。
§4 数据结构
§4.0 目录树
v5.1 压缩包(distemist_zenodo.zip)解压后的目录结构示意(二级文件名以实际包内容为准,链接训练注释分两部分存放):
distemist/
├── train_set/
│ ├── text_files/ # 750 篇训练集 .txt(UTF-8 西语病例)
│ ├── subtrack1_entities/
│ │ └── distemist_subtrack1_training_entities.tsv # 全量 750 篇疾病提及注释
│ └── subtrack2_linking/
│ ├── distemist_subtrack1_training1_linking.tsv # linking 第 1 部分(209 篇)
│ └── distemist_subtrack2_training2_linking.tsv # linking 第 2 部分(375 篇,需合并)
├── test_annotated/
│ ├── text_files/ # 250 篇测试集 .txt
│ ├── brat/ # Brat .ann 金标准注释
│ ├── subtrack1_entities/ # 测试集 NER 注释 TSV
│ └── subtrack2_linking/ # 测试集 linking 注释 TSV
├── test_background_unannotated/
│ └── text_files/ # 3,000 篇(测试 250 +无注释 background)
├── multilingual-resources/
│ ├── training-text-files/ # 各语种翻译文本
│ └── en/ pt/ ca/ it/ fr/ ro/ # 6 语种投影注释 TSV
└── cross-mappings/ # SNOMED CT → MeSH / ICD-10 / HPO / OMIM
§4.1 DAIMS 字段字典
注释 TSV 的核心字段字典(8 列 DAIMS 口径;linking 注释在 entities 六列基础上增加 codes 与 semantic_rel):
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| filename | 字符串 | 文档名(即 .txt 文件名) | S0004-06142008000100011-1 | 关联文本与注释主键 | 无 | 不适用 | 1,000 个文档名 |
| mark | 字符串 | 提及唯一 ID | TAB1、EXP2 等前缀编号 | 同文档内去重/对齐 | 无 | 不适用 | 每篇从 1 递增 |
| label | 字符串 | 实体类型 | ENFERMEDAD | NER 标签(单类型) | 无 | 不适用 | 恒为 ENFERMEDAD |
| off0 | 整数 | 提及起始字符偏移(含) | 68 | 训练/评估的边界定位 | 双标不一致率约 17.7%(IAA 82.3%) | 无缺失 | 0 至文档长度−1 |
| off1 | 整数 | 提及结束字符偏移(不含) | 93 | 同上 | 同上 | 无缺失 | off0+1 起 |
| span | 字符串 | 偏移对应的原文片段 | carcinoma urotelial | 校验偏移正确性 | 与 off0/off1 可交叉验证 | 无缺失 | 任意西语文本 |
| codes | 字符串 | SNOMED CT 编码,多值以 “+” 拼接 | 302893000 | 实体链接标签 | 语义映射歧义;仅 584/750 篇覆盖 | 无(缺失=该文档无 linking 注释) | gazetteer v2.0 范围内编码 |
| semantic_rel | 字符串 | 编码与提及的语义关系 | EXACT / NARROW | 区分精确/上位链接 | 低(专家判定) | 无缺失 | EXACT、NARROW |
两点使用提示:mark 的前缀(TAB、EXP 等)标识标注工具与批次,跨文件合并时以 filename+mark 为主键即可,前缀本身无语义;span 与 off0/off1 互为冗余校验,任何预处理器都应先跑一遍三者一致性断言,再进入后续流程(参见 §6.1 代码)。
§4.2 标签分布
| 统计维度 | 数值 | 说明 |
|---|---|---|
| 实体类型数 | 1(ENFERMEDAD) | 单类型语料,无需处理类别不平衡 |
| 训练集注释密度 | 约 10.8 个/篇(8,066/750) | 每篇平均约 11 处疾病提及 |
| 测试集注释密度 | 约 10.4 个/篇(2,599/250) | 与训练集接近 |
| 平均实体长度 | 24.6 字符(训练集) | 显著长于一般 NER 实体(PharmaCoNER 为 9.7) |
| 训练集唯一编码数 | 4,819 | 约占 gazetteer 11 万概念库的 4% |
| 唯一编码总数 | 7,303 | 训练∪测试;linking 任务标签空间巨大 |
| 每编码平均提及数(训练) | 约 1.67(8,066/4,819) | 编码长尾显著,高频编码占少数 |
关于 ENFERMEDAD 标签的内部异质性需要特别说明:虽然 label 列只有一个取值,但所链 SNOMED CT 概念分布在 disorder(疾病/障碍)、finding(发现)与 morphologic abnormality(形态学异常)三个语义层级——gazetteer 的 semantic_tag 列记录了这一归属。换言之,"疾病"在临床语境下是连续统而非离散类:肿瘤形态学表述(如 carcinoma)链到 morphologic abnormality,体征表述链到 finding。做细粒度分析或跨数据集映射(如到 ICD-11 的疾病 vs 症状章节)时,必须借助 gazetteer 的 semantic_tag 列还原层级信息。
§4.3 关键统计
金标准全量统计:1,000 篇文档、10,665 个注释、7,303 个唯一 SNOMED CT 编码、16,678 个句子、406,318 个词元。平均每篇约 16.7 句、406 词元、10.7 个疾病注释;平均每句约 0.64 个注释。术语侧:gazetteer v2.0 含约 11 万概念、约 14.7 万西语术语/别名(9.9 MB TSV);交叉映射经 UMLS 生成,覆盖 MeSH、ICD-10、HPO、OMIM 四套体系。
密度对比参考:作为语料库级别的 NER 数据,其注释密度(每千词元约 26 处)高于文献摘要类语料(NCBI-Disease 每篇摘要约 6 处疾病提及),与临床叙事信息密度高的特点一致——这也是为什么在该语料上训练的模型对"密集疾病叙述"场景(如病程记录)泛化更好,而对摘要式的稀疏叙述需要重新校准置信阈值。
§4.4 数据层级
DisTEMIST 的层级结构为:语料库 → 文档(1,000 篇临床病例报告)→ 提及(10,665 处疾病表述)→ 编码(每处提及 1—N 个 SNOMED CT 编码,合计 7,303 个唯一编码)。不存在患者→住院→文档的多级嵌套:每篇文档对应一次独立的病例报告发表,文档间无患者级关联,这也是其与 MIMIC 类 EHR 语料的本质区别。
DisTEMIST 语料层级
├── corpus # 1 个金标准语料库(v5.1)
│ ├── document × 1,000 # 临床病例报告(训练 750 / 测试 250)
│ │ ├── mention × ~10.7 # 疾病提及(合计 10,665)
│ │ │ ├── span # 原文片段(平均 24.6 字符)
│ │ │ └── code × 1..N # SNOMED CT 编码(7,303 个唯一值)
│ │ │ └── rel # EXACT / NARROW
│ └── translation × 6 语种 # 银标准(同一文档集的翻译投影)
§4.5 缺失值与结构性缺失
TSV 注释文件本身无缺失单元格(文本语料不存在影像检查的"空序列"问题),但有三类结构性缺失必须在代码里显式处理:
| 缺失类型 | 范围 | 正确处理方式 |
|---|---|---|
| linking 注释不完整 | 750 篇训练文档中 166 篇仅有 NER 注释 | NER 用全量 750 篇;linking 仅用 584 篇并合并两个 TSV |
| background 无注释 | 3,000 篇中除 250 篇测试文档外均无标注 | 只能用于预测吞吐测试或受控的域适应,禁止当负样本 |
| 多语言资源覆盖不全 | 个别文档未纳入翻译投影 | 加载 6 语种资源时按 filename 求交集后再对齐 |
三类缺失均为有意设计而非数据质量问题,官方未披露额外的信息性缺失编码约定。
§4.6 编码空间与长尾分析
linking 任务的标签空间是理解其难度的关键。三方对照:gazetteer v2.0 词表约 11 万个可用概念;训练集实际出现 4,819 个唯一编码;训练∪测试共 7,303 个——这意味着测试集中约 2,484 个编码里有超过半数在训练注释中从未出现过,链接器必须依赖术语文本相似度与层级泛化,而不能依赖标签记忆。参赛队中位 linking F1 仅 0.3102 的核心原因正在于此。缓解思路:用 gazetteer 的全部西语别名做候选召回(而非仅训练集词表)、用 SNOMED CT 层级把罕见编码向上收敛、或用 UMLS 多语言同义词扩充上下文表示。
§5 划分与使用建议
§5.1 官方划分
官方将 1,000 篇随机划分为训练集 750 篇与测试集 250 篇:训练集全量提供 NER 注释(750 篇)与 linking 注释(584 篇);测试集在 2023-02-07 前为盲测集,之后带金标准注释公开发布。CLEF 2022 参赛系统须在 3,000 篇 background 集上提交预测,官方仅在其中已标注子集上计分。复现排行榜必须使用官方划分,禁止重划。
官方划分之外没有独立的开发集:这是共享任务语料的常见设计(参赛者自行从训练集留出验证集),也因此排行榜上的数字都隐含"验证集规模与选型策略各队不同"的噪声。做严肃对比实验时,建议固定自己的验证切分并在所有报告中复用。
§5.2 社区惯例划分
社区(Hugging Face bigbio 等)直接沿用官方 train/test 划分,未出现公认的新划分方案。需要开发集的团队通行做法是从 750 篇训练集中再切出 10%—15%(约 75—110 篇)作验证集;由于训练集同分布随机划分,任何切分都不影响与排行榜的可比性,但训练量减少后得分会系统性低于官方口径,论文中须注明。
§5.3 泄漏风险(重点)
本数据集的泄漏风险主要来自跨任务同文档:DisTEMIST 与 PharmaCoNER、CodiEsp、Symptemist、MedProcNER 使用同一文档集合。若你的模型在这些姊妹任务数据上预训练或调参,等于间接看过 DisTEMIST 的测试文档。三个具体防线:一是对照姊妹任务 Zenodo 包的 filename 列表,把测试集 250 篇从任何辅助训练数据中剔除;二是多语言银标准与西语金标准是同一批文档的翻译,跨语言实验中不得把目标语金标准测试篇目混入训练;三是 background 集包含测试 250 篇,用它做过无监督适应(如 MLM 继续预训练)时要在论文中声明。
一行代码的防线:把姊妹任务(CodiEsp、Symptemist、MedProcNER、PharmaCoNER)注释文件里的 filename 列取并集,从中排除 DisTEMIST 训练集文档名,剩余文档一律不得进入任何训练阶段。
# 跨任务泄漏检查:姊妹任务文档名与 DisTEMIST 测试集求交
sister_docs = set(load_codiesp()) | set(load_symptemist()) | \
set(load_medprocner()) | set(load_pharmaconer())
test_docs = set(pd.read_csv(test_entities_tsv, sep="\t")["filename"])
overlap = sister_docs & test_docs
assert not overlap, f"姊妹任务数据包含 DisTEMIST 测试文档: {overlap}"
§5.4 交叉验证建议
语料体量小(750 篇训练),五折交叉验证能显著降低单次划分的方差,适合做消融与超参筛选;但每折训练量仅约 470—600 篇,结果不能与排行榜直接比较。推荐组合策略:内部用五折 CV 选型定参,最终用全量 750 篇训练、250 篇测试出报告数字。文档级随机划分即可,同一文档的多处注释天然同折,无组级泄漏问题。
分层建议:如果要同时报告 NER 与 linking 两个任务,注意两任务的可用训练文档不同(750 对 584),交叉验证应在各自的可用文档集合上独立进行,折的划分用固定随机种子以保持两次实验可对齐。
§5.5 外部验证建议
在 DisTEMIST 上训练的西语疾病 NER 模型,迁移到真实场景前应在异源文本上验证:可选用其姊妹任务 Symptemist(同文档、症状实体,检验实体类泛化)、拉美西语临床文本(检验地域泛化)或翻译对齐的英语临床语料(检验跨语言迁移)。官方多语言银标准可作为零样本迁移的首选外部探针,但记住它是银标准,得分只做相对比较。
报告规范建议:外部验证结果单独成表,标注训练集(DisTEMIST 750 篇)与验证集的完全互斥性;同文档姊妹任务的验证结果要声明"同文本不同实体类型",避免读者误读为跨语料泛化。
§6 AI 就绪指南
§6.0 云端快速启动
无需任何申请:Colab/Kaggle 均可直接运行。最短路径是 Hugging Face bigbio 加载脚本(自动下载并解析 Zenodo 包):
# Colab 一键加载(自动下载 Zenodo v2.0.0 原始包并解析为 bigbio 结构)
# !pip install datasets bigbio
from datasets import load_dataset
data = load_dataset("bigbio/distemist", "distemist_bigbio_kb")
print(data) # train: 750 篇;test: 250 篇
ex = data["train"][0] # 每篇含 passages 文本与 entities(偏移+编码)
print(ex["entities"][0])
如果只需要快速看数据长什么样,也可以在 HF 数据集查看器或 mDistemist Brat 服务器(§8.7)里在线浏览标注样例,再决定是否下载完整包。正式实验建议回落到 §6.1 的本地加载路径,以精确控制语料版本(bigbio 脚本当前绑定 v2.0.0)。
§6.1 快速上手
下面的脚本假设你已把 v5.1 压缩包解压到 data_root(目录结构见 §4.0),data_root 与子目录按 os.path.join 拼接;最小可用子集是 train_set/text_files + train_set/subtrack1_entities 两个目录(750 篇 NER 注释),仅做实体链接实验时才需要合并 linking 两个 TSV。
# 目录结构预期:data_root 下含 train_set/text_files/ 与
# train_set/subtrack1_entities/distemist_subtrack1_training_entities.tsv
# data_root 即解压后 distemist/ 目录
import os
import pandas as pd
data_root = "data/distemist"
tsv = os.path.join(data_root, "train_set", "subtrack1_entities",
"distemist_subtrack1_training_entities.tsv")
ann = pd.read_csv(tsv, sep="\t")
print(ann.columns.tolist()) # ['filename','mark','label','off0','off1','span']
print(ann["filename"].nunique()) # 出现注释的文档数
# 用 span 校验偏移:off0/off1 是否精确切出 span
doc = open(os.path.join(data_root, "train_set", "text_files",
ann["filename"].iloc[0] + ".txt"),
encoding="utf-8").read()
row = ann.iloc[0]
assert doc[row["off0"]:row["off1"]] == row["span"] # 必须通过
§6.2 数据获取
全部资源免注册直链下载。官方分发包一览:
| 资源 | 地址 | 大小 | 说明 |
|---|---|---|---|
| 语料主包 v5.1 | Zenodo 7614764 | 15.8 MB | 推荐:训练+测试金标准+多语言+交叉映射 |
| gazetteer v2.0 | Zenodo 6505583 | 9.9 MB | 实体链接词表(约 11 万概念) |
| 标注指南 v1 | Zenodo 6477407 | 687.2 kB | 标注规则原文 |
| 评估库 | GitHub TeMU-BSC/distemist_evaluation_library | — | 官方评测脚本,复现排行榜必用 |
| HF 加载脚本 | bigbio/distemist | — | 生态接入 |
获取注意事项:Zenodo 大文件下载建议带 -c 断点续传;HF bigbio 加载脚本会在首次运行时自动从 Zenodo 拉取并缓存原始包,CI 环境需开放网络或预置缓存目录;各资源 DOI 独立,引用时按所用资源分别标注。
# 命令行下载(约 16 MB,Seconds 级完成)
wget -c "https://zenodo.org/records/7614764/files/distemist_zenodo.zip?download=1" -O distemist.zip
unzip distemist.zip -d data/ # 解压得到 data/distemist/
§6.3 预处理全流程
标准流水线:TSV 解析 → 偏移校验 → BIO 序列化 → 句子切分 → 词表(linking 任务附加)。以下代码可直接运行:
# 预处理:把 entities TSV 转成 BIO 标签序列(供 token classification)
# 依赖:pandas;句子切分可用 spaCy es_core_news_md(官方参赛系统常用)
import pandas as pd
def load_annotations(tsv_path):
df = pd.read_csv(tsv_path, sep="\t")
# 按 '+' 切分多编码仅对 linking 文件必要;entities 文件无 codes 列
return {fn: g[["off0", "off1"]].values.tolist()
for fn, g in df.groupby("filename")}
def text_to_bio(text, spans, tokenizer):
# 1) 字符级 BIO:先在原文本上打字符标签,再对齐到 token
char_labels = ["O"] * len(text)
for off0, off1 in spans:
char_labels[off0] = "B-ENFERMEDAD"
for i in range(off0 + 1, off1):
char_labels[i] = "I-ENFERMEDAD"
# 2) 逐 token 对齐(fast tokenizer 提供 offset_mapping)
enc = tokenizer(text, return_offsets_mapping=True,
truncation=True, max_length=512)
labels, prev = [], "O"
for (s, e) in enc["offset_mapping"]:
if s == e: # special token
labels.append(-100); continue
cl = char_labels[s] # token 起始字符的标签
if cl == "B-ENFERMEDAD" or (cl == "I-ENFERMEDAD" and prev not in
("B-ENFERMEDAD", "I-ENFERMEDAD")):
labels.append(1); prev = "B-ENFERMEDAD" # B=1
elif cl == "I-ENFERMEDAD":
labels.append(2); prev = "I-ENFERMEDAD" # I=2
else:
labels.append(0); prev = "O"
return enc["input_ids"], labels
补充两个预处理决策的官方依据:分句——官方参赛系统(如 HPI-DHC)用 spaCy 的 es_core_news_md 做句子切分,因为 token 分类模型的输入长度固定,而西语病例段落长;窗口化——语料平均每篇 406 词元,绝大多数文档在 512 token 内单段容纳,仅少数长篇需要滑窗,滑窗时对跨窗实体采用"包含该实体的任一窗口都完整保留该实体"的策略,评估时对重复预测按 off0/off1 去重。
§6.4 PyTorch DataLoader
完整可运行的 NER Dataset 与 DataLoader(含 collate 动态 padding;linking 任务在 §6.5 坑点 2 的基础上扩展标签头即可):
# NER Dataset:750 篇训练文档,逐篇编码为 512 token 窗口
# 依赖:torch、transformers;tokenizer 建议 PlanTL-GOB-ES/roberta-base-biomedical-clinical-es
import torch
from torch.utils.data import Dataset, DataLoader
class DisTEMISTNerDataset(Dataset):
def __init__(self, text_dir, ann_dict, tokenizer, max_len=512):
self.items = []
for fn in os.listdir(text_dir):
key = fn[:-4] if fn.endswith(".txt") else fn
text = open(os.path.join(text_dir, fn),
encoding="utf-8").read()
ids, labels = text_to_bio(text, ann_dict.get(key, []),
tokenizer)
self.items.append((fn, ids, labels))
def __len__(self):
return len(self.items)
def __getitem__(self, idx):
fn, ids, labels = self.items[idx]
return {"input_ids": ids, "labels": labels, "doc": fn}
def collate(batch, pad_id=1):
# 动态 padding:batch 内对齐到最长序列
lens = [len(b["input_ids"]) for b in batch]
max_len = max(lens)
ids = torch.full((len(batch), max_len), pad_id, dtype=torch.long)
mask = torch.zeros((len(batch), max_len), dtype=torch.long)
labels = torch.full((len(batch), max_len), -100, dtype=torch.long)
for i, b in enumerate(batch):
n = len(b["input_ids"])
ids[i, :n] = torch.tensor(b["input_ids"])
mask[i, :n] = 1
labels[i, :n] = torch.tensor(b["labels"])
return {"input_ids": ids, "attention_mask": mask, "labels": labels}
loader = DataLoader(DisTEMISTNerDataset(text_dir, ann, tokenizer),
batch_size=8, shuffle=True, collate_fn=collate)
实体链接任务的样本组织方式与 NER 不同:每个(提及,编码集合)对构成一条训练样本,编码列表需按 “+” 切开并展开:
# LinkingDataset:把 linking TSV 展开为 (提及上下文, 编码) 对
# 候选生成阶段直接用 gazetteer TSV(9.9 MB)建倒排索引
import pandas as pd
class DisTEMISTLinkingDataset(Dataset):
def __init__(self, linking_tsv_list, text_dir, tokenizer):
rows = pd.concat([pd.read_csv(p, sep="\t")
for p in linking_tsv_list]) # 209+375 合并
rows = rows.drop_duplicates(subset=["filename", "mark"])
self.samples = []
for _, r in rows.iterrows():
text = open(os.path.join(text_dir, r["filename"] + ".txt"),
encoding="utf-8").read()
ctx = text[max(0, r["off0"] - 128):r["off1"] + 128] # ±128 字符窗口
for code in str(r["codes"]).split("+"): # 多编码展开
self.samples.append((r["filename"], r["mark"],
ctx, code.strip(), r["semantic_rel"]))
def __len__(self):
return len(self.samples)
def __getitem__(self, idx):
fn, mark, ctx, code, rel = self.samples[idx]
enc = tokenizer(ctx, code, truncation=True, max_length=256)
return {"input_ids": enc["input_ids"], "code": code,
"doc": fn, "mark": mark, "rel": rel}
§6.5 坑点 8 个
⚠️ 坑点 1:linking 训练注释只覆盖 584/750 篇,且分两个文件发布(分类:工程陷阱)
问题:750 篇训练文档中仅 584 篇有 SNOMED CT 编码注释,且分 209+375 两个 TSV 分别发布;直接把 linking 文件当全量 NER 注释用,会丢失 166 篇的实体监督信号。
症状:训练集实体数比 entities 文件少约两成;NER 模型在这 166 篇上的边界表现系统性偏弱;两个 linking 文件简单覆盖式合并会丢数据。
解决:
- 简单方法:NER 训练一律用 subtrack1_entities 全量文件;linking 实验先
pd.concat两个 linking TSV 再drop_duplicates。- 进阶方法:对 584 篇以外的文档采用"NER 有监督+linking 无监督一致性"的多任务策略,或用 gazetteer 远程监督补弱标签。
- SOTA 方法:两阶段系统——先用全量 750 篇训 NER,再在 584 篇上单独训链接器(CLEF 2022 顶级队伍普遍如此分工)。
参考:Zenodo 语料说明;HPI-DHC 参赛报告
⚠️ 坑点 2:一个提及对应多个 SNOMED CT 编码,用 “+” 拼接(分类:标签理解)
问题:codes 列形如
12345+67890,一个提及可链接多个合法编码;把整串当作单一字符串标签会让评估永远失败。
症状:官方评估脚本给出 0 分或极低的 linking F1;自己算 accuracy 时分母对不上。
解决:
- 简单方法:读取后
codes.split("+")得到候选集,预测任一命中即算对(官方评估口径为集合匹配)。- 进阶方法:训练时把每个(提及,编码)对展开成多标签样本,推理时输出 top-k 编码集合。
- SOTA 方法:候选生成+重排序架构,对每个提及输出排序后编码列表,首码命中优先。
参考:Zenodo 语料说明
⚠️ 坑点 3:EXACT 与 NARROW 语义关系不区分,性能被高估或低估(分类:标签理解)
问题:semantic_rel 列区分 EXACT(精确对应)与 NARROW(提及比编码更具体,链接到上位概念);忽略该列把 NARROW 当 EXACT 评估,会误判系统的真实规范化能力。
症状:错误分析时发现大量"部分正确"的链接;不同队伍报告的指标无法互比。
解决:
- 简单方法:评估按官方口径同时输出总体分与按 EXACT/NARROW 分层的分项分。
- 进阶方法:把 semantic_rel 作为辅助标签做多任务头,让模型显式学习"该链接是上位回退还是精确匹配"。
- SOTA 方法:在候选重排序阶段引入概念层级特征(SNOMED CT 层级路径),对无精确码的提及主动选择合理上位。
参考:Zenodo 语料说明
⚠️ 坑点 4:background 集不是可验证的负样本库(分类:偏倚陷阱)
问题:test_background_unannotated 含 3,000 篇,其中只有 250 篇测试文档带金标准,其余背景文档无任何注释;把它们当作"确认无疾病"的负样本参与训练或评估是错误假设。
症状:把背景文档计入召回率分母后指标骤降;用背景文档做负例训练后模型精确率虚高。
解决:
- 简单方法:只用 250 篇测试文档做评估;背景文档仅用于模拟提交场景的吞吐测试。
- 进阶方法:若要用背景文本做无监督域适应(MLM 继续预训练),从训练中剔除 250 篇测试文档并在论文中声明。
- SOTA 方法:自训练(self-training)时对背景文档预测做置信度过滤,且在评估阶段彻底隔离。
参考:Zenodo 语料说明
⚠️ 坑点 5:UTF-8 编码规范化会悄悄打偏所有字符偏移(分类:工程陷阱)
问题:off0/off1 按 Unicode 码点计数;西语文本里的重音字符(á、ñ)在 NFC/NFD 规范化下码点数不同(NFD 会把 á 拆成 a+组合重音符),任何隐形规范化都会让全部偏移错位。
症状:doc[off0:off1] != span校验大规模失败;用 fast tokenizer 报 offset 越界;评估 F1 接近 0。
解决:
- 简单方法:全程
open(..., encoding="utf-8")读入后不做任何 normalize,直接按码点切片。- 进阶方法:写单元测试断言
doc[off0:off1] == span(见 §6.1),CI 中对每篇文档跑一遍。- SOTA 方法:统一在数据加载层做 NFC 转换并同时重映射注释偏移(仅当你必须规范化时才这样做)。
参考:Brat 标注工具偏移约定
⚠️ 坑点 6:NER 输出边界含换行符与非词字符,实体链接被拖垮(分类:预处理陷阱)
问题:长实体常跨行(病例报告排版导致),token 分类模型倾向把行尾换行符包进实体;这些"脏边界"实体在 gazetteer 里查不到对应术语,直接拉低 linking 成绩。CLEF 2022 冠军队 PICUSLab 专门为此设计后处理。
症状:NER F1 正常但 linking F1 远低于预期;错误分析显示大量实体以\n或标点结尾。
解决:
- 简单方法:预测后裁剪——实体截断到首个换行符,并用正则
\W去掉尾部非词字符。- 进阶方法:训练前把文档按空白行/段落重组,或对训练标注做同样的边界规范化,让训练/推理分布一致。
- SOTA 方法:NER 与 EL 联合训练(span-based 架构),边界即分类,避免级联管道的边界失真。
参考:PICUSLab 参赛报告
⚠️ 坑点 7:gazetteer 版本口径(v1.0/v2.0)决定计分范围(分类:评估误用)
问题:官方评估只把落在 gazetteer v1.0/v2.0 范围内的编码预测计分;用最新 SNOMED CT 发行版或自行扩充词表评估,数字与排行榜不可比。
症状:自评 linking F1 与官方评估库结果差距大;换 SNOMED CT 版本后同一系统得分漂移。
解决:
- 简单方法:评估一律用官方评估库+gazetteer v2.0(Zenodo 6505583)。
- 进阶方法:词表扩充(如并入 UMLS 别名)只用于训练候选生成,评估前把预测过滤回官方词表范围。
- SOTA 方法:报告"官方口径分"与"扩展词表分"两列,明确标注差异来源(HPI-DHC 将别名扩充 16 倍后即如此报告)。
参考:BioASQ 2022 总览论文;HPI-DHC 参赛报告
⚠️ 坑点 8:多语言银标准不可当金标准训练后直接汇报(分类:偏倚陷阱)
问题:6 语种资源是机器翻译+注释投影的银标准,翻译会改变实体边界并引入翻译噪声;把银标准注释混入训练后,在英文等目标语上汇报的分数会被误读为该语言的真实水平。
症状:跨语言实验得分异常高但人工抽检发现边界错位;银标准上训练的模型在金标准评估时召回偏低。
解决:
- 简单方法:银标准只用于预训练/中间任务,最终评估只在各语言真金标准上做(DisTEMIST 金标准仅西语)。
- 进阶方法:对银标准注释做置信过滤(如回译一致性检查),剔除投影失败的样本。
- SOTA 方法:多任务联合训练时给银标准样本降权(如 0.3 倍损失权重),并报告消融。
参考:BioASQ 2022 总览论文
§6.6 数据增强
- ✅ 安全:随机失活无关 token(dropout 已内置);同文档滑窗;用 gazetteer 同义词替换非实体上下文词汇(保持实体 span 不动);对西语拼写变体(s/z、b/v)做保守替换——不触碰实体边界。
- ✅ 安全:利用 6 语种银标准做回译一致性过滤后的翻译增强(仅用于 NER 预训练阶段)。
- ❌ 危险:对原文做字符级插入/删除(会破坏 off0/off1 与 span 的对齐);用 LLM 重写文本(改变疾病表述边界与术语风格,且可能改变临床事实);把背景文档标注为无实体负样本(见坑点 3)。
§6.7 模型推荐
| 模型 | 类型 | 语言适配 | 推荐理由 |
|---|---|---|---|
| PlanTL-GOB-ES/roberta-base-biomedical-clinical-es | RoBERTa-base | 西语生物医学+临床域 | Plan TL 官方预训练,CLEF 2022 多支强队(含 HPI-DHC 冠军 NER 底座)采用 |
| BSC-NLP4BIA/bsc-bio-ehr-es-distemist | Token Classification | 西语临床域 | BSC 官方在 DisTEMIST 上微调的现成模型,可直接做基线与伪标签 |
| PlanTL-GOB-ES/bsc-bio-ehr-es | RoBERTa-base | 西语 EHR 域 | 上一行的底座模型,适合自行微调与复现消融 |
| xlm-roberta-large | XLM-RoBERTa-large | 多语言 | 跨语言迁移首选底座,与多语言银标准天然兼容 |
| mdeberta-v3-base | mDeBERTa | 多语言 | 社区已有 DisTEMIST 微调版,小语料下收敛稳定 |
§6.8 硬件需求
| 实验规模 | 显存 | 建议配置 | 预计耗时 |
|---|---|---|---|
| 快速上手(单卡推理官方模型) | 4 GB | 任意入门 GPU/CPU | 分钟级 |
| NER 微调(RoBERTa-base,750 篇,8 epochs) | 12—16 GB | 单张 T4/3090 | 0.5—1 小时 |
| NER 微调(XLM-R-large) | 24 GB+ | A100/多卡 | 2—4 小时 |
| 实体链接(候选生成+重排序) | 16 GB | 单卡+16 GB 内存加载 gazetteer | 1—3 小时 |
硬件结论:这是本站对个人开发者最友好的语料之一——单张消费级显卡即可完成全部主流实验,Colab 免费档(T4)足以复现 NER 基线。内存侧的唯一注意点是 gazetteer 构建倒排索引时峰值内存可达 4—6 GB,与训练显存互不冲突。
§6.9 评估指标代码
官方排名指标为 macro F1(entities 与 linking 两子任务均按 macro 口径排名,另报告 micro)。NER 按精确边界+类型匹配:
# 评估:NER 精确边界匹配 + macro/micro F1(与官方评估库口径对齐)
# 预测与金标准均为 (filename, off0, off1) 三元组集合
from collections import defaultdict
def ner_prf(preds, golds):
tp = len(preds & golds)
prec = tp / len(preds) if preds else 0.0
rec = tp / len(golds) if golds else 0.0
f1 = 2 * prec * rec / (prec + rec) if (prec + rec) else 0.0
return prec, rec, f1
def macro_f1_by_doc(preds, golds):
docs = {p[0] for p in preds} | {g[0] for g in golds}
f1s = []
for d in docs:
ps = {(f, s, e) for (f, s, e) in preds if f == d}
gs = {(f, s, e) for (f, s, e) in golds if f == d}
f1s.append(ner_prf(ps, gs)[2])
return sum(f1s) / len(f1s) if f1s else 0.0
# linking 评估:把 (off0, off1) 扩展为 (off0, off1, frozenset(codes)),
# 预测编码集合先按 gazetteer v2.0 过滤,再与金标准集合精确匹配
§6.10 MLOps 笔记
版本管理上,把语料版本(v5.1)与 gazetteer 版本(v2.0)写入实验配置并随模型工件一起归档——两者都影响可比性(坑点 7)。数据血缘方面,记录训练文档 filename 列表:姊妹任务(Symptemist、MedProcNER、CodiEsp 等)共用同一文档集合,审计时需要证明测试文档未混入(§5.3)。监控方面,线上西语疾病抽取服务应跟踪实体边界长度分布(训练均值 24.6 字符)与每篇注释数分布(约 10.7)的漂移,偏离超过两倍标准差通常意味着输入文本类型变了(如从病例报告漂移到出院小结)。可复现性上,官方评估库(GitHub TeMU-BSC/distemist_evaluation_library)是唯一权威口径,CI 中固定其 commit hash。
工程脚手架建议:数据摄取层用"下载→校验(文件数+md5)→偏移断言→入库"四步脚本固化,任何一步失败即中止训练流水线;模型注册时附带三件套——训练文档清单、gazetteer 版本号、官方评估库输出原件,这样任何一次历史实验都能在十分钟内重建评测环境。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 发表偏倚 | 文档为已发表病例报告,偏向罕见病、非典型表现与教学案例,不代表真实就诊分布 | 高 | 做流行病学推断时必须加权或仅作定性参考 |
| 专科集中偏倚 | 覆盖心脏病学、肿瘤学、泌尿学、放射学、儿科等,但官方未披露各专科占比 | 中 | 自行统计专科分布后按需分层采样 |
| 文体偏倚 | 书面叙事式病例报告,与真实 EHR 的电报式、缩写密集文本差异大 | 高 | 迁移到 EHR 前务必在目标域小样本上校准 |
| 地域偏倚 | 术语与书写遵循西班牙半岛用法,拉美变体代表性未知 | 中 | 跨地区部署前做术语适配与人工抽检 |
| 标注保守偏倚 | IAA 82.3% 意味着边界与范畴判定存在约两成分歧 | 中 | 评估误差分析时参考官方指南的边界判定规则 |
| 时间截断偏倚 | 语料基于 2022 年前的文献,新病种与新编码(如更新版 SNOMED CT 概念)缺位 | 中 | 上线系统建立候选编码+人工复核的增量通道(§7.6) |
§7.2 标注质量
标注质量证据链完整:公开指南(v1,2022-04-22)→ 医疗专业人员标注 → 10% 双标(pairwise agreement 82.3%)→ 质量检查 → 专家逐条 SNOMED CT 映射。82.3% 的一致性属于"难任务"区间——官方将其归因于平均 24.6 字符的长实体与复杂边界,而非标注粗糙。术语映射层未单独公布 IAA,但要求全量覆盖并区分 EXACT/NARROW,颗粒度高于多数同类语料。
| 质量维度 | 证据 | 评价 |
|---|---|---|
| 指南完备性 | 公开 PDF 指南+官方示例(含 NARROW 回退示例) | 高于平均 |
| 标注者资质 | 医疗专业人员+临床医生遴选文档 | 高于平均 |
| 一致性验证 | 10% 双标,82.3%(官方论文报告) | 达标(难任务口径) |
| 术语映射 | 逐条人工映射+UMLS 交叉验证 | 同类标杆 |
| 可视化审计 | Brat 服务器在线可查(金标准与多语言对齐) | 少见加分项 |
§7.3 泛化性评估
| 目标场景 | 失效风险 | 证据 |
|---|---|---|
| 西语病例报告域内新文档 | 低 | CLEF 2022 冠军 NER macro F1 0.7770,任务难度已充分校准 |
| 西语真实 EHR(电报式文本) | 高 | 语料为叙事文体;参赛系统均未在 EHR 验证 |
| 拉美西语临床文本 | 中高 | 术语半徧差异;官方未披露拉美数据占比 |
| 其他语言零样本 | 高(直接) / 中(借助银标准) | 多语言银标准为翻译投影质量,CLEF 2022 无跨语言赛道验证 |
| 罕见病长尾编码 | 中 | 训练集 4,819 唯一编码中长尾占多数,gazetteer 覆盖外的编码不计分 |
泛化性总评:DisTEMIST 上报告的分数属于"域内基准",向任何异源场景(真实 EHR、其他语言、其他语域)迁移都需要重新校准——这不是该语料的缺陷,而是所有金标准语料的共同边界,明确它的边界恰恰是正确使用它的前提。
§7.4 伦理评估
语料全部来源于已公开发表的期刊病例报告,不含原始住院记录;CC BY 4.0 许可明确允许研究与商业再利用(署名即可)。无伦理审批门槛、无 IRB 要求、无使用协议签署,属于本站收录语料中合规负担最轻的一档。需要留意的是:病例报告中的患者虽已匿名,但罕见病组合仍存在再识别风险,再分发衍生数据时建议保留原文献引用链以便溯源。
与需要 CITI 培训与 DUA 签署的 MIMIC 类语料相比,DisTEMIST 的零门槛设计显著降低了教学场景的合规成本;相应地,它也把"正确引用"的责任完全交给使用者——CC BY 4.0 的署名条款是唯一的许可义务,漏引论文与 DOI 属于违反许可而非仅是学术礼仪问题。
§7.5 公平性评估
语言公平视角是该数据集的立意亮点:它把临床 NLP 资源从英语扩展到全球约 5 亿母语人口的西班牙语,并用 6 语种银标准惠及更低资源的语言(加泰罗尼亚语、罗马尼亚语等)。局限在于:语料内部对西语世界内部变体(拉美方言、双语地区术语习惯)代表性未量化;注释仅覆盖"疾病"单一语义类型,症状、药物、操作等类型需转向其姊妹任务语料,跨类型联合应用时需自行对齐。
§7.6 数据漂移
语料构建于 2021—2022 年,文档为更早发表的病例报告:COVID-19 相关术语、新药名称与新兴疾病编码(如后 ICD-11 时代概念)在 SNOMED CT 2021-07-31 版与语料中可能缺位。部署 2026 年的系统时,应监控术语覆盖率(gazetteer 命中率)随时间的变化,并对新概念建立"候选编码+人工复核"的增量流程。
漂移监控的最小实现:线上对每批文档计算"gazetteer 命中注释占比"与"新出现未编码提及占比"两个指标,周级滚动对比;当后者连续两周高于训练期基线(可通过在训练集上回放计算)的一倍标准差时,触发术语库评审。SNOMED CT 每半年一次的国际版更新是天然的评审节点,建议把 gazetteer 升级纳入发版流程并保留旧版评估能力以保证分数可比。
§7.7 DAIMS 数据质量 24 项检查
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 注释为单表宽格式 TSV,一行一提及,pandas 直读 |
| 2 | 唯一标识 | ✅ | filename+mark 联合唯一,可作主键 |
| 3 | 特殊字符 | ✅ | 全程 UTF-8;西语重音字符无污染(使用侧注意 NFC/NFD,见坑点 5) |
| 4 | 重复行 | ✅ | mark 逐篇递增,无重复记录 |
| 5 | 缺失编码 | ⚠️ | linking 注释仅覆盖 584/750 篇,属官方结构性设计,需显式处理 |
| 6 | 标签标识 | ✅ | 单一标签 ENFERMEDAD,语义无歧义 |
| 7 | 罕见类分组 | ⚠️ | 官方未提供编码频率分组;4,819 个训练唯一编码长尾显著,需自行统计 |
| 8 | 偏倚评估 | ✅ | 官方论文明确讨论发表偏倚与实体复杂度对一致性的影响 |
| 9 | 数据字典 | ✅ | TSV 各列在 Zenodo 说明与标注指南中均有定义,本百科 §4.1 补充中文版 |
| 10 | 信息性缺失解释 | ⚠️ | 结构性缺失有官方说明,但无字段级 NA 编码约定 |
| 11 | 设备记录 | ⚠️ | 纯文本模态,无设备/仪器元数据(不适用) |
| 12 | 共线性 | ✅ | 提及级标注互不冗余,无特征共线性问题 |
| 13 | 编码映射 | ✅ | SNOMED CT 人工映射+MeSH/ICD-10/HPO/OMIM 交叉映射,同类语料中的标杆 |
| 14 | 时间戳处理 | ⚠️ | 逐篇发表年份未随包发布,无文档级时间元数据 |
| 15 | 划分建议 | ✅ | 官方 train/test 划分明确,评测协议公开 |
| 16 | 泄漏讨论 | ⚠️ | 与姊妹任务共用文档集合的跨任务泄漏官方材料未展开,本百科 §5.3 已补齐 |
| 17 | 标签分布 | ✅ | 官方 Table 4 提供完整分层统计(文档/注释/编码/句子/词元) |
| 18 | 测量偏倚 | ⚠️ | IAA 82.3% 已报告,但无按实体长度/类别的分层一致性分解 |
| 19 | 外部验证建议 | ✅ | 官方多语言银标准可作迁移探针,本百科 §7.8 给出矩阵 |
| 20 | 版本记录 | ✅ | Zenodo 版本链完整(2022-04 至 2023-02 v5.1),DOI 可追溯 |
| 21 | 预处理脚本 | ⚠️ | 官方仅提供评估库;预处理可借助 bigbio 加载脚本与本百科 §6.3 代码 |
| 22 | 合规要求 | ✅ | CC BY 4.0 开放获取,无注册/审批/协议门槛 |
| 23 | 多模态对齐 | ⚠️ | 单模态文本语料,无跨模态对齐需求(不适用) |
| 24 | 去标识化 | ✅ | 来源为公开发表病例报告,无直接患者标识符 |
DAIMS 评分:18.5 / 24(✅×14 + ⚠️×9×0.5 + ❌×0)
评分解读:18.5/24 属于"结构规范、文档完备、合规零门槛"的语料第一梯队;扣分集中在两类——一类是"不适用"的模态固有项(设备记录、多模态对齐),另一类是小型挑战任务语料的通病(linking 覆盖不完整、时间元数据缺位、预处理脚本缺位)。作为对比参考,动辄数万患者的大型 EHR 语料在合规项上往往得分更低,而 DisTEMIST 的短板恰好是新手最容易踩的工程坑(结构性缺失与跨任务泄漏),已在 §6.5 与 §5.3 逐一给出解法。
对你意味着什么:如果你的任务是西语疾病 NER 或实体链接,可以直接把该语料当作"开箱即用"的金标准,当天完成下载、解析与首跑;如果你的任务是把模型迁移到真实 EHR 或拉美市场,请把 §7.1 的文体偏倚与地域偏倚列为上线前必测项;如果你要发表跨语言论文,务必按坑点 8 处理银标准的权重与声明;无论哪种场景,先跑通官方评估库再谈自建指标。
落地行动清单(按顺序执行):第一周——下载 v5.1、跑通 §6.1 偏移校验与 §6.9 评估脚本,建立基线分数;第二周——按 §6.5 逐一检查八个坑点对应的代码路径,形成本团队的检查清单;第三周起——按研究/产品目标选择 §6.7 模型底座,用五折 CV(§5.4)做选型实验;交付前——用 §5.3 的泄漏检查脚本与 DAIMS 表(§7.7)做最终审计。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| CLEF 2022 官方盲测集(250 篇) | PICUSLab | 疾病 NER | macro F1 0.7770 | —(官方口径即外部盲测) | 生物医学域预训练底座是第一名与中位数的最大分差来源 |
| CLEF 2022 官方盲测集(250 篇) | HPI-DHC(德国波茨坦 HPI) | 疾病实体链接 | macro F1 0.5657 | — | 级联管道的边界误差是链接得分的主要瓶颈 |
| CLEF 2022 官方盲测集(250 篇) | SINAI(西班牙哈恩大学) | 疾病 NER | macro F1 0.7387 | — | 生物医学域模型优于临床域模型的选择反差 |
| CLEF 2022 官方盲测集(250 篇) | SINAI(同队另一系统) | 疾病实体链接 | macro F1 0.4122 | — | 同队 NER/EL 得分差 0.33,直观展示级联损耗 |
矩阵解读:所有权威数字都来自 CLEF 2022 官方盲测——对 DisTEMIST 而言"外部验证"与"官方评测"是同一件事,赛后社区尚无在全新独立语料上的同行评审复验报告;使用者在论文中引用这些数字时应注明其为 2022 年赛后状态。
§8 基准性能与生态
§8.1 排行榜(CLEF 2022 官方评测)
评测口径:实体级精确匹配,官方排名指标为 macro F1(另报告 micro);linking 子任务仅计 gazetteer v1.0/v2.0 范围内编码。注意:不同子任务、不同平均口径与不同 gazetteer 版本下的数字不可直接比较。
| 排名 | 模型/系统 | macro F1(macro-P / macro-R) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | PICUSLab NER(entities) | 0.7770(0.7915 / 0.7629) | 2022 | 生物医学域预训练 Transformer 微调 | PICUSLab 团队, 2022, CLEF Working Notes, CEUR Vol-3180 paper-22, 全文 | 未公开 |
| 2 | HPI-DHC-post-process(entities) | 0.7458(0.7434 / 0.7483) | 2022 | 西语临床 RoBERTa+边界后处理 | HPI-DHC 团队, 2022, CLEF Working Notes, CEUR Vol-3180 paper-15, 全文 | 未公开 |
| 3 | SINAI run2-biomedical model(entities) | 0.7387(0.7520 / 0.7529) | 2022 | 生物医学域模型微调 | SINAI 团队, 2022, 见官方总览表 14 | 未公开 |
| 4 | NLP-CIC-WFU System mBERT(entities) | 0.5456(0.6095 / 0.4938) | 2022 | mBERT 微调 | NLP-CIC-WFU 团队, 2022, 见官方总览表 14 | 未公开 |
| — | 参赛中位数(entities) | 0.6935(0.7146 / 0.6736) | 2022 | 即官方 BiLSTM-CRF 基线 DiseaseTagIt-Base | Miranda-Escalada et al., 2022, CLEF Working Notes, CEUR Vol-3180 paper-11 | 官方基线 |
| 1 | HPI-DHC 5-ensemble-reranking-pp.(linking) | 0.5657(0.6207 / 0.5196) | 2022 | TF-IDF+字符 n-gram+多语言嵌入集成重排序 | HPI-DHC 团队, 2022, CLEF Working Notes, CEUR Vol-3180 paper-15, 全文 | 未公开 |
| 2 | Better Innovations Lab & Norwegian Centre for E-health Research run1-snomed(linking) | 0.4987(0.5478 / 0.4577) | 2022 | 词表匹配+SNOMED 规则 | 该团队, 2022, 见官方总览表 14 | 未公开 |
| 3 | PICUSLab EL(linking) | 0.2780(0.2814 / 0.2748) | 2022 | 嵌入相似度检索(级联自家 NER) | PICUSLab 团队, 2022, CLEF Working Notes, CEUR Vol-3180 paper-22 | 未公开 |
| — | 参赛中位数(linking) | 0.3102(0.4795 / 0.2292) | 2022 | — | Miranda-Escalada et al., 2022, CLEF Working Notes, CEUR Vol-3180 paper-11 | — |
读表提示:entities 第 4 名与中位数之间的断层(0.5456 对 0.6935)说明 2022 年主流水平已由域内预训练 Transformer 定义;linking 榜上自家 NER 冠军(PICUSLab)的 EL 成绩反而垫底,再次印证实体链接的瓶颈在候选召回与术语覆盖,而非检测质量。
§8.2 SOTA 总结与选型建议
2022 年赛后官方未再组织 DisTEMIST 专项评测,0.7770(NER)与 0.5657(EL)即公认参考线。选型建议:做 NER,从 PlanTL-GOB-ES/roberta-base-biomedical-clinical-es 或 BSC-NLP4BIA/bsc-bio-ehr-es 微调起步,配合边界后处理(坑点 6)即可逼近冠军线;做实体链接,直接采用"gazetteer 候选生成+多特征重排序+编码集合输出"的两阶段架构,把精力花在候选召回与上位概念处理(EXACT/NARROW)上;做研究创新,重点在长尾编码(7,303 个唯一编码的覆盖)与跨语言迁移两个官方 baseline 明显薄弱的方向。
另一条正在兴起的路线是 LLM 时代的机会:用大模型做少样本疾病抽取与编码推荐,把 DisTEMIST 当作高质量少样本示例池与评测集——1,000 篇的体量恰好适合放进上下文工程与检索增强评测,而 7,303 个编码的长尾恰好能检验模型的术语泛化上限。注意在论文中声明训练数据 cutoff 与语料构建期的时间关系,避免数据污染质疑。
§8.3 评测协议
官方协议要点:预测按文档提交 TSV(entities 六列 / linking 八列);评估在 250 篇盲测金标准上执行;NER 要求 (off0, off1, label) 三元组精确匹配;linking 要求提及匹配后编码集合匹配(多编码任一命中,经 gazetteer 过滤);排名用 macro F1,官方评估库(GitHub TeMU-BSC/distemist_evaluation_library)为唯一权威实现,复现报告必须注明其版本。
补充协议细节:提交时文档粒度预测打包为单一 TSV,filename 必须与官方文档名一致;评估时先按文档聚合,再计算文档级 P/R/F1 的宏平均与语料级微平均;linking 的编码过滤以 gazetteer v1.0/v2.0 并集为准,预测编码若超出该范围既不计对也不计错(等价于从分母剔除该提及);多编码预测按集合精确匹配,部分命中不折算得分。这些细节官方总览论文均有说明,自行实现评估前务必逐条对齐。
§8.4 相关数据集生态
| 数据集 | 实体类型 | 术语目标 | 文档集合 | Zenodo DOI |
|---|---|---|---|---|
| Symptemist | 症状、体征与发现 | SNOMED CT | 与 DisTEMIST 相同 | 10.5281/zenodo.8413866 |
| MedProcNER | 临床操作与过程 | SNOMED CT | 与 DisTEMIST 相同 | 10.5281/zenodo.8224056 |
| CodiEsp | 诊断、过程(文档级编码) | CIE-10 | 与 DisTEMIST 相同 | 10.5281/zenodo.3837305 |
| PharmaCoNER | 药物、化学、基因/蛋白、疫苗 | 部分 | 与 DisTEMIST 相同 | 10.5281/zenodo.4270158 |
| CANTEMIST | 肿瘤形态 | 无链接 | 不同 | 10.5281/zenodo.3978041 |
| MEDDOPROF | 职业与工作状态 | SGTATT | 不同(部分重叠) | 10.5281/zenodo.7116201 |
| MEDDOCAN | 个人健康标识符(PHI) | — | 同集合合成脱敏版 | 10.5281/zenodo.4279323 |
| LivingNER | 物种(人/病原体/食品) | NCBI Taxonomy | 不同(部分重叠) | 10.5281/zenodo.7684093 |
生态组合建议:以 DisTEMIST 为疾病轴,按研究需要叠加 Symptemist(症状轴)、MedProcNER(操作轴)构建同一文档集的多类型联合标注——三者实体互不重叠、术语目标一致,是天然的联合训练材料;涉及患者隐私研究时叠加 MEDDOCAN 的合成脱敏版;做文献侧对比时引入 MESINESP-2(DeCS/MeSH 文献索引语料,不同文档集合)。
§8.5 关键论文 Top 5
- Miranda-Escalada, A., Gascó, L., Lima-López, S., Farré-Maduell, E., Estrada, D., Nentidis, A., Krithara, A., Katsimpras, G., Paliouras, G., & Krallinger, M. (2022). Overview of DisTEMIST at BioASQ: Automatic detection and normalization of diseases from clinical texts: results, methods, evaluation and multilingual resources. CLEF 2022 Working Notes, CEUR Vol-3180, paper-11. 全文 — 数据集与评测的权威总览,所有使用必引。
- Nentidis, A., Katsimpras, G., Vandorou, E., et al. (2022). Overview of BioASQ 2022: The tenth BioASQ challenge on large-scale biomedical semantic indexing and question answering. CLEF 2022 / arXiv:2210.06852. 全文 — 给出 Gold Standard 全量统计表与参赛系统横向对比。
- HPI-DHC 团队 (2022). HPI-DHC @ BioASQ DisTEMIST: Spanish Biomedical Entity Linking. CLEF 2022 Working Notes, CEUR Vol-3180, paper-15. 全文 — linking 冠军系统:UMLS 别名扩充 16 倍+集成重排序。
- PICUSLab 团队 (2022). Biomedical Spanish Language Models for entity linking and named entity recognition. CLEF 2022 Working Notes, CEUR Vol-3180, paper-22. 全文 — NER 冠军系统与域内预训练的价值分析。
- Farré-Maduell, E., Gascó, L., Lima, S., Miranda-Escalada, A., & Krallinger, M. (2022). DisTEMIST Guidelines: detection and normalization of disease mentions in Spanish clinical cases. Zenodo DOI 10.5281/zenodo.6458078. 指南 — 标注规则原文,边界判定争议时的仲裁依据。
论文阅读顺序建议:先读 1(任务与数据全貌),再读 2(统计与格局),然后按研究方向读 3(做实体链接)或 4(做 NER),5 作为标注边界的工具书随时查。
§8.6 社区活跃度
截至 2026-09 检索快照:Hugging Face bigbio/distemist 月下载约 55 次;社区衍生微调模型超过 5 个(含 BSC 官方 bsc-bio-ehr-es-distemist 与 IIC 系列多个底座);ODESIA 门户收录其双子任务排行榜并接受后续提交;官方评估库与 mDistemist Brat 可视化服务器持续在线。论文单篇 Google Scholar 精确引用数官方未披露(其作者团队相关系列工作累计引用数百次量级)。
活跃度解读:作为 2022 年的单届挑战任务,DisTEMIST 没有延续性年度赛事(区别于 BioASQ 主任务),社区动能主要体现为模型生态——西语临床 NLP 研究者把它当作标准评测集持续使用,姊妹任务(Symptemist 2024、MedProcNER 2023)接力扩展实体类型。对使用者而言,这意味着语料稳定、生态可预期,但也意味着排行榜数字不再有官方渠道刷新,新方法的对比需自行跑官方评估库。
§8.7 生态快照
| 资源 | 类型 | 链接 | 热度(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| Zenodo v5.1 主包 | 数据发布 | Zenodo 7614764 | DOI 权威版本 | 获取数据的唯一入口 |
| 官方评估库 | 代码 | GitHub | — | 复现排行榜唯一权威口径 |
| bigbio/distemist | 生态加载 | HF Datasets | 月下载约 55 | 一行代码接入 HF 生态 |
| bsc-bio-ehr-es-distemist | 预训练模型 | HF Models | 官方微调 | 现成西语疾病 NER 基线 |
| mDistemist Brat 服务 | 在线工具 | temu.bsc.es/mDistemist | 在线可用 | 浏览多语言对齐注释 |
| gazetteer v2.0 | 术语资源 | Zenodo 6505583 | 9.9 MB TSV | 候选生成与词典基线的核心资源 |
| 标注指南 v1 | 文档 | Zenodo 6477407 | 687.2 kB PDF | 标注边界争议的仲裁依据 |
| CLEF 2022 报告视频 | 视频 | YouTube 播放列表 | 官方发布 | 快速理解任务设计 |
§9 相关资源与引用
§9.1 官方资源导航
- 任务官网:DISTEMIST: DISease TExt Mining Shared Task(任务介绍、时间线、参赛系统汇总)
- 数据门户:Zenodo 记录 7614764(v5.1 主包)、6505583(gazetteer)、6477407(指南)
- 评测与可视化:官方评估库、mDistemist Brat 服务器
- 学习材料:CLEF 2022 overview 论文、YouTube 报告视频、overview 幻灯片(Slideshare)
- 项目框架:Plan TL(西班牙语言技术促进计划)、BSC TeMU 团队(联系邮箱 encargo-pln-life@bsc.es)
- 姊妹任务入口:Symptemist、MedProcNER 等在 BSC TeMU 任务矩阵下按同一文档集发布,适合组合使用
§9.2 BibTeX 引用块
使用该语料发表论文时,引用以下两条(论文+数据集 DOI):
@article{miranda2022overview,
title = {Overview of DisTEMIST at BioASQ: Automatic detection and
normalization of diseases from clinical texts: results,
methods, evaluation and multilingual resources},
author = {Miranda-Escalada, Antonio and Gasc{\'o}, Luis and
Lima-L{\'o}pez, Salvador and Farr{\'e}-Maduell, Eul{\`a}lia and
Estrada, Darryl and Nentidis, Anastasios and
Krithara, Anastasia and Katsimpras, Georgios and
Paliouras, Georgios and Krallinger, Martin},
booktitle = {Working Notes of Conference and Labs of the Evaluation
(CLEF) Forum, CEUR Workshop Proceedings},
volume = {3180},
year = {2022},
url = {http://ceur-ws.org/Vol-3180/paper-11.pdf}
}
@dataset{miranda_escalada_2023_7614764,
title = {{DisTEMIST corpus: detection and normalization of disease
mentions in spanish clinical cases}},
author = {Miranda-Escalada, Antonio and Farr{\'e}, Eul{\`a}lia and
Gasco, Luis and Lima, Salvador and Krallinger, Martin},
month = {2},
year = {2023},
publisher = {Zenodo},
version = {5.1},
doi = {10.5281/zenodo.7614764}
}
§9.3 引用指南
研究性论文(提出新模型/方法)引 miranda2022overview + 数据集 DOI;工程报告与博客至少引数据集 DOI;使用 gazetteer 做术语资源研究时建议同时引 gazetteer DOI(10.5281/zenodo.6458114);对比 CLEF 2022 排行榜数字时必须注明 macro F1 口径与 gazetteer v1.0/v2.0 约束。
§9.4 常见问题速查
Q:下载需要注册或申请吗? 不需要,Zenodo 直链下载,CC BY 4.0 许可,署名即可商用。
Q:测试集现在有金标准吗? 有,2023-02-07 起公开发布(v5.1 包内 test_annotated 目录)。
Q:能和其他西语 NLP 语料混用吗? 能,但注意 §5.3 的同文档集合泄漏——PharmaCoNER、CodiEsp、Symptemist、MedProcNER 与其共享 1,000 篇文档。
Q:有现成的标注工具项目吗? 官方提供 Brat 在线服务器(mDistemist)与评估库;本地标注可复用 Brat/INCEpTION 加载其 TSV 与 .ann。
§10 AI 使用声明卡
§10.1 本页面使用的 AI 模型
| 模型 | 用途 |
|---|---|
| CodeBuddy(腾讯云 AI 编码助手,fast-model) | 词条文本起草、代码示例编写、事实整理与格式化 |
§10.2 AI 参与范围
AI 负责初稿撰写与代码示例生成;所有事实性内容(规模数字、基准成绩、许可条款、版本历史)均来自 §10.3 所列公开来源,并经编辑部对照原始来源核对;代码示例经过运行环境外的静态审查,语法与逻辑自洽,但不保证在所有环境下开箱即用。AI 未参与任何事实的独立核实——每个关键数字都要求在 FACTS 事实清单中有对应来源 URL,核对中发现的口径冲突(如多语言银标准 6 种与 7 种语言之别)均以官方 Zenodo 资源包描述为最终依据。
§10.3 输入来源列表
- Miranda-Escalada, A., et al. (2022). Overview of DisTEMIST at BioASQ. CLEF 2022 Working Notes, CEUR Vol-3180, paper-11. http://ceur-ws.org/Vol-3180/paper-11.pdf
- Nentidis, A., et al. (2022). Overview of BioASQ 2022: The tenth BioASQ challenge. arXiv:2210.06852. https://arxiv.org/pdf/2210.06852v1
- DisTEMIST corpus v5.1, Zenodo. https://zenodo.org/records/7614764
- DisTEMIST corpus(任务版), Zenodo. https://zenodo.org/records/6408476
- DisTEMIST corpus v2.0.0, Zenodo. https://zenodo.org/records/6500526
- DisTEMIST corpus v2.0.0(bigbio 引用版), Zenodo. https://zenodo.org/records/6458455
- DisTEMIST Guidelines v1, Zenodo. https://zenodo.org/records/6477407
- DISTEMIST gazetteer v2.0, Zenodo. https://zenodo.org/records/6505583
- DISTEMIST 官网. https://temu.bsc.es/distemist/
- HPI-DHC 团队 (2022). CEUR Vol-3180, paper-15. https://ceur-ws.org/Vol-3180/paper-15.pdf
- PICUSLab 团队 (2022). CEUR Vol-3180, paper-22. https://ceur-ws.org/Vol-3180/paper-22.pdf
- ODESIA 门户 DisTEMIST 排行榜. https://portal.odesia.uned.es/tarea/named-entity-recognition 与 https://portal.odesia.uned.es/en/node/134
- Hugging Face bigbio/distemist 数据集卡片. https://huggingface.co/datasets/bigbio/distemist
- Hugging Face BSC-NLP4BIA/bsc-bio-ehr-es-distemist 模型卡片. https://huggingface.co/BSC-NLP4BIA/bsc-bio-ehr-es-distemist
- Google Scholar 作者页面(Miranda-Escalada). https://scholar.google.ro/citations?view_op=view_citation&user=oMMi4GQAAAAJ
- GitHub TeMU-BSC/distemist_evaluation_library. https://github.com/TeMU-BSC/distemist_evaluation_library
- Zenodo API 记录查询(“disTEMIST-Death” 零命中核查). https://zenodo.org/api/records?q=“disTEMIST-Death”
- mDistemist 多语言 Brat 可视化服务器. https://temu.bsc.es/mDistemist/
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| 规模数字与统计表(§1、§3、§4) | 千方病案医学编辑部 | 对照 BioASQ 2022 总览论文 Table 4 与 Zenodo 说明逐项核对 | ✅ 已通过/已验证 |
| 基准数字与排行榜(§8) | 千方病案医学编辑部 | 对照 arXiv 总览、ODESIA 门户与 CEUR 参赛论文三方交叉核对 | ✅ 已通过/已验证 |
| 许可与获取流程(§3、§9) | 千方病案医学编辑部 | 对照 Zenodo 许可声明与官网说明核对 | ✅ 已通过/已验证 |
| 代码示例(§6) | 千方病案医学编辑部 | 静态审查+与官方文件结构说明比对 | ✅ 已通过/已验证 |
| 坑点与局限(§6.5、§7) | 千方病案医学编辑部 | 对照参赛论文 limitations 与官方说明归纳核对 | ✅ 已通过/已验证 |
| ICD-11 对照表(§2.1) | 千方病案医学编辑部 | 按 WHO ICD-11 浏览器通行编码复核 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
本页面各章节均由 AI 起草、编辑部人工审核后发布,无纯 AI 未审章节;§2.1 的 ICD-11 对照列为编辑部基于 ICD-11 通行编码补充的辅助理解层,非数据集官方内容。
§10.6 最后人工审核日期
2026-09-05
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- umls — 共享标签:医疗NLP / 命名实体识别 / 临床文本 / 知识图谱
- cometa — 共享标签:医疗NLP / 命名实体识别 / 知识图谱
- pharmaconer — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- medmentions — 共享标签:医疗NLP / 命名实体识别 / 知识图谱
- meddoprof — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- cantemist — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- snomed-ct — 共享标签:医疗NLP / 临床文本 / 知识图谱
- loinc — 共享标签:医疗NLP / 临床文本 / 知识图谱
- radgraph — 共享标签:医疗NLP / 命名实体识别 / 临床文本
- biored — 共享标签:医疗NLP / 命名实体识别 / 知识图谱
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
