DrugProt — 生物医学化学品-蛋白相互作用抽取黄金语料

BioCreative VII Track 1 化学品-基因/蛋白相互作用关系抽取黄金标准语料:5,000 篇 PubMed 摘要、1,200,788 tokens、108,387 实体注释、21,053 条公开人工关系覆盖 13 类细粒度相互作用,另附 236 万篇摘要、5,399 万实体注释的大规模银标扩展与衍生知识图谱,CC BY-4.0 全开放

来源 DrugProt 黄金训练/开发集(Zenodo 5042151:训练 3,500 篇 + 开发 750 篇,实体 108,387,公开关系 21,053)+ Large Scale 银标扩展(Zenodo 5119878:2,366,081 篇摘要、53,993,602 实体注释)发布时间: 2026-10-04最后更新: 2026-10-20 阅读 36
DrugProt — 生物医学化学品-蛋白相互作用抽取黄金语料

信息速览

数据集名称DrugProt — 生物医学化学品-蛋白相互作用抽取黄金语料
数据类型人工标注,文本数据,原始数据
规模无患者数据:5,000 篇 PubMed 文献摘要(文献挖掘语料,不涉及患者个人信息)
接入方式DrugProt 黄金训练/开发集(Zenodo 5042151:训练 3,500 篇 + 开发 750 篇,实体 108,387,公开关系 21,053)+ Large Scale 银标扩展(Zenodo 5119878:2,366,081 篇摘要、53,993,602 实体注释)
AI 就绪度

INFOBOX — DrugProt 一屏速览

维度 内容
本质 BioCreative VII Track 1 官方化学品-基因/蛋白相互作用(CPI)关系抽取黄金语料 + 大规模银标扩展
团队 巴塞罗那超级计算中心 BSC(主导)+ 图尔库大学 + 加泰罗尼亚理工大学 UPC;通讯 Martin Krallinger
论文 Database (Oxford) 2023, baad080(doi:10.1093/database/baad080);会议 overview 见 BC VII workshop 2021
黄金数据 训练 3,500 篇 + 开发 750 篇 + 测试 750 篇 = 5,000 篇 PubMed 摘要;实体 108,387;公开关系 21,053
关系体系 13 类细粒度:INHIBITOR( inhibitor 最多大类 5,392)到 AGONIST-INHIBITOR(最少 13)跨度 400 倍
银标扩展 Large Scale:2,366,081 篇摘要 + 53,993,602 条自动实体注释;衍生 KG 53,993,602 节点 / 19,367,406 边
前身 ChemProt(BioCreative VI Track 5,2,432 摘要,22 类归并 10 组只评 5 组)——DrugProt 补上粒度与可扩展性两块短板
评测 主赛道 30 队 / 四大洲 110 人 / 107 runs;个别关系类型 P/R 峰值 0.9167 / 0.9542;多数参赛者用 BERT 类预训练模型
Large Scale 冠军 NLM-NCBI,best run F1 0.788602(P 0.772977 / R 0.804871);UTHealth 0.773216 次之
许可 CC BY-4.0(Zenodo API 权威确认,网页端 license 字段不可见——坑 6)
获取 Zenodo 5042151(gold)+ 5119878(Large Scale),TSV 三表 zip,3,796,908 bytes,md5 eeb92882…
库内互链 ChemProt(753)(前身)、ChemDNER(450)、BioRED(457)、DrugBank(89)、DrugCentral(344)、ChEBI(314)

DrugProt 是一个「把 5,000 篇文献摘要变成化学品与蛋白之间 13 种关系答案之书」的语料工程:它由巴塞罗那超级计算中心(BSC)与图尔库大学团队为 BioCreative VII 挑战赛 Track 1 构建,任务直指药物发现最基础的一步——从文献里读出「哪个化合物对哪个蛋白做了什么」。它的价值不止于一份 gold 数据:配套的 Large Scale 赛道把同样的任务推到 236 万篇摘要的工业级规模上,让「实验室精度」与「全文献库吞吐」第一次在同一届挑战赛里同台较量。

导语读法三则:

  1. 只想下数据:直奔 §6 获取与许可——CC BY-4.0、Zenodo 两个 DOI、TSV 三表格式十分钟即可跑通(§9 有加载代码)。
  2. 关心任务设计:直奔 §3 十三类关系详解与 §5 ChemProt 谱系对照——为什么 22 类归并 10 组的 ChemProt 要重做成 13 类细粒度。
  3. 要对标成绩:直奔 §7 评估与基准——主赛道 30 队全景、Large Scale 九队成绩表、高频错误实体清单。

§0 导读:这个数据集解决什么问题

药物发现的文献瓶颈是一个老问题:一个药物化学家想回答「化合物 X 是否抑制蛋白 Y」这类问题,最可靠的证据几乎都在 PubMed 摘要里,但人读文献的速度永远追不上文献增长的速度。化学品-蛋白相互作用(chemical-protein interaction,CPI)抽取因此成为生物医学自然语言处理(NLP)的经典任务——给定一篇摘要,找出其中所有化学品与基因/蛋白的提及,并判断每对化学品-蛋白之间属于哪种相互作用。

这个任务此前最好的公开基准是 ChemProt——BioCreative VI 挑战赛 Track 5 的产物。ChemProt 有两大先天局限。其一是粒度:原始注释有 22 种细粒度关系,但公开版本把它们归并成 10 组(CPR:1-10),其中只有 5 组参与评估,研究者无法在完整粒度上建模「抑制」与「间接上调」这类语义差别。其二是规模盲区:ChemProt 只有 2,432 篇摘要,没有任何机制检验模型在百万级文献库上的吞吐与精度衰减。

DrugProt 是对这两个问题的正面回答。粒度上,它直接公开 13 种细粒度关系类型的人工标注,从最大类 INHIBITOR(训练集 5,392 条)到最稀有的 AGONIST-INHIBITOR(仅 13 条)完整呈现长尾;规模上,除 5,000 篇黄金摘要外,组织方用自动流水线构建了 2,366,081 篇摘要、5,399 万实体注释的 Large Scale 银标语料,并设专门赛道评估「在一小部分人工数据上训练、在全部文献库上评估」的可扩展性。2021 年赛道举办时,30 支队伍、横跨四大洲的 110 名参赛者提交了 107 个运行结果;两年后的期刊扩展版(Database 2023)补全了数据描述、结果分析与衍生知识图谱。

§0 读法三则:

  1. 这个条目覆盖「gold 语料 + silver 扩展 + 挑战赛基准」三层结构:三层的数据质量、许可、获取方式全部一致(CC BY-4.0 公开),但标注性质完全不同——黄金层人工、银标层自动,混用前必读 §2.4 与坑 5。
  2. 全文硬数字均出自 Zenodo 官方 Summary statistics 与期刊论文(Database 2023, baad080);第三方参赛队论文的计数与官方有小幅出入,已在坑 2 存照,引用一律以官方为准。
  3. 检索时注意:官方指定的 Zenodo 引用模板(krallinger2017overview)实际指向的是前身 CHEMPROT 的 2017 年 overview——这不是错误而是官方有意为之(坑 7),写论文引用时建议改用 2021 会议 overview 或 2023 期刊版。

§1 数据集速览:十问十答

Q1:DrugProt 的「黄金」部分到底有多少数据?
训练集 3,500 篇摘要 + 开发集 750 篇,合计 4,250 篇随数据包公开;测试集 750 篇的标注不公开、只用于 CodaLab 在线评估。三者合计 5,000 篇 PubMed 摘要——这是期刊论文的官方口径。折算 token:训练 1,001,168 + 开发 199,620 = 1,200,788 个。

Q2:实体和关系各有多少?
公开部分(训练+开发)共 108,387 个实体注释:化学品 46,274+9,853,基因/蛋白 43,255+9,005(训练集内再分可归一 GENE-Y 28,421 与不可归一 GENE-N 14,834)。关系 21,053 条(训练 17,288 + 开发 3,765),覆盖 13 种细粒度类型;若计入未公开的测试集 gold(可由官方总量 24,526 反推为 3,473 条),全库约 24,526 条。

Q3:13 种关系类型是什么?
按训练集数量从大到小:INHIBITOR(抑制剂,5,392)、DIRECT-REGULATOR(直接调控,2,250)、SUBSTRATE(底物,2,003)、ACTIVATOR(激活剂,1,429)、INDIRECT-UPREGULATOR(间接上调,1,379)、INDIRECT-DOWNREGULATOR(间接下调,1,330)、ANTAGONIST(拮抗剂,972)、PRODUCT-OF(产物,921)、PART-OF(部分,886)、AGONIST(激动剂,659)、AGONIST-ACTIVATOR(29)、SUBSTRATE_PRODUCT-OF(25)、AGONIST-INHIBITOR(13)。每类语义见 §3。

Q4:数据长什么样?
三个 TSV 表:abstracts.tsv(PMID、标题、摘要三列);entities.tsv(PMID、实体编号、类型、起止字符偏移、原文六列);relations.tsv(PMID、关系类型、化学品参数、基因参数四列)。偏移基于「标题+摘要」拼接后的全文。示例:12488248 INHIBITOR Arg1:T1 Arg2:T52 表示 PMID 12488248 中 T1 号化学品对 T52 号基因构成抑制关系。

Q5:基因实体为什么分 GENE-Y 和 GENE-N?
训练集里基因/蛋白注释分两类:GENE-Y [Normalizable] 是能归一到数据库 ID 的实体,GENE-N [Non-Normalizable] 是无法归一的(如基因家族、片段、变异体描述)。开发集不再做这个区分、统一标 GENE——这是跨 split 联合训练时最容易踩的格式差异(坑 4)。

Q6:Large Scale 银标扩展是什么?
Zenodo 5119878 提供的 2,366,081 篇摘要(large_scale_abstracts.tsv)加 53,993,602 条自动实体注释(large_scale_entities.tsv,GPRO 对象类型)。注释由自动流水线生成而非人工,噪声显著;其中还有 222 条不同 PMID 但同题同摘要的重复记录(官方 README 自曝,坑 5)。组织方由它构建了 53,993,602 节点、19,367,406 边的知识图谱。

Q7:挑战赛结果如何?
主赛道 30 支队伍(四大洲 110 人)提交 107 个运行结果,多数参赛者微调 BERT/BioBERT 类预训练语言模型;个别关系类型的精确率/召回率峰值分别达到 0.9167 与 0.9542。Large Scale 赛道 9 支队伍 21 个运行,冠军 NLM-NCBI 的 best run micro-F1 为 0.788602。完整成绩表与高频错误分析见 §7。

Q8:和 ChemProt 是什么关系?
ChemProt(BioCreative VI Track 5)是直接前身:2,432 篇摘要、22 种原始关系归并 10 组只评 5 组、BC VI 冠军 F 值 64.1。DrugProt 保留其任务内核,但改成 13 类完整细粒度公开 + 新增大规模可扩展性赛道——两大改进精确对应 ChemProt 的两大局限(§5 详述)。

Q9:我现在能拿到什么、什么许可?
全部三层都公开:黄金训练/开发集(Zenodo 5042151)、Large Scale 银标(Zenodo 5119878)、三份注释指南与 FAQ(各自 DOI)——统一 CC BY-4.0。测试集 gold 是唯一拿不到的部分(只能提交 CodaLab 评估)。

Q10:为什么它对 AI-Ready 重要?
它是「挑战赛即发布」的典范:任务结束即全量公开(gold+silver+指南+评估脚本),CC BY-4.0 无任何附加条款,TSV 纯文本格式无需任何专用解析器,评估库直接 pip 安装——从下载到跑出第一个 micro-F1 不超过半小时。库内同类关系抽取条目(如 ChemProt、BioRED)多数依赖主办方网页或第三方整理版,DrugProt 的自包含程度明显更高。

§1A 快速适配性判断:DrugProt 适不适合你的任务

十问十答给出的是「它是什么」;本节回答「要不要用它」。四个适配场景与三个不适配场景:

适配场景

  • 场景一:训练/评估一个 CPI 或广义关系抽取模型。 这是它的原生用途——4,250 篇公开人工标注摘要、13 类细粒度标签、官方评估脚本三位一体,且参照基线明确(Turku-BSC 约 0.744,§7.1)。选它的决定性理由是标签粒度:需要区分「直接抑制」与「间接下调」时,ChemProt 的 5 组评估口径不够用,DrugProt 的 13 类是公开可得的最细粒度(§5);
  • 场景二:生物医学 NER 的预训练或领域自适应。 10.8 万公开实体注释(化学品+基因)自带字符级偏移, Large Scale 的 5,399 万自动注释可作大规模自适应语料——注意后者是银标,须按坑 5 的边界使用;
  • 场景三:LLM 的生物医学能力评测。 13 类干净的多分类标签、纯文本输入输出、官方 micro-F1 脚本——把摘要加候选对塞进 prompt、把标签当答案,零样本/少样本评测的搭建成本极低;§10.3 已指出这是近年 LLM 评测的常见做法;
  • 场景四:药物发现信息学的文献证据层。 INHIBITOR/ACTIVATOR/SUBSTRATE 类关系可直接喂给靶点-化合物管线;银标衍生的 5,399 万节点 KG 可作检索底座(§7.5)。

