ohsumed-23-single-label
收藏资源简介:
OHSUMED(23类,单标签TextGCN分割)数据集是一个用于单标签医学文本分类的基准数据集。该数据集源自OHSUMED信息检索集合(Hersh et al., 1994),包含348,566条MEDLINE参考文献,时间跨度为1987-1991年。本版本遵循TextGCN论文(Yao et al., AAAI 2019)的协议,从Joachims/Moschitti的1991年心血管相关子集中筛选出仅含一个MeSH疾病章节标签的文档,共7,400篇。每条记录包含标题和摘要(以换行和空格拼接的文本字段),以及一个对应的23类标签(MeSH疾病章节C01至C23)。数据划分为训练集(3,021条)、验证集(336条)和测试集(4,043条),训练集与验证集合并可恢复TextGCN论文中的3,357条训练数据。标签分布不均,头尾类别比率约为62:1(C14 vs C22)。数据集适用于单标签医学文本分类任务,特别是图神经网络和文本分类模型的评估。推荐使用macro-F1作为主要指标,因为准确率可能因类别不平衡而具有误导性。注意事项:C22类(动物疾病)因训练样本极少几乎无法预测;C23类(病理状况、体征和症状)作为残余类别常与器官类别混淆;数据来自1987-1991年,存在时间偏移。该数据集仅用于研究目的,不可用于临床决策。
The OHSUMED (23-class, single-label TextGCN split) dataset is a benchmark dataset for single-label medical text classification. It originates from the OHSUMED information retrieval collection (Hersh et al., 1994), containing 348,566 MEDLINE references spanning 1987–1991. This version follows the protocol of the TextGCN paper (Yao et al., AAAI 2019), selecting 7,400 documents from the 1991 cardiovascular subset of Joachims/Moschitti that have only one MeSH disease category label. Each record includes a title and abstract (concatenated with newline and space), and a corresponding 23-class label (MeSH disease categories C01 to C23). The data is split into training (3,021), validation (336), and test (4,043) sets; merging training and validation recovers the 3,357 training samples used in the TextGCN paper. The label distribution is imbalanced, with a head-to-tail ratio of about 62:1 (C14 vs C22). The dataset is suitable for single-label medical text classification, especially for evaluating graph neural networks and text classification models. Macro-F1 is recommended as the primary metric, as accuracy may be misleading due to class imbalance. Notes: C22 (animal diseases) is almost unpredictable due to very few training samples; C23 (pathological conditions, signs and symptoms) as a residual class often confuses with organ-related classes; the data is from 1987–1991, introducing temporal shift. This dataset is for research purposes only and should not be used for clinical decisions.
OHSUMED(23类,单标签 TextGCN 划分)数据集卡片
数据集概述
该数据集是 TextGCN 标准 Ohsumed 协议(Yao et al., AAAI 2019)的规范版本:包含 7,400 篇单标签文档,划分为 3,357 训练 / 4,043 测试,覆盖 23 个 MeSH 疾病章节。本仓库将论文中的 3,357 篇训练文档进一步划分为 3,021 / 336,以便需要验证集的训练方案使用,或将 train 与 validation 合并以恢复论文的训练数量。
数据来源与谱系
- OHSUMED(Hersh et al., 1994) — 348,566 条 MEDLINE 参考文献(1987–1991)。
- Joachims(1998) — 1991 年的前 20,000 条记录,基于 MeSH 章节 C01 至 C23 进行 23 类分类。
- Moschitti — 打包语料
ohsumed-all-docs.tar.gz/ 前 20k(类别筛选后 13,929 条唯一记录,含多标签)。 - TextGCN(Yao et al., 2019) — 仅保留单标签文档 → 7,400 篇;论文划分 3,357 训练 / 4,043 测试。
dxgp/ohsumed— 相同 7,400 行,并从 3,357 篇训练文档中划分出 336 行验证集(3,021 + 336 = 3,357)。- 本仓库 — Parquet 格式 +
ClassLabel名称 C01–C23 + 数据集卡片 + NLMother许可证。
text 字段的字节与 dxgp 完全一致(标题 + 换行 + 空格 + 摘要),未进行额外归一化处理。
数据字段
text(string):标题与摘要以 换行后跟空格()拼接而成。该分隔符被有意保留,以确保基于 token 的基线模型与dxgp/ 常见 TextGCN 复现实现保持可比性。label(ClassLabel):整数 0–22,对应名称 C01 至 C23(0→C01,…,22→C23)。C14 对应名称索引 13,而非整个标签集的定义。顺序与 MeSH 代码升序一致(经验证:train[0] 为十二指肠炎,标签 5 = C06)。
标签映射表
| id | MeSH 代码 | 类别 |
|---|---|---|
| 0 | C01 | 细菌感染和真菌病 |
| 1 | C02 | 病毒疾病 |
| 2 | C03 | 寄生虫病 |
| 3 | C04 | 肿瘤 |
| 4 | C05 | 肌肉骨骼疾病 |
| 5 | C06 | 消化系统疾病 |
| 6 | C07 | 口腔颌面部疾病 |
| 7 | C08 | 呼吸道疾病 |
| 8 | C09 | 耳鼻喉疾病 |
| 9 | C10 | 神经系统疾病 |
| 10 | C11 | 眼部疾病 |
| 11 | C12 | 泌尿和男性生殖系统疾病 |
| 12 | C13 | 女性生殖系统疾病和妊娠并发症 |
| 13 | C14 | 心血管疾病 |
| 14 | C15 | 血液和淋巴系统疾病 |
| 15 | C16 | 新生儿疾病和异常 |
| 16 | C17 | 皮肤和结缔组织疾病 |
| 17 | C18 | 营养和代谢疾病 |
| 18 | C19 | 内分泌疾病 |
| 19 | C20 | 免疫系统疾病 |
| 20 | C21 | 环境来源疾病 |
| 21 | C22 | 动物疾病 |
| 22 | C23 | 病理状态、体征和症状 |
数据划分
| 划分 | 行数 | 角色 |
|---|---|---|
train |
3,021 | 论文训练集减去验证集 |
validation |
336 | 从论文 3,357 篇训练文档中划分(dxgp 未公布随机种子) |
test |
4,043 | 与 TextGCN 测试集数量相同;分配依据 dxgp,并非从 7,400 池中重新抽取 |
| 总计 | 7,400 | 3,021 + 336 = 3,357 论文训练集 |
可比性说明: 该划分即规范的 TextGCN 协议:7,400 篇单标签文档,3,357 / 4,043,覆盖 23 个 MeSH 疾病章节。此处将论文的 3,357 篇训练文档划分为 3,021 / 336,以便无验证集的训练方案可合并 train 与 validation。测试集准确率因此与相关文献在相同划分数量上具有可比性。
train∪validation 与 test 之间的精确文本重叠为 0(7,400 个唯一字符串)。文件为 dxgp/ohsumed 的文档化副本;我们未从 7,400 池中重新抽取 3,357/4,043。我们不声明与 Yao 原始存档的字节一致性,仅说明该 Hub 划分保留了 dxgp 的分配,且数量与论文一致。
全量类别分布(全部划分,7,400 行)
| MeSH | 行数 | 占比 |
|---|---|---|
| C14 | 1,175 | 15.88% |
| C04 | 1,030 | 13.92% |
| C23 | 796 | 10.76% |
| C10 | 557 | 7.53% |
| C21 | 553 | 7.47% |
| C20 | 410 | 5.54% |
| C06 | 354 | 4.78% |
| C12 | 342 | 4.62% |
| C18 | 323 | 4.36% |
| C08 | 250 | 3.38% |
| C17 | 233 | 3.15% |
| C05 | 223 | 3.01% |
| C01 | 216 | 2.92% |
| C13 | 195 | 2.64% |
| C15 | 133 | 1.80% |
| C16 | 129 | 1.74% |
| C11 | 125 | 1.69% |
| C19 | 86 | 1.16% |
| C02 | 75 | 1.01% |
| C07 | 63 | 0.85% |
| C09 | 63 | 0.85% |
| C03 | 50 | 0.68% |
| C22 | 19 | 0.26% |
头部与尾部类别比(C14 对 C22)约为 62:1。准确率具有误导性:忽略尾部的分类器仍可表现良好。建议报告 macro-F1 和各类别 F1。类别在现实中并非互斥(如心脏肿瘤同时属于 C04 和 C14);强制单一标签会限制可达到的 top-1 准确率。Top-3 是更诚实的次要指标。
BiomedBERT(训练样本 n=2,000)上的 token 长度:p50=237,p90=377,p95=422,p99=517,max=650。训练默认 --max_length 为 448。
用途
- 适用于单标签医学文本分类及 GNN/文本图模型研究,与 TextGCN 在 Ohsumed 上的数字具有可比性。
不适用范围
- 临床护理、诊断或任何非实验性的图书馆/临床环境(受 OHSUMED / NLM 条款约束)。
- 完整的 OHSUMED 信息检索集合或约 348k 条记录的多标签 MeSH 分配。
- 声称此 7,400 行划分是通过过滤
community-datasets/ohsumed重建的(空白归一化重叠度高但不完整)。
局限性
C22 类别从未被预测
C22 - Animal Diseases 在三个随机种子上的 F1 均为 0.000。测试样本仅约十例,训练支持也处于同一量级,模型从未学会输出该标签:任何输入都不会获得此标签。
对指标的影响:一个死亡类别机械性地损失 1/23,即 4.3 个 macro-F1 百分点。因此采用双重报告——23 类时为 0.699,22 个可利用类别时为 0.731。
分数未校准
针对类别不平衡采用的加权交叉熵(α = 0.5)改变了校准。显示分数为相对置信度分数,而非概率。任何基于阈值的用途前均需在验证集上进行温度缩放。
标签的内在歧义
1. 粒度(C23)。 涉及一般临床体征(出血、休克、疼痛、晕厥等)的摘要会被路由到器官章节。可预测行为:C23 是一个 MeSH 杂项类别,而非领域;模型对其欠预测(精确率 0.592,召回率 0.370;264 次外流 vs 107 次流入)。
2. 多层级。 MeSH 并非树结构。示例:
- Lung Neoplasms:C04 和 C08。模型预测 C08(0.90)——合理;语料将多数“lung carcinoma / cancer”标注为 C08。
- Multiple Sclerosis:C10 和 C20。模型预测 C20(0.86);语料标为 C20(训练 10/12,测试 15/15)。
Top-1 到 Top-3 的差距(0.774 → 0.933)主要捕捉了这两种效应,而非纯粹的错误——这也是演示中采用 Top-3 的原因。
未来工作(表述层面,而非能力)
原则性的修正不是更好的编码器,而是更好的表述:一种多标签或层次化任务,不必在体征(C23)与器官之间,或两个交叉列出的章节之间做出选择。
时间漂移
摘要来自 1987–1991 年。术语、药物和方案均已过时。无法保证对当代生物医学文献的泛化性。
非医疗器械
仅限书目分类。不用于任何诊断或临床决策辅助用途。
架构与来源
- 架构仅为
text+label(为保持 TextGCN /dxgp可比性)。无medline_ui,标题与摘要未分列。 - 336 行验证集的随机种子未由
dxgp公布。在 23 个类别下,C22 至多有一个验证样本。一个类别相当于 4.3 个 macro-F1 百分点,因此在该划分上选择检查点具有噪声;4,043 行的测试集是可靠的度量。 text的字节与dxgp一致;不保证是 348k Hub 转储的精确子集。不声明与 Yao 原始存档的字节一致性——仅说明划分数量匹配,且为dxgp分配的文档化副本。
许可与使用
许可证标签: other(medline-research-use)。非 CC-BY-NC 或 MIT(相关仓库上的这些 Hub 标签无来源依据)。
MEDLINE 衍生记录遵循 NLM 条款与条件 和 NLM 版权指南:
- 致谢:“Courtesy of the U.S. National Library of Medicine.”
- **不背书:**不得暗示 NLM 认可本仓库或基于其训练的任何模型。
- **非当前 MEDLINE:**此快照为 1987–1991 年(本划分:1991 年摘要),相对当今 PubMed 不完整。
- **非临床:**不得用于患者护理或临床决策。
- 摘要:可能仍受出版商/作者版权保护。NLM 不对这些文本授予知识共享许可。
此处再分发用于NLP/IR 研究文档目的,作为一个长期存在的公开基准。
基线结果
使用 train.py 进行微调(基于 eval macro-F1 选择,加权 CE α=0.5,5 个 epoch,max_length 448,有效 batch 16)。硬件:RTX 3060 Laptop 6 GB。测试:4,043 篇文档。数据集修订版本:c2e11d41da4d537366e75e02bc3b21a29a4978e0。
| 模型 | 参数量 | 准确率 | Macro-F1 | Macro-F1(排除 C22) | Weighted-F1 | Top-3 |
|---|---|---|---|---|---|---|
| DistilBERT | 66M | 0.666 | 0.497 | 0.520 | 0.643 | 0.854 |
| bert-base-uncased | 110M | 0.686 | 0.550 | 0.575 | 0.668 | 0.865 |
| BiomedBERT | 110M | 0.774 | 0.699 | 0.731 | 0.766 | 0.933 |
| BiomedBERT(TextGCN 预处理输入) | 110M | 0.741 | 0.662 | 0.692 | 0.734 | 0.919 |
分解:DistilBERT → bert-base = +2.0 准确率 / +5.3 macro-F1(容量);bert-base → BiomedBERT = +8.8 / +14.9(领域)。
不确定性
两种不同的离散度,回答不同问题:
- 初始化变异性——种子 42 / 43 / 44,相同划分:accuracy 0.775 ± 0.003 · macro-F1 0.699 ± 0.005 · top-3 0.934 ± 0.002。反映训练稳定性。
- 采样变异性——对 4,043 篇测试文档进行 95% 自助法,1,000 次重采样:macro-F1 在 [0.680;0.715] 区间。应使用此区间与任何他处发表的结果进行比较。
已发布权重为种子 42(accuracy 0.774,macro-F1 0.699)。上表为三种子平均:两者间约 0.001 的微小差异属预期。
在 TextGCN 协议上的定位
| 方法 | 输入 | 准确率 | Macro-F1 |
|---|---|---|---|
| TF-IDF + 逻辑回归 | 过滤后 | 54.66 | — |
| CNN-non-static | 过滤后 | 58.44 | — |
| RB-GAT(RoBERTa + BiGRU + GAT) | 过滤后 | 71.48 | 67.90 |
| BiomedBERT——配对比较 | 过滤后 | 74.1 | 66.2 |
| BiomedBERT——已发布模型 | 原始 | 77.4 | 69.9 |
解读:仅“配对”一行可与引用工作直接比较:它使用相同的预处理。在此基础上,BiomedBERT 在准确率上略优(+2.6),在 macro-F1 上略逊(−1.7):两种方法处于同一水平。我们不主张任何优越性。
已发布模型消费原始文本并获得更高的绝对分数,但该数字无法与文献中任何结果比较——仅表明在不劣化输入时可获得的性能。
TextGCN 预处理对领域编码器的代价
引用文献中缺失的度量:相同 BiomedBERT、相同种子 42、相同 3,357 / 4,043 划分;仅输入变化(preprocess_textgcn.py,NLTK 停用词 + 频次 < 5 的 token,词汇表仅基于训练集计算)。从 0.774 / 0.699(原始)降至 0.741 / 0.662(过滤后):−3.3 准确率,−3.7 macro-F1。
机制:频次 < 5 的过滤在约 3,357 篇训练文档上将保留词汇量降至 8,290 个 token(去除停用词后)。这些正是稀有技术术语——基于 PubMed 训练的 WordPiece 相比通用词汇表更具优势之处。TextGCN 协议因此系统性损害基于子词的 transformer 相对基于图的方法,后者依赖高频词的共现且在过滤中损失较少。确认性信号:macro-F1 下降多于准确率(−3.7 对 −3.3),与稀有术语主要支撑稀有类别相符。
比较范围
比较了三个模型,选择它们以在恒定架构下隔离领域效应。**该协议确定预训练领域贡献了主要收益,而非证明 BiomedBERT 是最优选择。**未评估:BioLinkBERT、近期长上下文编码器,以及可定位无训练下限的零样本 LLM 基线。欢迎贡献。
主要混淆
矩阵(测试集,种子 42)。三大头部配对:
- C23 → C14(50)· C23 → C10(42)· C23 → C21 / C02 → C20(各 24)
C23 不对称性。 大量外流:264 次 C23→X 对 107 次 X→C23(比率 2.47)。精确率 0.592,召回率 0.370,F1 0.455(n=419)。不对称性使机制可见:模型并非将 C23 与其他类别混淆——而是欠预测 C23。当其预测时,六成正确;仅捕获三分之一。这是杂项类别学会仅在缺乏器官信号时触发的特征。C22(F1 0.000)之后 macro-F1 损失的第二大来源——C23 是三大最频繁类别之一。
核心数字:macro-F1 0.699(23 类)。对 21 个良构类别的诊断——结构性标准预先设定,而非两个最差分数:C22 无可用支持,C23 非领域而是剩馀章节——:0.744。因其他原因弱化的类别仍计在计算中。
主要混淆并非源于领域间歧义,而是 C23 章节(Pathological Conditions, Signs and Symptoms)的剩馀性,其吸收独立于器官系统的体征和症状。标注为 C23 的摘要谈论体征;其文本充满器官词汇;模型预测器官(出血/休克→C14,疼痛/昏迷→C10,创伤后体征→C21)。这是标注粒度问题,而非 MeSH 多层级。
唯一对应确证 MeSH 交叉列出的头部配对是 C02→C20。在 24 例中,23 例提及 HIV / AIDS / immunodeficiency / HTLV——1987–1991 年 HIV 文献,交叉列于病毒疾病和免疫缺陷综合征下。C04↔C08 和 C10↔C20 配对在矩阵中罕见(4 和 1),尽管它们出现在演示中。
使用命令示例
bash python inspect_dataset.py python train.py --dataset_revision c2e11d41da4d537366e75e02bc3b21a29a4978e0 --max_train_samples 200 --epochs 1 --max_length 128 python train.py --dataset_revision c2e11d41da4d537366e75e02bc3b21a29a4978e0 --train_batch_size 8 --gradient_accumulation_steps 2 --eval_batch_size 16 --max_length 448 python train.py --model_name distilbert-base-uncased --output_dir outputs/distilbert-ohsumed23 --dataset_revision c2e11d41da4d537366e75e02bc3b21a29a4978e0 --train_batch_size 8 --gradient_accumulation_steps 2 --eval_batch_size 16 python train.py --model_name bert-base-uncased --output_dir outputs/bertbase-ohsumed23 --dataset_revision c2e11d41da4d537366e75e02bc3b21a29a4978e0 --train_batch_size 8 --gradient_accumulation_steps 2 --eval_batch_size 16