不适配场景

  • 场景五:需要测试集本地复现的严格对比实验。 test gold 只在 CodaLab 后端(坑 1),本地只能做 train/dev 实验;论文如果必须报告测试集分数且不能联网提交,要么接受 dev 口径并明示,要么换用完全公开的语料;
  • 场景六:多实体类型/跨句关系抽取。 DrugProt 只覆盖化学品与基因/蛋白两类实体、只标注摘要内(句子级为主)的关系;需要疾病、细胞系等多实体类型关系时,库内 BioRED(457) 是更合适的下一站(§10.2);
  • 场景七:文档级/全文级关系抽取。 语料单位是摘要(标题+摘要拼接),不含正文段落——全文级任务只能把它当预训练或组件评测素材。

换轨指引

如果落在不适配场景,库内的相邻条目按需替换:多实体类型关系 → BioRED(457);化学品 mention 检测 → ChemDNER(450);基因 mention 检测的祖源基准 → BC2GM(434);结构化药物-靶点金源(非文献抽取)→ DrugBank(89)/DrugCentral(344);经典基因/蛋白 NER 对比 → JNLPBA(442)。完整互链表见 §10.2。

§2 数据构成与规格

2.1 黄金语料三方划分

DrugProt 黄金标准(Gold Standard)由 5,000 篇 PubMed 摘要构成,三方划分如下:

子集 摘要数 tokens 实体注释 关系 标注公开性
Training set 3,500 1,001,168 89,529 17,288 随数据包公开
Development set 750 199,620 18,858 3,765 随数据包公开
Test set 750 未公开 未公开 约 3,473(推算) 不公开,仅 CodaLab
合计 5,000 约 1,200,788+(公开部分) 108,387(公开部分) 24,526(官方总量口径) —

三方划分的两点说明:

  • 测试集摘要本身的文本(PMID+标题+摘要)在测试阶段对参赛者可见,但其 gold 实体与关系标注至今未公开——这是「挑战赛即发布」模式里少数没有落地的部分,也意味着本地完整复现三方评估不可能(坑 1)。
  • 关系总量 24,526 出自官方口径;公开部分 17,288+3,765=21,053,差值 3,473 即未公开测试集 gold 的关系数。这个推算自洽,但注意 24,526 与 21,053 两个数字在不同来源里都会出现,引用时必须说明口径(存照 §9)。

2.2 实体构成与分布

实体类型 Training Development 说明
CHEMICAL 46,274 9,853 化合物、药物、化学品家族等
GENE-Y [Normalizable] 28,421 — 可归一到数据库 ID 的基因/蛋白
GENE-N [Non-Normalizable] 14,834 — 不可归一(家族、片段、变异描述等)
Gene Total (N+Y) 43,255 9,005 开发集不再区分 Y/N
合计 89,529 18,858 —

实体体系的三点观察:

  1. 化学品略多于基因(约 51:49),这在 CPI 语料里是均衡设计——任务天然要求每条关系一端化学品一端基因,实体比例失衡会限制关系密度。
  2. 不可归一实体占基因总数约 34%(14,834/43,255):基因家族(如「cyclin-dependent kinases」)、蛋白片段、带突变描述的实体在真实文献里占比很高,这是实体归一(normalization)研究常被低估的难度来源。
  3. 开发集统一 GENE 标签意味着:模型在开发集上无法学习「可归一性」这个信号,只能在训练集上学——这是任务设计的有意取舍还是遗留不一致,官方未说明(坑 4 的根源)。

2.3 关系类型全表(13 类,按数量降序)

关系类型 Training Development 合计(公开)
INHIBITOR 5,392 1,152 6,544
DIRECT-REGULATOR 2,250 458 2,708
SUBSTRATE 2,003 495 2,498
ACTIVATOR 1,429 246 1,675
INDIRECT-UPREGULATOR 1,379 302 1,681
INDIRECT-DOWNREGULATOR 1,330 332 1,662
ANTAGONIST 972 218 1,190
PRODUCT-OF 921 158 1,079
PART-OF 886 258 1,144
AGONIST 659 131 790
AGONIST-ACTIVATOR 29 10 39
SUBSTRATE_PRODUCT-OF 25 3 28
AGONIST-INHIBITOR 13 2 15
合计 17,288 3,765 21,053

2.4 文件格式与官方示例

数据包 drugprot-gs-training-development.zip(3,796,908 bytes,md5 eeb928823d1357510a415256f8957066)内含三个 TSV:

文件 列数 列结构
drugprot_training_abstracts.tsv / drugprot_development_abstracts.tsv 3 PMID|Title|Abstract
drugprot_training_entities.tsv / drugprot_development_entities.tsv 6 PMID|TermNumber|Type|StartOffset|EndOffset|Text
drugprot_training_relations.tsv / drugprot_development_relations.tsv 4 PMID|Relation|Arg1:T# CHEMICAL|Arg2:T# GENE

官方文档给出的示例行(原样):

11808879  T12  GENE-Y   1860  1866  KIR6.2
11808879  T13  GENE-N   1993  2016  glutamate dehydrogenase
23017395  T1   CHEMICAL 216   223   HMG-CoA
23017395  T2   CHEMICAL 258   261   EPA
12488248  INHIBITOR  Arg1:T1 Arg2:T52
23220562  INDIRECT-DOWNREGULATOR  Arg1:T1 Arg2:T14

解析要点四则:

  • 偏移基准是 title+abstract 拼接全文:entities.tsv 里的 StartOffset/EndOffset 从标题第一个字符起算、连续贯穿摘要正文。若你的流程只处理摘要正文,必须先在头部叠加标题长度偏移,否则所有实体位置都会错位(坑 3)。
  • 关系参数写法:Arg1:T1 指向 entities.tsv 里的 TermNumber T1,关系方向固定为化学品在前(Arg1=CHEMICAL)、基因在后(Arg2=GENE)。
  • 实体编号不跨摘要复用:T1、T2……每篇摘要独立编号,跨行 join 必须以 PMID 为复合键。
  • TSV 分隔符与文本内容冲突:摘要正文里可能出现制表符残片(OCR 或排版产物),稳妥的读取方式是按列数从右侧切分而非朴素 split。

2.5 Large Scale 银标扩展

属性 数值
摘要总量(large_scale_abstracts.tsv) 2,366,081 records
有效去重后 2,365,859(222 条重复 PMID,同题同摘要)
实体注释总量(large_scale_entities.tsv) 53,993,602
编码规范 UTF8 NFC 规范化
实体类型框架 GPRO 对象(BioCreative V 期间定义的基因/蛋白归类框架)
衍生知识图谱 53,993,602 节点 / 19,367,406 边(silver standard KG)

银标的生成逻辑:对 PubMed 大规模检索命中的摘要运行自动实体识别(化学品+基因/蛋白),不做人关系抽取——关系层面的银标不存在,Large Scale 赛道的评估方式是把参赛系统在黄金测试子集上的表现,与它在全库吞吐上的效率指标联合考察。这也是它和黄金层最本质的区别:银标只有实体没有 gold 关系,不能直接当关系抽取训练集用(坑 5)。

222 条重复的官方说明:这些记录 PMID 不同但标题与摘要完全相同(多为期刊勘误、多次索引或数据库合并的痕迹),官方 README 建议下游使用前自行去重。

2.6 官方样例走查:从三行 TSV 读出全部格式约定

§2.4 给出了官方文档的示例行原样;本节逐行走查,把每行背后的格式约定讲透。这三行实体注释——

11808879  T12  GENE-Y   1860  1866  KIR6.2
11808879  T13  GENE-N   1993  2016  glutamate dehydrogenase
23017395  T1   CHEMICAL 216   223   HMG-CoA

与两行关系注释——

12488248  INHIBITOR  Arg1:T1 Arg2:T52
23220562  INDIRECT-DOWNREGULATOR  Arg1:T1 Arg2:T14

按列拆解后的完整信息:

字段 示例值 语义与约定
PMID 11808879 PubMed 摘要标识,三张表的主外键;同一 PMID 的实体与关系散布在各自文件的连续行段里
TermNumber T12、T13、T1 T 前缀编号,每篇摘要独立计数——两行 T1 分属不同 PMID(11808879 与 23017395),互不相干;跨表 join 必须带 PMID 复合键
Type GENE-Y、GENE-N、CHEMICAL GENE-Y = 可归一到数据库 ID;GENE-N = 不可归一(此例中「glutamate dehydrogenase」这类描述性名称未指向单一数据库条目);此二分仅训练集存在(坑 4)
StartOffset / EndOffset 1860/1866 字符偏移对;基准是 title+abstract 拼接全文——1860 这个数字大概率已落在摘要正文深处,因为偏移把标题长度也计入了
Text KIR6.2、HMG-CoA 偏移区间内的原文切片;含点号、连字符等标点,做分词与对齐时须原样保留

关系行的读法以 12488248 INHIBITOR Arg1:T1 Arg2:T52 为例:

  • Arg1:T1 指向该 PMID 实体表里 TermNumber 为 T1 的化学品(方向约定:Arg1 恒为 CHEMICAL);
  • Arg2:T52 指向 T52 的基因/蛋白(Arg2 恒为 GENE);
  • INHIBITOR 是 13 类标签之一,全大写蛇形命名(§3A.1 的数据契约);
  • 注意关系行的 PMID(12488248)与上面实体示例的 PMID(11808879/23017395)不同——这是官方文档刻意分开举例,提醒使用者实体行与关系行通过「PMID + TermNumber」联合寻址,不是按行号对应。

走查导出的四条实践规则(与 §2.4 解析要点互为表里):

  1. 建索引时以 (PMID, TermNumber) 为复合主键,任何单键索引都会在跨摘要处出错;
  2. GENE-Y/GENE-N 的归并决策要在数据加载层一次性做完(§9A 的 type_aligned 列),不要散落在训练代码里;
  3. 偏移校验的黄金标准就是本节示例:加载后抽验 text[start:end] 是否逐字符等于 Text 列(§9.1 的 assert);
  4. 示例里 KIR6.2、HMG-CoA 这类含符号的表面形式提醒 tokenizer 选型要保守——WordPiece/BPE 会把符号拆碎,实体边界对齐要基于字符偏移而非 token 索引。

§3 任务定义:十三类关系逐一详解

任务输入是一篇摘要(标题+摘要拼接文本),输出分两步:实体识别(CHEMICAL、GENE 两类,训练集基因细分为 GENE-Y/GENE-N)与关系分类(每对化学品-基因实体给一个 13 类标签或「无关系」)。官方评估以关系 micro-F1 为主指标。以下按数量降序逐类解释(语义描述综合三份官方注释指南):

3.1 INHIBITOR(抑制剂,5,392+1,152)——化学品降低基因/蛋白的生物活性、表达量或功能。覆盖直接酶抑制(「X inhibits COX-2 activity」)、表达抑制(「X downregulates Y mRNA」)等最常见药理叙述。这是全语料的最大类,占比约 31%——药理文献中「抑制」本来就是最高频的因果动词。

3.2 DIRECT-REGULATOR(直接调控,2,250+458)——化学品与蛋白发生直接物理结合并调控其活性,但所述方向(激活/抑制)不明确或双向。它是「绑定且调控但说不清方向」的兜底大类,与 INHIBITOR/ACTIVATOR 的区别在于陈述明确性。

3.3 SUBSTRATE(底物,2,003+495)——化学品是基因/蛋白(通常是酶或转运体)的代谢底物或转运底物。CYP450 酶系与药物代谢文献是这一类的集中来源,也是药物相互作用预测建模最关心的类别之一。

3.4 ACTIVATOR(激活剂,1,429+246)——化学品提高基因/蛋白的活性或表达。与 INHIBITOR 互为镜像,占比约为其四分之一——文献里「抑制」叙述远多于「激活」。

3.5 INDIRECT-UPREGULATOR(间接上调,1,379+302)——化学品通过多步机制或未知中间环节最终上调基因/蛋白。典型句式「X treatment leads to increased expression of Y」且未给出直接结合证据。

3.6 INDIRECT-DOWNREGULATOR(间接下调,1,330+332)——间接上调的镜像。注意官方示例行 23220562 INDIRECT-DOWNREGULATOR Arg1:T1 Arg2:T14 正属此列。

3.7 ANTAGONIST(拮抗剂,972+218)——化学品(通常为受体配体)结合受体并阻断其天然信号转导。与 INHIBITOR 的语义分野在于「受体阻断」这一药理学专指——同一对实体在叙述角度不同时可能同时满足两类,注释指南对优先级有规定。

3.8 PRODUCT-OF(产物,921+158)——化学品是基因/蛋白反应的产物(如某酶催化生成的代谢物)。方向恰好与 SUBSTRATE 相反:SUBSTRATE 是「吃进酶里」,PRODUCT-OF 是「酶吐出来」。

3.9 PART-OF(部分,886+258)——化学品是基因/蛋白结构的一部分,或蛋白复合物与组分的归属关系(如辅基、结合的金属离子)。它继承自 ChemProt 未评估组里的 CPR:1 PART_OF——在 DrugProt 里首次进入正式评估。

3.10 AGONIST(激动剂,659+131)——化学品结合受体并激活其信号(与 ANTAGONIST 相对)。

3.11 AGONIST-ACTIVATOR(29+10)——兼具激动与激活双重陈述的复合类。

3.12 SUBSTRATE_PRODUCT-OF(25+3)——同一实体既是某酶的底物又是其产物(可逆反应叙述)。

3.13 AGONIST-INHIBITOR(13+2)——兼具激动与抑制双重陈述的复合类,全语料最稀有类别。

三个使用提醒:

  1. 长尾极度倾斜:前 6 大类占公开关系总量约 84%,后 4 类合计不足 0.6%。模型在这 4 类上的表现主要受采样策略而非架构影响——官方成绩单里「个别关系类型 P/R 峰值 0.9167/0.9542」与长尾类的惨淡成绩并存。
  2. 复合类是 ChemProt 没有的新增设计:AGONIST-ACTIVATOR、AGONIST-INHIBITOR、SUBSTRATE_PRODUCT-OF 三类在 ChemProt 的 10 组体系里没有对应物,直接迁移 ChemProt 标签映射会丢掉这三种复合语义。
  3. NOT 关系没有复活:ChemProt 的 CPR:10 NOT(否定关系)在 DrugProt 的 13 类里没有对应——否定叙述的处理方式官方未单列(存照 §9)。

§3A 标签空间的工程设计:十三类标签如何被组织

3A.1 命名与书写规范

DrugProt 的 13 个关系标签在机器可读性上遵循一套统一的书写约定,理解这套约定是用好数据的前提:

  • 全大写蛇形命名(upper snake case):INHIBITOR、DIRECT-REGULATOR、INDIRECT-UPREGULATOR——所有标签不含空格、词间用连字符,可直接作为分类头(classification head)的类别名或文件名,无需任何清洗;
  • 复合类用连字符连接两个语义角色:AGONIST-ACTIVATOR = AGONIST + ACTIVATOR 的双重陈述,SUBSTRATE_PRODUCT-OF = SUBSTRATE + PRODUCT-OF 的双重陈述——连字符在这里是「同时满足」的合取记号,不是并列枚举的分隔符;
  • 方向前缀显式编码直接性:DIRECT-REGULATOR 与 INDIRECT-UPREGULATOR/INDIRECT-DOWNREGULATOR 把「直接/间接」写进标签本身,下游做分层评估时可直接按前缀分组聚合;
  • 标签无层级编码:13 类是扁平集合而非树——不存在「REGULATOR 父类下挂 DIRECT/INDIRECT 子类」的显式层级。需要层级视角时,语义分组要靠使用者自行归纳(见 3A.2)。

3A.2 按语义维度重新组织 13 类

官方标签是按「数量降序」呈现的,但对建模者更有用的是按语义维度重组。13 类可沿三个正交维度理解:

维度一:效果方向(direction)

方向 标签
下调/抑制 INHIBITOR、INDIRECT-DOWNREGULATOR、ANTAGONIST、AGONIST-INHIBITOR
上调/激活 ACTIVATOR、INDIRECT-UPREGULATOR、AGONIST、AGONIST-ACTIVATOR
中性/双向 DIRECT-REGULATOR
代谢角色 SUBSTRATE、PRODUCT-OF、SUBSTRATE_PRODUCT-OF、PART-OF

维度二:机制直接性(directness)

  • 直接类(物理结合或一步机制):INHIBITOR、ACTIVATOR、AGONIST、ANTAGONIST、DIRECT-REGULATOR、SUBSTRATE、PRODUCT-OF、PART-OF 及三个复合类;
  • 间接类(多步机制、未明中间环节):INDIRECT-UPREGULATOR、INDIRECT-DOWNREGULATOR——这两类正是 §7.2 指出的最难类别,因为「间接」的判定需要跨越句法边界甚至句间推理。

维度三:药理角色专指性(specificity)

  • 通用因果类:INHIBITOR、ACTIVATOR、DIRECT-REGULATOR、INDIRECT-*;
  • 受体药理类:AGONIST、ANTAGONIST 及其复合类——要求化学品端是受体配体这一药理学专指;
  • 酶学/代谢类:SUBSTRATE、PRODUCT-OF、SUBSTRATE_PRODUCT-OF——集中于 CYP450 酶系与药物代谢文献。

这种三维重组的意义在于:当某一细类样本太少(如 AGONIST-INHIBITOR 训练集仅 13 条)时,可以退到维度聚合层面(「下调类合并训练」)做层级分类或标签平滑,而不必在 13 类的扁平空间里硬学长尾。

3A.3 与 ChemProt 标签体系的映射摩擦

跨语料使用者最常踩的坑集中在 ChemProt CPR 组与 DrugProt 13 类的映射上(完整对照速查表见附录 A.3)。三条结构性结论:

  • 不存在一一对应:CPR:9 substrate 系同时对应 SUBSTRATE 与 SUBSTRATE_PRODUCT-OF 两类;CPR:2 REGULATOR 的语义被拆进 DIRECT-REGULATOR 与 INDIRECT-* 类;三个复合类在 ChemProt 体系里完全没有对应物。任何声称「直接映射」的脚本都应在审计后废弃;
  • 评估口径不同:ChemProt 公开版本只评 5 组(CPR:3/4/5/6/9),DrugProt 全部 13 类参与评估——把 ChemProt 上训练的模型直接在 DrugProt 上报分,或反向迁移,评估结果都不可比;
  • NOT 关系的断层:ChemProt 的 CPR:10 NOT(否定关系)没有进入 DrugProt 的 13 类。若上游管线依赖否定检测,需要自行叠加句法/语义层面的否定处理,不能指望标签体系兜底。

3A.4 标签空间的实践清单

  • 把 13 类标签字符串视为数据契约的一部分:任何预处理(小写化、去连字符)都会破坏与官方评估脚本的兼容性;
  • 报告成绩时同时给出 micro-F1(官方主指标)与 per-type F1——只报 micro 会掩盖长尾类接近随机的现实(§3 提醒 1);
  • 做层级建模时,3A.2 的三维重组可作为先验分组起点,但分组本身应作为超参数在 dev 上验证,而非当作官方规定;
  • 迁移实验里,先做标签对齐审计(哪几类有对应物、哪几类是复合拆分、哪几类无对应),再动模型。

§3B 类别不平衡:长尾关系的建模策略

3B.1 不平衡的实际形状

DrugProt 公开关系(train+dev 合计 21,053 条)的分布是典型的重尾形态:最大类 INHIBITOR(6,544 条)与最小类 AGONIST-INHIBITOR(15 条)之间跨越约 400 倍。三个量化观察:

  • 头部集中:前 6 大类(INHIBITOR、DIRECT-REGULATOR、SUBSTRATE、ACTIVATOR、INDIRECT-UPREGULATOR、INDIRECT-DOWNREGULATOR)合计约占公开关系总量的 84%;
  • 尾部极稀:三个复合类(AGONIST-ACTIVATOR 39、SUBSTRATE_PRODUCT-OF 28、AGONIST-INHIBITOR 15,均为 train+dev 合计)加起来不足 90 条——平均每类不足 30 个样本;
  • 中间塌陷:第 7-10 类(ANTAGONIST、PRODUCT-OF、PART-OF、AGONIST,均在 790-1,190 区间)与头部之间存在明显断层,这些「中腰部」类别往往是 per-type F1 曲线上最陡峭的爬升段。

3B.2 策略清单(按工程介入顺序)

  • 候选对剪枝先行:关系分类的输入空间是「摘要内全部化学品×基因对」,绝大多数对是负例。先用词典与句法距离剪掉明显不可能的候选对,比在分类器上做任何加权都更划算——Max-recall baseline(P 0.0022)量化的正是全报正例的代价,反过来说明候选对生成阶段有巨大优化空间;
  • 损失层面:对 13 类做逆频率加权(inverse-frequency weighting)或 focal loss,是长尾分类的标准起步方案;注意对复合类的权重不宜无限放大——15 个样本加权 400 倍会把训练动态搅乱,通常给权重设上限;
  • 采样层面:批次内按类均衡采样(class-balanced sampling)优于全局随机采样,但会放大头部类的欠拟合,需要与重放缓冲(replay buffer)或混合采样配合;
  • 任务分解:两阶段方案(先二分类判「有无关系」,再在正例对上做 13 类细分)能把极度不平衡问题转化为温和不平衡问题,代价是多一套误差传播要管理;
  • 层级与聚合:利用 3A.2 的语义分组,先在方向维度(上调/下调/中性/代谢)上保证粗粒度正确,再细分细粒度——对间接类尤其有效;
  • 数据增广:ChemProt 与 DrugProt 域一致(同为 PubMed 摘要、同为人工 gold,§5.4),ChemProt 的对应关系样本可作为长尾类的补充语料,但必须先做 3A.3 的标签对齐审计;
  • 评估纪律:分层报告 per-type F1,长尾类单独列示;把「复合类接近随机」当作预期基线而非失败——官方成绩单里「个别关系类型 P/R 峰值 0.9167/0.9542」与长尾类的惨淡成绩并存,就是这个现实的官方注脚。

3B.3 一个务实的预期管理

给新入场的团队一个校准:在主赛道第一梯队(F1 约 0.77+,§7.1)的水平线上,增量收益几乎全部来自高频类的错误挤压与间接类的上下文建模;在长尾复合类上,任何架构改进都不如「多标几百条数据」直接。因此务实的路线是:把 13 类当成「10 个可学类 + 3 个需要特殊处理的稀疏类」来分配工程预算,而不是均匀用力。

§4 标注规范与指南

4.1 标注流程与人员

黄金标注由 BSC 与图尔库团队的生物医学文本挖掘专家完成(化学品实体与关系标注以 BSC 为主,基因/蛋白标注规范由图尔库方面深度参与——两机构在此前的 BioCreative 系列任务中长期分工协作)。标注对象为 PubMed 摘要全文(标题与摘要拼接),每个实体给出字符级偏移,每条关系给出化学品-基因参数对。标注决策的全部细则沉淀在三份公开注释指南里,均以独立 DOI 发布在 Zenodo:

  • 关系指南(关系类型定义与判定优先级):doi:10.5281/zenodo.4957137
  • 基因/蛋白实体指南(GENE-Y/GENE-N 判据与 GPRO 框架):doi:10.5281/zenodo.4957576
  • 化学品实体指南(化学品家族、混合物、缩写处理):doi:10.5281/zenodo.4957518
  • 补充 FAQ(参赛期高频问题汇编):doi:10.5281/zenodo.5042178

三份指南独立成 DOI 的做法本身就是可复用资产:后来者构建自己的 CPI 语料时可直接引用这套判据,而不必从论文附录里抠规则。

4.2 判定难点与指南对策

官方指南明确处理过的典型边界情形:

  • 一词多类:同一个词在语境中可能是化学品也可能是基因(如「iron」既是元素化学品又是含铁蛋白的组成部分)——指南规定按句内陈述的生物学角色判定,而非词表查表。
  • 关系方向与优先级:一对实体同时满足多类关系时(「X is an agonist that inhibits Y」),按指南规定的复合类或优先级处理。
  • 不可归一实体:基因家族(「the Raf kinases」)、基因片段、融合蛋白描述等标 GENE-N——它们不指向单一数据库条目。
  • 化学品家族与混合物:药物类别名(如「statins」)是否计入化学品,指南给出宽口径处理。

4.3 评估协议

  • 主指标:关系抽取 micro-F1(全部关系类型合并计算),官方评估脚本开源在 GitHub 仓库 tonifuc3m/drugprot-evaluation-library,可 pip 安装本地复算。
  • 评估同时报告实体识别分量(化学品与基因分开),但参赛排名以关系 F1 为准。
  • 主赛道使用 CodaLab 持久评估场景:挑战赛结束后测试集保持可提交状态,系统无需重跑即可持续对标——这在 2021 年的生物医学挑战赛里属于较先进的基础设施安排。
  • 测试集 gold 不公开,杜绝了测试集泄漏;代价是本地永远无法复现完整三方评估(坑 1)。

4.4 注释指南使用手册:按场景查表

四份公开文档(§4.1 的三个指南 DOI + FAQ)合计是 DrugProt 的「标注宪法」,但全文通读的成本不低。本节按使用场景给出直达路径:

你遇到的问题 查哪份 直达 DOI
这对化学品-基因该标 INHIBITOR 还是 INDIRECT-DOWNREGULATOR?直接还是间接怎么判? 关系指南 10.5281/zenodo.4957137
一对实体同时满足多类(如既 AGONIST 又 ACTIVATOR)时优先级如何? 关系指南 10.5281/zenodo.4957137
这个基因家族/片段/变异描述算 GENE-Y 还是 GENE-N? 基因/蛋白指南 10.5281/zenodo.4957576
GPRO 对象类型的归类框架与边界 基因/蛋白指南 10.5281/zenodo.4957576
药物类别名(如 statins)、混合物、盐型算不算化学品实体? 化学品指南 10.5281/zenodo.4957518
缩写首次出现与后续指称的标注口径 化学品指南 + FAQ 10.5281/zenodo.4957518 / 10.5281/zenodo.5042178
偏移要不要含前后空格、标点怎么算 FAQ 10.5281/zenodo.5042178
参赛期对任务定义的官方澄清(含格式类问题) FAQ 10.5281/zenodo.5042178

使用手册的四点说明:

  • 指南是判定细则的权威源:本条目 §3 的十三类语义描述与 §4.2 的边界情形均为综合转述,裁决级细节以指南原文为准——把指南当「规范文档」而非「背景阅读」,是复现标注一致性的前提;
  • 四份文档独立成 DOI 的检索策略:Zenodo 概念页可查各指南的版本更新;FAQ 的 DOI(5042178)在时间上晚于三份指南,收录的是参赛期真实高频问题——遇到指南没写清的情形,先翻 FAQ 再自行决策;
  • 指南复用价值:构建自有 CPI 语料时,直接引用这套判据可省去从头定义标签体系的工作;引用时用各指南的独立 DOI,不要只引主论文(附录 B);
  • 指南与数据的版本配套:指南发布于 2021 年参赛期,与 v1.1 数据(5042151)配套;期刊扩展版(2023)未发布新指南——若你在更晚时间点使用,以数据包内 README 与指南原文的并集为准。

4.5 判定流程的伪代码化

把指南的判定逻辑压缩成可执行的决策序(供实现弱监督标注器或审计自己模型输出时参考;正式规则以指南原文为准):

判定一对 (化学品 c, 基因/蛋白 g) 的关系标签:

1. 文本中 c 与 g 是否存在药理学陈述?
   否 → 无关系(不进入 relations.tsv)
2. 陈述是直接物理作用还是多步/未明机制?
   多步/未明 → INDIRECT-UPREGULATOR 或 INDIRECT-DOWNREGULATOR(按最终方向)
3. 直接作用中,方向是否明确?
   下调/抑制 → INHIBITOR;上调/激活 → ACTIVATOR;绑定但方向不明 → DIRECT-REGULATOR
4. 是否为受体药理专指叙述?
   激活受体 → AGONIST;阻断受体 → ANTAGONIST;兼具双重陈述 → 复合类(AGONIST-ACTIVATOR / AGONIST-INHIBITOR)
5. 是否为酶学/代谢角色?
   底物 → SUBSTRATE;产物 → PRODUCT-OF;兼具 → SUBSTRATE_PRODUCT-OF
6. 结构归属叙述 → PART-OF

这个六步序的顺序本身就是指南优先级的体现:间接性判断先于方向判断,方向判断先于药理专指,专指判断先于代谢角色——顺序错了会把「间接上调」误判成「直接激活」。用它审计模型错误时,可以定位到具体是哪一步的判断出了偏差(方向?机制?专指?),比笼统的 confusion matrix 更可行动。

§5 从 ChemProt 到 DrugProt:谱系与改进

5.1 前身 ChemProt(BioCreative VI Track 5)

ChemProt 是 2017 年 BioCreative VI 挑战赛 Track 5 的产物,也是 CPI 抽取任务的奠基基准:

维度 ChemProt(2017) DrugProt(2021)
摘要规模 2,432(train 1,020 / dev 612 / test 800) 5,000(train 3,500 / dev 750 / test 750)
原始关系注释 22 种细粒度 13 种细粒度(全部公开)
公开版本关系组 归并为 10 组(CPR:1-10) 不归并,13 类直接公开
参与评估的组 仅 5 组(CPR:3/4/5/6/9) 全部 13 类
未评估组 CPR:1 PART_OF、CPR:2 REGULATOR、CPR:7 MODULATOR、CPR:8 COFACTOR、CPR:10 NOT 无(PART-OF 进入正式评估;REGULATOR 语义并入 DIRECT/INDIRECT 类;NOT 未保留)
可扩展性评估 无 Large Scale 专门赛道(236 万摘要)
冠军成绩 F 64.1(RNN+CNN 集成) 主赛道第一梯队 F1 约 77%+

5.2 两大局限与两大改进

ChemProt 的局限一:粒度合并。22 种原始注释被压成 10 组再砍到 5 组评估,「抑制」家族内部的直接/间接、上调/下调四类语义被强行折叠,研究者无法建模药理学家真正关心的区分。DrugProt 的回应是 13 类完整公开、全部参与评估。

ChemProt 的局限二:无可扩展性评估。2,432 篇摘要训练出的模型在真实文献库上的衰减无人知晓。DrugProt 的回应是 Large Scale 赛道:给定 236 万篇银标摘要,参赛系统需在黄金测试子集上保持精度、在全库上保持吞吐——UTHealth 队在 240 万文档规模上跑出 micro F1 77.32%(9 队第 2)就是这条赛道的直接产出。

5.3 冠军成绩的四年演进

ChemProt 冠军(2017)F 64.1 → DrugProt 主赛道第一梯队(2021)F1 77%+:四年约 13 个百分点的提升。归因上,官方结果分析明确指出多数参赛者采用 BERT/BioBERT 类预训练语言模型微调——这一时期预训练模型的普及是主因,而非任务设计变化。换言之,DrugProt 记录了 CPI 任务在预训练时代的真实水位线。

5.4 迁移使用注意

  • 标签映射:ChemProt CPR 组与 DrugProt 13 类不存在一一对应(如 CPR:9 SUBSTRATE 系对应 SUBSTRATE 与 SUBSTRATE_PRODUCT-OF 两类;复合类无对应物)。跨语料迁移学习需按语义对齐表重映射,不能沿用任何网上流传的「直接映射」脚本。
  • 域一致性:两者都来自 PubMed 摘要、都是人标 gold,预训练后互为天然增补数据——这是社区已验证的可行方向。
  • 许可差异:ChemProt 的许可口径与其发布渠道绑定,DrugProt 为无附加条款的 CC BY-4.0,合并发布衍生语料时以后者为准更稳妥。

§6 获取、许可与版本链

6.1 获取入口

资源 DOI / 入口 内容
黄金训练+开发集 v1.1 10.5281/zenodo.5042151 drugprot-gs-training-development.zip(3,796,908 bytes;md5 eeb928823d1357510a415256f8957066)
概念页(全版本) 10.5281/zenodo.4955410 版本链入口
Large Scale 银标 10.5281/zenodo.5119878 large_scale_abstracts.tsv(2,366,081 行)+ large_scale_entities.tsv(53,993,602 行)
关系注释指南 10.5281/zenodo.4957137 13 类关系判定细则
基因/蛋白指南 10.5281/zenodo.4957576 GENE-Y/N 判据、GPRO 框架
化学品指南 10.5281/zenodo.4957518 化学品实体判定细则
FAQ 10.5281/zenodo.5042178 参赛期高频问题
评估库 github.com/tonifuc3m/drugprot-evaluation-library pip 安装,micro-F1 官方实现
任务页 biocreative.bioinformatics.udel.edu/tasks/biocreative-vii/track-1/ 挑战赛原始说明与 leaderboard

6.2 版本链

  • v1.0(Zenodo 4955411):2021-06-15 发布,仅含训练集——比赛开赛时的首发版本。
  • v1.1(Zenodo 5042151):2021-06-29 发布(API created 2021-06-29T15:53:50),补入开发集,成为事实上的标准引用版本;记录于 2023-08-15 还有一次元数据修订(API revision 13)。
  • 概念页(conceptrecid 4955410):聚合两版,引用概念 DOI 10.5281/zenodo.4955410 可自动指向最新版。

6.3 许可确认过程(存照性说明)

Zenodo 网页端的 license 显示位对这条记录并不渲染(坑 6 的来源)——但 Zenodo REST API 的元数据里字段齐全:GET https://zenodo.org/api/records/5042151 返回 metadata.license.id = "cc-by-4.0"、access_right = "open"。API 是权威口径,本条目采用 CC BY-4.0。Zenodo 记录的关键词字段为:NLP、relation extraction、NER、biomedical NLP、biocreative;社区归属 medicalnlp;语言 eng;资源类型 dataset。

6.4 资助与联系

  • 资助:欧盟 EC BIOMATDB(Grant Agreement 101058779)+ 西班牙 Plan TL(Plan de Impulso de las Tecnologías del Lenguaje de la Agenda Digital)。
  • 联系:krallinger.martin@gmail.com / antoniomiresc@gmail.com。
  • 团队归属:BSC(巴塞罗那超级计算中心)+ 图尔库大学(Turun yliopisto)+ 加泰罗尼亚理工大学(UPC)。

§6.5 坑点清单(8 则)

坑 1:测试集 gold 永远拿不到。 测试集 750 篇的标注只存在于 CodaLab 评估后端,任何声称「DrugProt 完整数据下载」的第三方镜像都无法提供它。本地只能做 train/dev 交叉验证;论文里凡出现「5,000 篇全部评估」的说法都要检查其测试口径。引用关系总量时注意 21,053(公开)与 24,526(官方总量含未公开测试 gold)两个口径(§2.1)。

坑 2:第三方论文的关系计数与官方不一致。 参赛队论文常报与 Zenodo 官方 Summary statistics 有小幅出入的训练集计数:INHIBITOR 官方 5,392,CU-UD 论文写 5,277,HyperAI 论文(arXiv 2111.00611)写 5,392/1,150;AGONIST 官方 659 vs 658/652;ACTIVATOR 官方 1,429 vs 1,428/1,394;ANTAGONIST 官方 972 vs 931。这些偏差多半源于 dev 集合并、早期版本或自行去重。引用一律以 Zenodo 官方为准,本条目全表采用官方数。

坑 3:偏移基准是 title+abstract 拼接全文。 entities.tsv 的字符偏移从标题第一个字符起算。最常见事故:只加载摘要正文就开始切片,全部实体错位;或者预处理时把多空格/换行规范化掉,偏移整体漂移。正确姿势:保留原文逐字节不动,仅在需要正文局部时叠加标题长度偏移。

坑 4:GENE-Y/GENE-N 只在训练集存在。 开发集实体表统一标 GENE。跨 split 联合训练或做实体类型分类时,若不把 GENE-Y/GENE-N 归并为 GENE,训练与开发的标签空间不一致会直接报错或静默丢数据。归一(normalization)方向的研究则相反——开发集没有可归一性标注,只能回训练集找监督。

坑 5:Large Scale 银标不是关系训练集。 它只有自动实体注释、没有关系标注;且含 222 条不同 PMID 但同题同摘要的重复记录(官方 README 自曝)。把它当「236 万篇关系语料」使用是社区最常见误解;正确用法是实体检测器预训练/领域自适应/知识图谱构建,关系监督仍只能来自 4,250 篇黄金集。

坑 6:网页端看不到 license 字段。 Zenodo 网页对这条记录的 license 显示位不渲染,Google 搜索结果页也因此常有「license 未知」的误述。权威确认走 REST API(zenodo.org/api/records/5042151 → metadata.license.id = cc-by-4.0)。本库条目按 API 口径写 CC BY-4.0。

坑 7:官方引用模板指向前身。 Zenodo 记录给出的引用格式模板(key 为 krallinger2017overview)实际引用的是 BioCreative VI CHEMPROT overview(2017 年会议论文集)——官方有意把 Challenge 系列作为连续谱系引用。写论文时若要引用 DrugProt 本体,建议改用 2021 年第七届 workshop overview(miranda2021overview)或 2023 年期刊版(miranda2023overview,Database baad080)。

坑 8:两版 Zenodo 记录并存。 v1.0(4955411,仅训练集)与 v1.1(5042151,训练+开发)都是可访问的独立记录。用 4955411 下载只能拿到训练集,且部分第三方教程至今仍指向它。引用概念 DOI 10.5281/zenodo.4955410 或直接用 5042151 才能拿到完整训练+开发包。

§7 评估与基准

7.1 主赛道(Gold Standard Track)全景

BioCreative VII Track 1 主赛道于 2021 年举办,参赛规模与结果概貌:

  • 30 支队伍报名,参赛者横跨四大洲共 110 人;
  • 累计提交 107 个运行结果(runs),多数队伍迭代了 3-4 个版本;
  • 多数参赛者采用 BERT/BioBERT 类预训练语言模型微调,少数结合规则、词典与图特征;
  • 个别关系类型上出现精确率峰值 0.9167、召回率峰值 0.9542——细粒度类别的天花板已经相当高,但这是分类型峰值而非全场平均;
  • 官方组织方参照系统(Turku-BSC 自研基线)micro-F1 约 0.744,为参赛者提供了赶超锚点;
  • Max-recall baseline(全部化学品-基因对都报 INHIBITOR 的退路策略):P 0.0022 / R 1.0 / F1 0.0044——它量化的正是「不排全靠蒙」的代价。

第三方视角的锚点:UTHealth 队在 MEDINFO 2023 论文(doi:10.3233/SHTI231043)中自述其主赛道最佳系统 F1 77.60%、在 30 队中排名第 4。由此可推:主赛道前三名的成绩在 77.6% 以上(精确名次与分数见期刊论文 leaderboard 表;本场第 1 名的精确 F1 未在本条目抓取的开放来源中直接捕获,存照 §9)。

7.2 主赛道结果分析要点(期刊版口径)

  • 预训练语言模型是分水岭:BERT 家族微调普遍越过 0.74 参照线,传统特征工程方法整体落在其下;
  • 关系类型分解显示:高频类(INHIBITOR 等)成绩接近实体识别上限,而低频复合类(AGONIST-ACTIVATOR、AGONIST-INHIBITOR、SUBSTRATE_PRODUCT-OF 合计不足 60 条)几乎全靠运气——样本量而非算法决定了长尾命运;
  • 错误分析表明间接关系(INDIRECT-UP/DOWNREGULATOR)是最难的两类:判断「间接」需要跨越句法边界甚至句间推理,摘要级上下文建模至今仍是开放问题。

7.3 Large Scale 赛道成绩表(9 队 / 21 runs)

Large Scale 赛道评估分设于不同评估中心提交窗口(NLM-NCBI 窗口 18 队提交、UTHealth-CCC 窗口 7 队等),各队 best run 的 micro-F1 如下:

排名参考 队伍 best run P R F1
1 NLM-NCBI run 2 0.772977 0.804871 0.788602
2 UTHealth-CCC run 3 — — 0.773216
3 CU-UD — — — 0.763305
4 KU-AZ — — — 0.757689
5 good team — — — 0.742714
6 FSU2021 — — — 0.716747
7 The Three Musketeers — — — 0.63529
8 TMU_NLP — — — 0.583417
9 NVhealthNLP — — — 0.457537

(表中「—」为期刊成绩表未列出分项的条目;F1 为官方 leaderboard 口径。)

要点解读:

  1. 冠军 NLM-NCBI 的 0.788602 是在 240 万文档规模评估下取得——精度与主赛道第一梯队(约 0.77-0.78)几乎无差,说明「黄金小子集训练 + 全文献库部署」的精度衰减可控。
  2. UTHealth 的双赛道稳定:主赛道 77.60%(第 4)、Large Scale 77.32%(第 2),其 MEDINFO 2023 论文给出的工程细节(2.4M 文档 micro F1)是目前公开资料里最好的大规模部署参考。
  3. 成绩断层:第 5 名(0.742714)到第 8 名(0.583417)掉了近 16 个百分点——大规模推理的工程效率(批处理、缓存、候选对剪枝)成为中后段队伍的主要瓶颈,而非模型精度本身。

7.4 高频错误实体清单(Large Scale,期刊版错误分析)

系统在大规模推理中最容易搞错的实体(FN = 漏报次数 / FP = 误报次数):

类型 实体 FN FP 常见混淆模式
化学品(CEM 类) Ca 2+ 1,711 1,339 离子/信号分子/蛋白结合辅因子三重身份
化学品(CEM 类) N(氮) 1,216 1,096 单字母元素名与氨基酸缩写/N 端歧义
化学品(CEM 类) BAY 50-4798 1,077 921 药企编码名,语料内长尾
化学品(CEM 类) Sulindac 944 843 老药名在多疾病语境反复出现
蛋白(GPRO 类) COX-2 1,873 2,151 基因名/蛋白名/抑制剂作用对象混写
蛋白(GPRO 类) AChE 1,570 1,468 缩写多义(乙酰胆碱酯酶等)
蛋白(GPRO 类) Cyclin D1 822 650 基因官方符号(CCND1)与俗名并存

这份清单的实际价值:它是「大规模生物医学 NER/RE 系统上线前该先修哪些词典规则」的现成优先级表——离子缩写、单字母元素、药企编码名、多义蛋白缩写是四大重灾区。

7.5 衍生知识图谱

组织方由 Large Scale 银标注释构建了 silver standard 知识图谱:53,993,602 节点 / 19,367,406 边。节点与实体注释一一对应(同值 53,993,602,§9 存照说明),边代表摘要内共现与候选关系。它的定位是 CPI 下游研究的检索底座(药物重定位、靶点发现类项目的高召回起点),不是可直接消费的 gold 图谱。

7.6 成绩引用与对标口径规范

引用或对标 DrugProt 成绩时的口径清单——每一项都对应一个真实存在过的误引模式:

  • 分赛道引用:主赛道(Gold Standard Track,30 队)与 Large Scale 赛道(9 队)的成绩不可互换引用。UTHealth 的 77.60% 是主赛道、77.32% 是 Large Scale——同队双赛道数字相近但口径完全不同;
  • 分指标引用:官方主指标是关系抽取 micro-F1;「个别关系类型 P 0.9167 / R 0.9542」是分类型峰值,不能写成「系统精确率 0.9167」;
  • 分 split 口径:dev 上调参的实验与 CodaLab 测试集提交是两种口径;论文里混写是审稿高频抓点(§9E 实验记录清单第三条);
  • 参照线引用:组织方参照系统约 0.744 是「赶超锚点」而非「历史最好成绩」——低于它说明实现有问题,高于它是正常水位(§9.4);
  • 基线下界引用:Max-recall baseline(P 0.0022 / R 1.0 / F1 0.0044)的价值是量化「全报正例」的代价,用于 sanity check 而非性能对标;
  • 第三方数字引用:UTHealth 的 MEDINFO 2023 自述、CU-UD 的 arXiv 2112.03004、HyperAI 的 arXiv 2111.00611 都是参赛队自报口径——关系计数与官方有出入(坑 2,附录 E),引用时注明「参赛队论文口径」。

对标报告的最小模板(可直接套用):

模型 X 在 DrugProt 上的表现:
- 评估口径:CodaLab 测试集提交 / dev 交叉验证(二选一明示)
- 主指标:关系抽取 micro-F1 = [分数](官方评估库版本 [版本号])
- 参照系:组织方参照 0.744 / 主赛道 UTHealth 第 4 名 77.60% / Large Scale 冠军 NLM-NCBI 0.788602
- 分解报告:per-type F1 全表(尤其三个复合类单列)
- 数据版本:Zenodo 5042151(v1.1),md5 校验通过

这个模板的每一条都是在防一种误引:不写口径,读者会默认测试集成绩;不写评估库版本,数字不可复现;不写参照系,分数失去坐标系;不写 per-type,长尾问题被 micro 平均掩盖。

§8 DAIMS 评估(数据集 AI-Readiness 五维打分)

维度 评分 依据
Documentation 文档完备 9/10 三份注释指南 + FAQ 各有独立 DOI;任务页、论文(会议+期刊)、评估库文档齐备;扣 1 分:主赛道第 1 名精确成绩与部分 P/R 分项未在开放来源集中可得
Accessibility 可获取 9/10 CC BY-4.0 无附加条款;Zenodo 直链 + md5 校验值官方给出;测试集 gold 除外(设计使然);Large Scale 236 万篇为纯 TSV 可分块流式读
Interoperability 互操作 8/10 纯 TSV 三表、PMID 外键可直接 join PubMed/ChEBI/UniProt;字符偏移无 XML 包裹;扣分点:偏移基准(title+abstract 拼接)与 GENE-Y/N 的 split 不一致需要使用者自行处理
Maintenance 维护 8/10 v1.1 元数据 2023-08-15 仍有修订(revision 13);CodaLab 持久评估场景挑战赛后仍可提交;评估库 GitHub 可用;扣分:测试集标注未随期刊版补齐公开,银标 222 条重复未见官方去重版发布
Standardization 规范对齐 8/10 13 类关系标签全大写蛇形命名、实体类型对齐 GPRO/BioCreative 惯例;JSON-LD/MLCommons Croissant 生态可直接映射 cr:RecordSet;扣分:ChemProt 旧标签体系(CPR 组)在社区仍广泛流通,双体系并存带来映射摩擦
合计 42/50 AI-Ready 高分样本:自包含、许可干净、格式朴素;主要短板集中在测试集不可得与跨版本标签摩擦

8.1 五维打分的证据明细

§8 的 DAIMS 表给出分数与扣分理由;本节把每一维的证据点展开到具体出处,便于复核与更新:

D(Documentation,9/10)的证据面

  • 加分:三份注释指南 + FAQ 各有独立 DOI(§4.1);会议 overview(2021)与期刊扩展版(Database 2023, baad080)双论文齐备;官方评估库 GitHub 有 README 与安装说明;任务页(biocreative.bioinformatics.udel.edu)保留原始说明;
  • 扣 1 分:主赛道第 1 名的精确队名与 F1、部分分项 P/R 未在开放来源集中可得(附录 H.3 遗留疑点第一条)——「最关键的一个数字要翻纸质论文表」本身就是文档完备性的小缺口。

A(Accessibility,9/10)的证据面

  • 加分:CC BY-4.0 无附加条款(API 权威确认);Zenodo 直链下载 + 官方 md5 校验值;数据包仅 3,796,908 bytes(下载成本可忽略);Large Scale 236 万篇为纯 TSV,可流式分块(§9D);指南、FAQ、评估脚本全部开放;
  • 扣 1 分:测试集 gold 不可得——这是挑战赛设计使然而非许可限制,但对「完全离线复现」的用法构成实质障碍(坑 1)。

I(Interoperability,8/10)的证据面

  • 加分:纯 TSV 三表无 XML/专有格式包裹;PMID 是全库主外键,可直接 join PubMed、ChEBI(314)、UniProt 等外部体系;13 类标签全大写蛇形命名可直接作分类头类别名;MLCommons Croissant 的 cr:RecordSet 语义可直接映射(本条目 frontmatter 已示范);
  • 扣 2 分:偏移基准(title+abstract 拼接)是隐式约定、文档外不显眼(坑 3);GENE-Y/N 与 GENE 的 split 不一致需要使用侧归并(坑 4)——两处都是「不读文档就必踩」的互操作摩擦。

M(Maintenance,8/10)的证据面

  • 加分:v1.1 元数据 2023-08-15 仍有修订(API revision 13,发布两年后仍在维护);CodaLab 持久评估场景赛后仍可提交(§4.3);评估库 GitHub 存活;
  • 扣 2 分:测试集标注未随期刊版补齐公开;银标 222 条重复未见官方去重版发布(坑 5)——两个已知的完善机会在期刊版(2023)窗口内没有落地。

S(Standardization,8/10)的证据面

  • 加分:关系标签全大写蛇形命名;实体类型对齐 GPRO 框架(BioCreative V 确立的社区惯例);GPRO 与 BioCreative 谱系惯例延续性强;
  • 扣 2 分:ChemProt 的 CPR 组标签体系在社区长期流通,双体系并存带来映射摩擦(§3A.3);偏移口径与部分同类语料(如以 XML 标注为载体的语料)不对齐,跨语料管线要写适配层。

8.2 分数的正确用法

  • 42/50 是对本条目核验时点的快照,不是永久属性——若官方日后发布去重银标或补公开测试标注,M 维与 A 维应上调;使用本条目时建议重跑 §6.1 的获取入口确认版本;
  • 五维分数之间不可互换补偿:I 维的 8 分不能抵消 A 维测试集不可得的约束——一个维度上的硬缺口(test gold 无本地副本)是使用方式层面的限制,不会因为其他维度优秀而消失;
  • 与其他条目横向比较时注意口径:DAIMS 是同一评分框架下的相对刻画,跨条目比较应连同证据明细(本节)一起看,而非只比总分。

§9 复现实战指南

9.1 十分钟跑通:下载与加载

# 黄金训练+开发集(v1.1,训练+开发)
wget https://zenodo.org/records/5042151/files/drugprot-gs-training-development.zip
unzip drugprot-gs-training-development.zip
md5sum drugprot-gs-training-development.zip
# 期望:eeb928823d1357510a415256f8957066

# Large Scale 银标(236 万篇,文件较大建议断点续传)
wget -c https://zenodo.org/records/5119878/files/large_scale_abstracts.tsv.gz
wget -c https://zenodo.org/records/5119878/files/large_scale_entities.tsv.gz
# 最小加载示例:构建 (PMID, 全文) 与实体表
import csv

def load_abstracts(path):
    rows = {}
    with open(path, encoding="utf-8") as f:
        for line in f:
            pmid, title, abstract = line.rstrip("\n").split("\t", 2)
            rows[pmid] = title + abstract   # 偏移基准:标题+摘要拼接
    return rows

def load_entities(path):
    ents = []
    with open(path, encoding="utf-8") as f:
        for line in f:
            pmid, tnum, etype, start, end, text = line.rstrip("\n").split("\t")
            ents.append((pmid, tnum, etype, int(start), int(end), text))
    return ents

abstracts = load_abstracts("drugprot_training_abstracts.tsv")
entities  = load_entities("drugprot_training_entities.tsv")

# 自检:抽样验证实体 span 与原文一致
pmid, tnum, etype, s, e, text = entities[0]
assert abstracts[pmid][s:e] == text, "偏移错位!检查是否叠加了标题偏移"
print("span check OK:", text)

两个实现细节:TSV 逐行 split("\t") 而非 csv 模块的通用方言处理(避免引号转义改写字节);断言 span 是必做自检——它是坑 3 的第一道防线。

9.2 官方评估脚本复算

pip install drugprot-evaluation-library
# 或从源码安装:
git clone https://github.com/tonifuc3m/drugprot-evaluation-library.git
# micro-F1 复算示意:与官方 leaderboard 同口径
#(完整参数与格式样例见仓库 README)
from drugprot.evaluation import evaluate_relation_extraction
score = evaluate_relation_extraction(
    gold_path="gold_test_pred/",     # 官方格式的关系预测文件目录
    pred_path="my_system_output/",
)
print(score)

注意:本地复算只能针对自己构造的 dev 切分或半正式评测;测试集评估必须走 CodaLab 提交(主赛道场景在挑战赛后仍保持开放,这也是它比一般挑战赛更 AI-Ready 的地方)。

9.3 跨版本/跨语料对齐清单

开工前逐项打勾:

  • 实体类型归并:训练集 GENE-Y/GENE-N → 统一 GENE(若与 dev 联合训练);
  • 偏移校验:每个 batch 抽样 abstract[pmid][s:e] == text;
  • 标签映射:ChemProt CPR 组 → DrugProt 13 类需语义对齐表,禁用任何「直接映射」脚本;
  • 去重:Large Scale 加载后按(标题,摘要)内容去重,剔除 222 条重复;
  • 银标用法:仅用于实体预训练/自适应/共现图,关系监督只认黄金集 4,250 篇。

9.4 已验证的基线参考

  • 组织方参照系统(Turku-BSC):micro-F1 约 0.744——低于它说明实现有 bug 高于它是正常水位;
  • 预训练模型微调(BERT/BioBERT 家族):主赛道多数参赛者的共同选择,第一梯队约 0.77+;
  • Large Scale 部署参考:UTHealth MEDINFO 2023 论文(doi:10.3233/SHTI231043)——2.4M 文档 micro F1 77.32%,含工程取舍细节;
  • 长尾策略:后 4 类复合关系(合计 82 条公开样本)建议用提示学习/少样本方案单独处理,常规微调在这四类上接近随机。

9A. 工程化加载:pandas 与 HuggingFace datasets

§9.1 的最小加载示例适合快速验证;进入训练循环后,推荐用 pandas 或 HuggingFace datasets 封装。以下两段代码同样基于 §2.4 的三表结构,可直接落盘。

# pandas 版:三表一次加载为 DataFrame
import pandas as pd

COLS = {
    "abstracts":  ["pmid", "title", "abstract"],
    "entities":   ["pmid", "term", "type", "start", "end", "text"],
    "relations":  ["pmid", "relation", "arg1", "arg2"],
}

def load_split(prefix):
    """prefix 形如 drugprot_training / drugprot_development"""
    abstracts = pd.read_csv(f"{prefix}_abstracts.tsv", sep="\t",
                            names=COLS["abstracts"], dtype=str, quoting=3)
    entities = pd.read_csv(f"{prefix}_entities.tsv", sep="\t",
                           names=COLS["entities"], dtype=str, quoting=3)
    relations = pd.read_csv(f"{prefix}_relations.tsv", sep="\t",
                            names=COLS["relations"], dtype=str, quoting=3)
    return abstracts, entities, relations

train_abs, train_ent, train_rel = load_split("drugprot_training")
dev_abs,   dev_ent,   dev_rel   = load_split("drugprot_development")

# 类型归并(坑 4):GENE-Y/GENE-N -> GENE,与 dev 对齐
train_ent["type_aligned"] = train_ent["type"].replace(
    {"GENE-Y": "GENE", "GENE-N": "GENE"})

三个参数说明:quoting=3(QUOTE_NONE)关闭 csv 方言的引号解释,防止摘要文本里的引号被改写字节——这是坑 3「保留原文逐字节不动」的 pandas 落地;dtype=str 防止 PMID 被读成整数丢失前导零风险;sep="\t" 配合「从右侧切分」的防御性读取(§2.4 解析要点第四条)在大文件上若遇列数异常行,可退回逐行处理并记录坏行。

# HuggingFace datasets 版:支持 streaming 与缓存
from datasets import Dataset, DatasetDict

def to_hf(abstracts, entities, relations):
    ent_grouped = entities.groupby("pmid", sort=False).apply(
        lambda g: g.to_dict("records")).to_dict()
    rel_grouped = relations.groupby("pmid", sort=False).apply(
        lambda g: g.to_dict("records")).to_dict()
    rows = []
    for r in abstracts.itertuples(index=False):
        rows.append({
            "pmid": r.pmid,
            "text": r.title + r.abstract,   # 坑 3:偏移基准 = title+abstract 拼接
            "entities": ent_grouped.get(r.pmid, []),
            "relations": rel_grouped.get(r.pmid, []),
        })
    return Dataset.from_list(rows)

drugprot = DatasetDict({
    "train": to_hf(train_abs, train_ent, train_rel),
    "dev":   to_hf(dev_abs,   dev_ent,   dev_rel),
})

封装成结构化 DatasetDict 之后,跨 split 的样本级抽样校验、按关系类型的分层切分、错误分析时的按 PMID 回溯都变成一行 groupby 的事。

9B. 候选对生成与负采样工作台

关系监督只标注了「存在关系的化学品-基因对」;训练需要显式负例。候选对生成的标准做法:每篇摘要内,全部化学品实体 × 全部基因实体做笛卡尔积,出现在 relations.tsv 里的为正例,其余为负例。

def generate_candidates(entities_df, relations_df, pmid):
    """返回 (chem_term, gene_term, label, relation_type) 四元组列表"""
    ents = entities_df[entities_df["pmid"] == pmid]
    chems = ents[ents["type"].isin(["CHEMICAL"])]
    genes = ents[ents["type"].isin(["GENE", "GENE-Y", "GENE-N"])]
    positive = relations_df[relations_df["pmid"] == pmid]
    pos_keys = {
        (row.arg1.split(":")[1], row.arg2.split(":")[1]): row.relation
        for row in positive.itertuples(index=False)
    }
    out = []
    for c in chems.itertuples(index=False):
        for g in genes.itertuples(index=False):
            key = (c.term, g.term)
            out.append({
                "pmid": pmid, "chem": c.term, "gene": g.term,
                "label": 1 if key in pos_keys else 0,
                "relation": pos_keys.get(key, "NONE"),
                "chem_span": (int(c.start), int(c.end)),
                "gene_span": (int(g.start), int(g.end)),
            })
    return out

负采样纪律五条:

  • 负例远多于正例:每篇摘要平均约 21 个实体(公开部分 108,387 实体 / 5,000 篇),候选对与正例的比例悬殊,直接全量训练会让模型退化成「全判负」——用 3B.2 的采样策略对冲;
  • 正例键 = (Arg1 的 T 编号, Arg2 的 T 编号):关系方向固定化学品在前(§2.4 解析要点第二条),生成负例时保持同一方向约定,避免「反向对泄漏」——即同一对实体正反两个方向都被当成独立样本;
  • 候选对范围限定在同篇摘要内:PMID 是复合键的一部分(§2.4 解析要点第三条),跨摘要配对是无效样本;
  • 实体 span 校验随批执行:每个 batch 抽样断言 text[start:end] == 实体原文(§9.1 的 assert),偏移错位在训练前暴露的成本远低于训练后;
  • 评估阶段的候选对必须全量:官方评估不做负采样——提交系统需对全部候选对给判,CodaLab 后端按 gold 对齐计算 micro-F1,训练时偷懒剪枝的策略不能带进评估。

9C. 错误分析工作台

以 §7.4 高频错误实体清单为线索,错误分析的标准闭环是:按实体回溯 FN/FP → 归类混淆模式 → 修词典/规则或采样 → 复评。以下脚本给出按实体聚合 FN/FP 的最小实现:

from collections import Counter

def error_by_entity(gold_rels, pred_rels, entities_df):
    """gold/pred: {(pmid, chem_term, gene_term): relation_label}"""
    fn, fp = Counter(), Counter()
    for key, gold_label in gold_rels.items():
        pred_label = pred_rels.get(key, "NONE")
        pmid, chem, gene = key
        if gold_label != pred_label:
            bucket = fn if gold_label != "NONE" else fp
            # 定位到具体实体原文,便于人工归因
            ents = entities_df[(entities_df["pmid"] == pmid)
                               & (entities_df["term"].isin([chem, gene]))]
            for surface in ents["text"]:
                bucket[surface] += 1
    return fn, fp

# 用法示例(伪数据):
# fn, fp = error_by_entity(gold, pred, dev_ent)
# print(fn.most_common(20))   # 漏报最多的实体原文
# print(fp.most_common(20))   # 误报最多的实体原文

期刊版错误分析(§7.4)揭示的四大重灾区——离子缩写(Ca 2+)、单字母元素名(N)、药企编码名(BAY 50-4798)、多义蛋白缩写(AChE/COX-2)——都可以用这个工作台在自己的系统输出上复现:如果你们的 FN/FP 榜首也是这些实体,说明问题在实体层的歧义消解而非关系分类器,先修 NER 与词典优先级,再动关系模型。

9D. Large Scale 银标的分块处理与去重管线

2,366,081 行摘要、53,993,602 行实体注释的 TSV 无法整表读入内存,标准做法是分块流式处理;222 条同题同摘要重复(坑 5)在流式里用内容哈希去重:

import hashlib

def iter_dedup_abstracts(path, chunksize=100_000):
    """流式读取 large_scale_abstracts.tsv,按(标题,摘要)内容去重。
    返回 (pmid, title, abstract);去重后约 2,365,859 篇。"""
    seen = set()
    for chunk in pd.read_csv(path, sep="\t", names=["pmid", "title", "abstract"],
                             dtype=str, quoting=3, chunksize=chunksize,
                             iterator=True):
        for r in chunk.itertuples(index=False):
            h = hashlib.sha256((r.title + "\x1f" + r.abstract).encode("utf-8"))
            if h.digest() not in seen:
                seen.add(h.digest())
                yield r

去重键的选择有讲究:官方 README 说明重复记录是「PMID 不同但标题与摘要相同」,因此键必须取内容(title+abstract)而非 PMID——按 PMID 去重一条都去不掉。分隔符用 \x1f(ASCII 单元分隔符)而非空串拼接,避免标题尾字符与摘要首字符拼出假碰撞。

银标的推荐用法重申(坑 5):实体检测器预训练、领域自适应、共现图构建——三层都没有关系监督;关系层面的训练永远只来自 4,250 篇黄金集。若要用银标做弱监督关系抽取,必须自建「共现对 + 远程监督打标」的管线,并接受噪声率不可控的现实。

9E. 实验记录清单:跑第一个正式实验前

  • 环境:记录 drugprot-evaluation-library 版本号与评估脚本 commit hash——官方库更新会导致 F1 口径漂移;
  • 数据指纹:下载后核对 md5 eeb928823d1357510a415256f8957066(§6.1),训练日志里记录 train/dev 文件行数与关系计数(应为 17,288 / 3,765),偏差即数据损坏或版本错拿(坑 8 的 4955411 只有训练集);
  • 口径声明:报告的是公开 split 交叉验证还是 CodaLab 测试集成绩,两者不可混写——论文里最常见的自我矛盾就是 dev 调参、test 报分却共用同一组超参;
  • 标签版本:记录是否做了 GENE-Y/N 归并(坑 4)、是否做了 13 类到聚合层的映射(3A.2)——实验可复现性的最小元数据;
  • 长尾基线:任何新方法都先报 per-type F1 全表,特别是三个复合类(合计不足 90 条)——只报 micro-F1 的实验记录对后续工作几乎没有信息量。

§10 生态位与库内互链

10.1 在生物医学 NLP 语料谱系中的位置

DrugProt 处于 BioCreative 系列挑战赛的直系血脉上,与三条相邻谱系交汇:

  • BioCreative 谱系(任务演进线):BC II 基因mention识别 → BC IV 蛋白归一 → BC V GPRO 框架(DrugProt 银标实体类型直接沿用)→ BC VI Track 5 ChemProt(前身)→ BC VII Track 1 DrugProt(本条目) → BC 后续多文档/文献挖掘辅助任务;
  • CPI/-DDI 任务线:ChemProt 与 DDI 语料共同构成药物相互作用与药物-靶点关系抽取的两大基准,DrugProt 是其中唯一同时具备 13 类细粒度 + 百万级扩展的;
  • 化学品/药物 NER 线:ChemDNER(化合物 mention 检测)解决「找到化学品」,DrugProt 解决「找到关系」——前者是后者的天然上游预训练素材。

10.2 库内互链条目(rid 为库内实查)

条目 rid 互链逻辑
ChemProt 753 直接前身:同任务、同团队、标签体系演进关系,必互链
ChemDNER 450 BioCreative 谱系化学品 NER 基准:DrugProt 化学品实体层的上游同源
BioRED 457 BioCreative 后续多实体类型关系基准:任务接力与对比评估的下一站
DrugBank 89 手工策展药物-靶点数据库:DrugProt 归一目标与交叉验证金源
DrugCentral 344 药物-靶点/适应症库:同上,CPI 关系核查来源
DrugComb 274 药物组合数据:CPI 关系下游应用(组合用药建模)
ChEBI 314 化学实体本体:DrugProt 化学品归一的参考本体
BC2GM 434 BioCreative II 基因 mention 语料:基因实体检测的祖源基准
JNLPBA 442 基因/蛋白 NER 经典基准:实体层跨语料对比
MedMentions 390 大规模实体链接语料:GENE-N 类实体归一研究的参照

注意两点:库内 DrugBank 与 ChEMBL 各有两条同 url_name 记录(DrugBank 89/571、ChEMBL 85/572),互链引用取 89/85;ChEMBL(85) 亦可作为化学品归一补充互链,但首选 ChEBI(314) 与 DrugBank(89)(与本语料关系层的语义距离更近)。

10.3 下游应用图景

  • 药物发现信息学:靶点-化合物关系自动抽取,喂给虚拟筛选与药物重定位管线(库内药物发现类条目的文献证据层);
  • 知识图谱构建:silver KG(5,399 万节点)作为生物医学图谱的文献共现先验;
  • 药品安全信号检测:INHIBITOR/ANTAGONIST 类关系与不良反应信号交叉(可与库内药物警戒类语料联动);
  • 大语言模型评测:13 类细粒度标签天然适配零样本/少样本指令评测——近年多篇 LLM 生物医学评测把 DrugProt 或 ChemProt 列入任务集,因为它有干净的多分类标签与官方评估脚本。

§11 实战决策指南

11.1 按角色规划使用路径

不同角色从 DrugProt 获得的价值面不同,推荐路径如下:

  • NLP 模型开发者:第一周用 §9.1 跑通数据加载与 span 自检 → 第二周在 train/dev 上复现参照基线(Turku-BSC 约 0.744 是健康水位线)→ 之后按 §3B 的不平衡策略改进长尾 → 最后走 CodaLab 报测试集分数(主赛道场景赛后仍开放,§4.3);
  • 药物发现信息学团队:先从 §7.5 的银标 KG 做检索底座验证召回 → 再用黄金集关系做高精度验证层 → 与 DrugBank(89)/DrugCentral(344) 的结构化金源交叉核对——文献层给广度、金源层给精度;
  • LLM 评测者:直接按 §10.3 的思路构造指令评测——摘要+候选对入 prompt、13 类标签做约束输出、官方脚本算 micro-F1;长尾复合类单独设子集报告(§3B.3 的预期管理同样适用);
  • 实体归一(normalization)研究者:训练集的 GENE-Y/GENE-N 二分是唯一可用的可归一性监督(dev 无此标注,坑 4),银标 GPRO 框架提供类型先验,MedMentions(390) 可作跨语料参照;
  • 学生与新团队:从 §0 → §1 → §9.1 的顺序读与做,第一周即可产出第一个 micro-F1;不建议一上来就读三份注释指南全文——先在数据上踩坑,再回头查指南(§4.1 的四个 DOI)效率更高。

11.2 DAIMS 短板的补救路线

§8 的五维打分(合计 42/50)里每个扣分点,都有对应的工程补救动作:

短板 扣分点 使用侧补救
D(文档) 主赛道第 1 名精确成绩与部分 P/R 分项未集中可得 以 UTHealth 77.60%(第 4)作上界锚点定位自己(§7.1);per-type 分项自己做 dev 上的分解报告(§3B.2)
A(可获取) 测试集 gold 不可得 本地实验改用 train/dev 交叉验证并明示口径;正式对标走 CodaLab(坑 1)
I(互操作) 偏移基准与 GENE-Y/N 的 split 不一致 §9.1 的 span 断言 + 坑 4 的类型归并,两道防线都是一次性成本
M(维护) 银标 222 条重复未见官方去重版 用 §9D 的内容哈希去重管线自处理(键取内容不取 PMID)
S(规范) ChemProt 旧标签体系仍在社区流通 引用与建模统一 13 类官方口径;跨语料迁移先过附录 A.3 的对照审计(§3A.3)

11.3 常见误用清单(从坑点反推)

以下每一条都是社区里真实出现过的事故模式,与 §6.5 坑点一一对应:

  • 把「236 万篇银标」当关系训练集(反坑 5)——银标只有实体注释,没有 gold 关系;
  • 只加载摘要正文就切片(反坑 3)——偏移基准是 title+abstract 拼接全文,错位必然发生;
  • 跨 split 联合训练不归并 GENE-Y/N(反坑 4)——标签空间不一致直接报错或静默丢样本;
  • 用第三方论文的关系计数复现实验(反坑 2)——与官方 Summary statistics 有小幅出入,先对附录 E 的对照表;
  • 从 v1.0(4955411)下载却期望拿到 dev 集(反坑 8)——它只有训练集;
  • 引用时照抄 Zenodo 官方模板却不知它指向 2017 年的 CHEMPROT overview(反坑 7);
  • 声称「完整数据已下载」却拿不出测试集 gold(反坑 1)——任何第三方镜像都给不出它;
  • 在网上查 license 看到「未知」就放弃(反坑 6)——权威口径在 Zenodo REST API 的 metadata.license.id。

清单的正确用法:接入管线前逐条 grep 自己的代码与配置,八条全过再开训。

11.4 与库内条目的组合拳

单个语料的价值上限取决于组合方式。三个已验证的组合模式:

  • 粒度阶梯组合:ChemProt(753) 的 5 组粗口径做快速迭代 → DrugProt 的 13 类细口径做正式训练与评估 → BioRED(457) 的多实体类型做泛化验证——同谱系三代基准覆盖从粗到细、从单任务到多任务;
  • 抽取+金源双轨:DrugProt 文献抽取层给「候选关系」,DrugBank(89)/DrugCentral(344) 结构化层给「已确认关系」,DrugComb(274) 给组合用药场景——三层的重合与差集本身就是信息(新发现的候选靶点关系往往落在文献有、金源无的差集里);
  • 实体层打底:BC2GM(434)/JNLPBA(442) 练基因实体检测、ChemDNER(450) 练化学品检测,再上 DrugProt 做关系——实体检测器的质量直接决定关系层的候选对质量(§9B 的候选对生成以实体表为输入)。

附录 A 数据字典

A.1 黄金集文件(Zenodo 5042151)

字段(文件) 类型 说明
PMID(abstracts/entities/relations) string PubMed 摘要标识,全库主键
Title, Abstract(abstracts) string 摘要两部分;偏移基准 = Title+Abstract 拼接
TermNumber(entities) string T1, T2, …,每 PMID 内唯一
Type(entities) enum CHEMICAL;训练集基因:GENE-Y / GENE-N;开发集基因:GENE
StartOffset, EndOffset(entities) int 字符偏移,左闭右开(0 起,基准为拼接全文)
Text(entities) string 实体原文,与 span 严格一致(官方样例验证)
Relation(relations) enum 13 类标签,全大写蛇形命名
Arg1 / Arg2(relations) ref Arg1:T# CHEMICAL(化学品端);Arg2:T# GENE(基因端)

A.2 Large Scale 文件(Zenodo 5119878)

字段 类型 说明
large_scale_abstracts.tsv 3 列 同黄金集 abstracts;共 2,366,081 行(含 222 重复)
large_scale_entities.tsv 6 列 同黄金集 entities;共 53,993,602 行;Type 为 GPRO 对象框架;自动生成

A.3 关系类型与 ChemProt CPR 组对照速查

DrugProt 类 近似 ChemProt 组 备注
INHIBITOR CPR:4 downregulator 系 语义更细(直接/间接分列)
ACTIVATOR CPR:3 upregulator 系 同上
INDIRECT-UPREGULATOR CPR:3 upregulator 系 与 ACTIVATOR 分离
INDIRECT-DOWNREGULATOR CPR:4 downregulator 系 与 INHIBITOR 分离
AGONIST CPR:5 agonist 系 直接对应
ANTAGONIST CPR:6 antagonist 直接对应
SUBSTRATE CPR:9 substrate 系 与 SUBSTRATE_PRODUCT-OF 拆分
PART-OF CPR:1 PART_OF ChemProt 未评估组→DrugProt 转正
DIRECT-REGULATOR CPR:2 REGULATOR 语义部分对应
PRODUCT-OF — 无对应组
AGONIST-ACTIVATOR / AGONIST-INHIBITOR / SUBSTRATE_PRODUCT-OF — DrugProt 新增复合类

附录 B 引用格式

B.1 数据集引用(Zenodo 官方口径)

Zenodo 记录给出的引用模板指向 BioCreative VI CHEMPROT overview(krallinger2017overview,坑 7);引用 DrugProt 本体建议采用:

  • 会议 overview:Miranda-Escalada A, 等. Overview of DrugProt-CPI track at BioCreative VII. Proceedings of the seventh BioCreative challenge evaluation workshop, 2021.
  • 期刊扩展版:Miranda-Escalada A, Mehryary F, Luoma S, Estrada-Zavala Z, Gasco L, Pyysalo S, Valencia A, Krallinger M. DrugProt: A Large-Scale Corpus for Chemical-Protein Interaction Extraction. Database (Oxford). 2023;2023:baad080. doi:10.1093/database/baad080. PMID 38015956; PMCID PMC10683943.
  • 数据 DOI:10.5281/zenodo.4955410(概念页)/ 10.5281/zenodo.5042151(v1.1)/ 10.5281/zenodo.5119878(Large Scale)。

B.2 相关论文锚点

  • UTHealth 参赛论文:MEDINFO 2023, doi:10.3233/SHTI231043(主赛道 77.60% 第 4;Large Scale 2.4M 文档 F1 77.32% 第 2);
  • CU-UD 参赛论文:arXiv 2112.03004(含 train 3,500/dev 750/test 750 的独立口径印证);
  • HyperAI 参赛论文:arXiv 2111.00611(关系计数与官方有出入,坑 2 存照)。

附录 C 术语表

术语 英文 释义
化学品-蛋白相互作用抽取 chemical-protein interaction (CPI) extraction 从文本中识别化学品与基因/蛋白对并分类其相互作用的 NLP 任务
关系抽取 relation extraction 判定文本中实体对语义关系的任务大类
命名实体识别 named entity recognition (NER) 定位并分类文本中实体提及的任务
实体归一 entity normalization 将实体提及映射到数据库标准 ID;GENE-Y 即可归一实体
黄金标准 gold standard 人工标注、作为评估真值的数据子集
银标准 silver standard 自动方法生成的大规模弱标注
字符偏移 character offset 实体在原文中的起止字符位置
细粒度标签 fine-grained labels 未经归并的原始分类体系(13 类)
长尾类别 long-tail classes 样本量极小的类别(本语料后 4 类)
micro-F1 micro-averaged F1 各类合并计数后计算的 F1,官方主指标
可扩展性评估 scalability evaluation 在大规模数据上检验系统精度与吞吐的评估设计
GPRO Gene and Protein Related Objects BioCreative V 定义的基因/蛋白对象归类框架
Plan TL Plan de Impulso de las Tecnologías del Lenguaje 西班牙语言技术推进计划(本项目资助方之一)
CodaLab CodaLab 微软与斯坦福发起的挑战赛与可复现评估平台

附录 D 快速核对卡(数据包指纹与关键计数)

数据包        drugprot-gs-training-development.zip
大小          3,796,908 bytes
MD5           eeb928823d1357510a415256f8957066
许可          CC BY-4.0(Zenodo API metadata.license.id)

摘要数        train 3,500 | dev 750 | test 750(gold 未公开)= 5,000
tokens        train 1,001,168 | dev 199,620 = 1,200,788(公开部分)
实体          train 89,529 | dev 18,858 = 108,387(公开部分)
  化学品      46,274 | 9,853
  基因        43,255 | 9,005(train 内 Y 28,421 / N 14,834)
关系(公开)  train 17,288 | dev 3,765 = 21,053
关系(官方总量口径)  24,526(差值 3,473 = 未公开 test gold)
最大类        INHIBITOR 5,392(train)   最小类  AGONIST-INHIBITOR 13(train)

Large Scale   摘要 2,366,081(222 重复)| 实体注释 53,993,602
衍生 KG       53,993,602 节点 | 19,367,406 边
主赛道        30 队 | 四大洲 110 人 | 107 runs
Large Scale   9 队 | 21 runs | 冠军 NLM-NCBI F1 0.788602

附录 E 双口径计数对照速查

同一属性在不同来源中的计数差异是引用 DrugProt 时最高频的出错点。本附录把散落在坑点与存照里的双口径集中成一张表,右列均为本条目采用的口径:

属性 口径 A 口径 B 采用与理由
关系总量(全库) 21,053(train+dev 公开) 24,526(官方总量口径) 两者并存:21,053 指公开可下载部分;24,526 含未公开 test gold(差值 3,473)。引用时必须注明口径
黄金集摘要数 5,000(期刊官方:3500+750+750) 10,750(UTHealth 论文「main corpora」) 5,000;10,750 疑含 Large Scale 混计,仅存照
train 集 INHIBITOR 5,392(Zenodo 官方 Summary statistics) 5,277(CU-UD 论文);5,392/1,150(HyperAI arXiv 2111.00611) 5,392;第三方论文计数普遍有小幅偏差
train 集 AGONIST 659 658 / 652(第三方论文) 659
train 集 ACTIVATOR 1,429 1,428 / 1,394(第三方论文) 1,429
train 集 ANTAGONIST 972 931(第三方论文) 972
Large Scale 摘要数 2,366,081(TSV 精确行数) 2.3M / 2.4M(论文圆整) 2,366,081;圆整口径仅用于行文
KG 节点数 53,993,602 53,993,602(= 实体注释行数) 同值非冲突:节点与实体注释 1:1 对应
银标去重后摘要数 2,365,859 2,366,081(含 222 条同题同摘要重复) 按用途:统计规模用 2,366,081,建模用去重后 2,365,859
dev 集 INHIBITOR 1,152(Zenodo 官方) 1,150(HyperAI) 1,152
测试集关系数 约 3,473(由 24,526−21,053 推算) 未公开 推算值仅作参考,非官方发布

双口径的根因归纳:第三方参赛队论文计数偏差多半源于 dev 集合并、早期版本(v1.0 仅训练集,坑 8)或自行去重;圆整口径源于论文行文习惯。一切以 Zenodo 官方 Summary statistics 与期刊论文为准——这也是本条目全表采用官方数的理由。

附录 F Dataset Card 要点(自描述模板)

本附录按社区通行的 dataset card(数据集卡)惯例,把 DrugProt 的自描述要点收敛成一节,下游团队可直接以此为骨架撰写自己的衍生数据集文档:

F.1 身份卡

  • 名称:DrugProt Corpus(BioCreative VII Track 1 Chemical-Protein Interaction Track);
  • 任务:摘要级化学品-基因/蛋白实体识别 + 13 类细粒度关系分类(chemical-protein interaction extraction);
  • 构建方:巴塞罗那超级计算中心 BSC + 图尔库大学 + 加泰罗尼亚理工大学 UPC;通讯 Martin Krallinger;
  • 发布年份:2021(挑战赛即发布);期刊扩展 2023(Database, baad080);
  • 语言:英语(PubMed 摘要);许可:CC BY-4.0(Zenodo API 权威确认)。

F.2 数据卡

  • 组成:黄金集 5,000 篇摘要(train 3,500 / dev 750 / test 750,test gold 不公开)+ Large Scale 银标 2,366,081 篇摘要与 53,993,602 条自动实体注释;
  • 格式:TSV 三表(abstracts / entities / relations),偏移基准为 title+abstract 拼接全文;
  • 标签体系:实体 2+1 类(CHEMICAL / GENE-Y+GENE-N / dev 统一 GENE);关系 13 类全大写蛇形命名;
  • 规模锚点:公开实体 108,387、公开关系 21,053(口径详见附录 E)。

F.3 意向用途与局限

  • 意向用途:CPI/关系抽取模型训练与基准评估、生物医学 NER 预训练、药物发现信息学的文献证据抽取、LLM 生物医学能力评测;
  • 超出意向的用途:临床决策支持(摘要是研究文献而非病历)、化学品安全评估的唯一证据源(银标噪声显著);
  • 已知局限:测试集 gold 不可得(坑 1);GENE-Y/N 仅训练集区分(坑 4);银标含 222 条重复(坑 5);第三方计数口径混乱(坑 2,附录 E);
  • 偏差声明:语料来自 PubMed 摘要,研究文献的病种、分子类型与期刊覆盖偏差会直接传导给模型——长尾复合类的极端稀疏(附录 E)本身也是一种结构性偏差。

F.4 引用卡

  • 数据 DOI:10.5281/zenodo.4955410(概念页,自动指向最新版);
  • 论文:Miranda-Escalada 等,Database (Oxford) 2023, baad080(期刊扩展版);会议 overview 见 BC VII workshop 2021;
  • 引用模板陷阱:Zenodo 官方模板指向前身 CHEMPROT(krallinger2017overview,坑 7)——引用 DrugProt 本体请用上面两条。

附录 G 谱系年表:从 BC II 到 DrugProt

BioCreative 系列挑战赛与 DrugProt 直接相关的节点,按时间排列:

年份 节点 与 DrugProt 的关系
2004-2006 BioCreative II 基因 mention 识别(BC2GM 语料) 基因实体检测的祖源基准;库内条目 BC2GM(434)
BioCreative V 期间 GPRO(Gene and Protein Related Objects)框架定义 DrugProt 银标实体注释的类型框架直接沿用(§2.5)
2017 BioCreative VI Track 5:ChemProt 发布 直接前身:2,432 篇摘要、22 类归并 10 组只评 5 组(§5.1)
2017 CHEMPROT overview(krallinger2017overview) 被 Zenodo 设为官方引用模板的「谱系引用」对象(坑 7)
2021-06-15 DrugProt v1.0 发布(Zenodo 4955411,仅训练集) 比赛开赛首发版本(§6.2)
2021-06-29 DrugProt v1.1 发布(Zenodo 5042151,训练+开发) 事实上的标准引用版本
2021 BioCreative VII Track 1 主赛道 + Large Scale 赛道 30 队 110 人 107 runs;银标扩展同期发布(§7)
2021-07-21 Large Scale 银标语料发布(Zenodo 5119878) 2,366,081 篇摘要 + 5,399 万实体注释
2023-08-15 v1.1 元数据修订(Zenodo API revision 13) 维护活跃度证据(§8 DAIMS 的 M 维依据)
2023-11-28 期刊扩展版发表(Database, baad080) 补全数据描述、结果分析与衍生知识图谱

年表揭示的一个结构性事实:DrugProt 不是一次性的挑战赛产物,而是同一批团队(BSC + 图尔库)在 BioCreative 谱系上持续十余年迭代的结果——ChemProt 的局限在 DrugProt 里被逐项修复(§5.2),DrugProt 的注释指南又以独立 DOI 沉淀为可复用资产(§4.1)。这种「任务族长期主义」在生物医学 NLP 语料里相当罕见,也是它作为基准的可信度来源:每一代设计决策都有前一代的实证教训背书。

附录 H 三源核验记录(存照性附录)

本条目硬数字的核验过程记录如下,供后续维护者复核时直达原始来源:

H.1 核验来源矩阵

数据项 来源一 来源二 来源三 一致性
训练/开发集规模与计数 Zenodo 记录页 5042151(Summary statistics) Zenodo REST API records/5042151 元数据 期刊论文(Database 2023, baad080) 一致
版本链(v1.0 → v1.1) Zenodo 4955411(v1.0 记录页) Zenodo API conceptrecid 4955410 期刊论文版本说明 一致
Large Scale 规模 Zenodo 5119878 记录页与 README Zenodo API records/5119878 期刊论文(2,366,081 精确行数口径) 一致(论文圆整口径除外)
license Zenodo API metadata.license.id = cc-by-4.0 access_right = open 网页端不渲染(坑 6,无第三方可对照) API 单源权威
主赛道参赛规模 期刊论文(30 队/110 人/107 runs) 任务页(biocreative.bioinformatics.udel.edu) UTHealth 论文(参赛队视角) 一致
UTHealth 成绩 MEDINFO 2023(doi:10.3233/SHTI231043)自述 Large Scale leaderboard(期刊口径) — 一致
CU-UD train/dev/test 划分 arXiv 2112.03004 原文 5,000 总数反推 Zenodo Summary statistics 一致
数据包指纹 Zenodo 文件页(3,796,908 bytes) 官方 md5 eeb928823d1357510a415256f8957066 — 一致

H.2 抓取环境备注

  • Zenodo 元数据以 REST API 为权威(网页端对部分字段——如 license——不渲染,坑 6);API 抓取字段包括 metadata.license.id、access_right、created(2021-06-29T15:53:50)、modified(2023-08-15,revision 13)、creator ORCID 列表、资助方 notes 字段;
  • 期刊论文经多镜像抓取(Database (Oxford) 为开放获取,PMID 38015956 / PMCID PMC10683943);UPC 机构库 HANDLE 2117/401480 提供元数据对照;
  • 参赛队论文抓取自 arXiv(2112.03004、2111.00611)与 PubMed 摘要层;主赛道第 1 名的精确队名与 F1 未在上述开放来源中直接捕获(尾注存照第 3 条)。

H.3 遗留疑点清单(继承自尾注存照)

  • 主赛道第 1 名队名与精确 F1:待核(期刊 leaderboard 表数字未完整抓取;上界锚点为 UTHealth 77.60% 居第 4);
  • 作者 Estrada-Zavala 的名(Zhihao?)拼写:待核(以期刊 PDF 为准);
  • Zenodo 5119878 页面顶部出现的 5119879 版本链链接:未深究,不影响数据获取;
  • UTHealth「main corpora of 10,750 abstracts」的口径构成:疑含 Large Scale 混计,以官方 5,000 为准(附录 E)。

上述疑点均不阻碍本条目核心数字的可用性——它们集中在「第 1 名是谁」与「人名拼写」这类叙事细节,而非数据规模、许可、获取方式等结构性事实。

附录 I 常见问题速答(FAQ 十五则)

以下问答浓缩自正文各节,每条附正文锚点,供快速排查;细节以锚点章节为准。

Q1:为什么我下载的包里没有开发集?
你拿的是 v1.0(Zenodo 4955411,仅训练集)。完整训练+开发包在 v1.1(Zenodo 5042151),或用概念 DOI 10.5281/zenodo.4955410 自动指向最新版(坑 8,§6.2)。

Q2:实体偏移对不上原文怎么办?
先检查两件事:是否只加载了摘要正文(偏移基准是 title+abstract 拼接全文,须叠加标题长度);是否在预处理里规范化了空白字符(会整体漂移偏移)。自检断言见 §9.1(坑 3)。

Q3:训练报错「标签不在类别列表里」?
训练集的 GENE-Y/GENE-N 与开发集的 GENE 混进了同一标签空间。在加载层统一归并为 GENE(§9A 的 type_aligned),一次解决(坑 4)。

Q4:能把 Large Scale 当关系抽取训练集吗?
不能。它只有自动实体注释、没有 gold 关系;正确用法是实体预训练、领域自适应、共现图(坑 5,§9D)。

Q5:Zenodo 页面上看不到 license,这数据能用吗?
能。网页端 license 显示位对这条记录不渲染,权威口径走 REST API:metadata.license.id = cc-by-4.0(坑 6,§6.3)。

Q6:引用该引哪篇论文?
注意 Zenodo 官方模板指向的是 2017 年前身 CHEMPROT overview(官方有意为之)。引 DrugProt 本体用 2021 会议 overview 或 2023 期刊版(Database baad080)(坑 7,附录 B)。

Q7:为什么我复现的关系计数和别人论文不一样?
第三方参赛队论文的计数与 Zenodo 官方 Summary statistics 普遍有小幅出入(INHIBITOR 5,392 vs 5,277 等)。以官方为准,对照表见附录 E(坑 2)。

Q8:测试集分数怎么来的?本地算不出来吗?
测试集 750 篇的 gold 只在 CodaLab 评估后端,本地永远无法复现三方评估;正式对标走 CodaLab 提交(主赛道场景赛后仍开放)(坑 1,§4.3)。

Q9:21,053 和 24,526 两个关系总数该用哪个?
都是官方口径:21,053 = 公开部分(train+dev);24,526 = 官方总量(含未公开 test gold,差值 3,473)。引用时注明口径(§2.1,附录 E)。

Q10:我的系统 F1 只有 0.70,是不是实现有 bug?
不一定。组织方参照系统约 0.744,主赛道第一梯队约 0.77+;0.70 低于参照线说明实现或特征有改进空间,但先检查评估口径是否与官方一致(附录 F 的评估库版本),再查候选对生成与标签映射(§7.1,§9E)。

Q11:长尾复合类(AGONIST-INHIBITOR 等)怎么处理?
三类合计不足 90 条公开样本,常规微调接近随机。务实方案:语义聚合训练(§3A.2 分组)、少样本/提示学习单独处理、ChemProt 对应样本增补(先做标签对齐审计)(§3B)。

Q12:ChemProt 的模型能直接迁移过来吗?
数据和任务内核可以迁移(域一致、同为人工 gold),但标签体系没有一一对应——先过附录 A.3 的对照审计,废弃任何「直接映射」脚本(§3A.3,§5.4)。

Q13:银标里的 222 条重复怎么去?
按内容去重(标题+摘要的哈希),不是按 PMID——重复记录恰恰是 PMID 不同、内容相同(坑 5,§9D 的流式去重管线)。

Q14:想做多实体类型关系抽取,用这个数据合适吗?
不合适。DrugProt 只覆盖化学品与基因/蛋白两类实体、摘要级关系;多实体类型需求转库内 BioRED(457)(§1A 场景六)。

Q15:项目资助方是谁?用于致谢或合规审查时写什么?
欧盟 EC BIOMATDB(Grant Agreement 101058779)+ 西班牙 Plan TL(Plan de Impulso de las Tecnologías del Lenguaje de la Agenda Digital)(§6.4,Zenodo notes 字段)。

尾注与存照

本条目全部硬数字经三源交叉验证:Zenodo 记录页 + Zenodo REST API(records/5042151 与 5119878)+ 期刊论文(Database 2023, baad080,经多镜像抓取)与参赛队论文(UTHealth MEDINFO 2023、CU-UD arXiv 2112.03004)。双口径冲突与待核事项逐条存照如下(与 FACTS.md 第 9 节一致):

  1. 关系总量:21,053(公开)与 24,526(官方总量)并存,差值 3,473 为未公开测试集 gold,引用须注明口径;
  2. 黄金规模:期刊官方 5,000 篇为准;UTHealth 论文「main corpora of 10,750 abstracts」为异口径存照(疑含 Large Scale 混计);
  3. 主赛道第 1 名队名与精确 F1 未在开放来源直接捕获(期刊 leaderboard 表未完整抓取);UTHealth 自述 77.60% 居第 4 可作上界锚点;
  4. 第三方参赛队论文关系计数与 Zenodo 官方小幅出入(坑 2),全条目以官方为准;
  5. 银标 KG 节点数与实体注释行数同为 53,993,602——1:1 对应关系而非巧合冲突;
  6. 作者名单中 Estrada-Zavala 的名字拼写(Zhihao 等)以期刊 PDF 为准,本条目未逐一核验全名;
  7. Zenodo 5119878 页面顶部出现 5119879 版本链链接,未深究(不影响数据获取);
  8. 官方引用模板指向前身 CHEMPROT(坑 7),属官方有意为之的谱系引用习惯。

数据集团队(BSC + 图尔库大学 + UPC)在 BioCreative 系列上的持续投入——从 BC II 基因识别到 BC VII DrugProt 再到 BC 后续任务——构成了一条罕见的「同一团队打磨同一任务族十年」的谱系,这也是 DrugProt 注释指南、评估脚本与任务设计都异常自洽的深层原因。对想进入生物医学关系抽取领域的新团队,本库的建议路径是:以 DrugProt 黄金集为第一站,用其 Large Scale 检验工程化能力,再向库内 BioRED(457) 的多实体类型任务与 DrugBank(89)/DrugCentral(344) 的结构化金源延伸。


相关数据集导航

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

  • chemprot — 共享标签:医疗NLP / 关系抽取 / 药物发现与化学 / 药物-靶点相互作用 / 挑战赛数据集
  • onsides — 共享标签:医疗NLP / 关系抽取 / 命名实体识别 / 药物发现与化学
  • meddoprof — 共享标签:医疗NLP / 命名实体识别 / 挑战赛数据集
  • radgraph — 共享标签:医疗NLP / 关系抽取 / 命名实体识别
  • iuphar-bps — 共享标签:医疗NLP / 药物发现与化学 / 药物-靶点相互作用
  • bc5cdr — 共享标签:医疗NLP / 关系抽取 / 命名实体识别
  • biored — 共享标签:医疗NLP / 关系抽取 / 命名实体识别
  • thyme — 共享标签:医疗NLP / 关系抽取 / 命名实体识别
  • genia — 共享标签:医疗NLP / 关系抽取 / 命名实体识别
  • semmeddb — 共享标签:医疗NLP / 关系抽取 / 命名实体识别

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

返回 AI-Ready 数据集