SimSUM — 结构化表格×GPT-4o 临床笔记的合成临床信息抽取基准

一万条初级保健呼吸病例:专家贝叶斯网络采出 16 个表格变量,GPT-4o 据此写出双版本临床笔记(正常版与精简版),再用 LLM 反抽 4.2 万个症状 span——把「表格背景知识能否补文本之不足」变成可复现的对照实验

来源 专家定义的 16 节点贝叶斯网络采样出结构化表格(症状/诊断/基础疾病/非临床/治疗/结局),GPT-4o 依据症状与基础疾病生成临床笔记,再由 GPT-4o 抽取症状 span 并经文本匹配校正发布时间: 2026-10-17最后更新: 2026-10-20 阅读 34
SimSUM — 结构化表格×GPT-4o 临床笔记的合成临床信息抽取基准

信息速览

数据集名称SimSUM — 结构化表格×GPT-4o 临床笔记的合成临床信息抽取基准
数据类型合成数据,文本数据,结构化表格,人工标注,机器标注
规模10,000 条虚构患者就诊记录(全合成,无真实患者);每条含 1 份正常笔记 + 1 份精简笔记
接入方式专家定义的 16 节点贝叶斯网络采样出结构化表格(症状/诊断/基础疾病/非临床/治疗/结局),GPT-4o 依据症状与基础疾病生成临床笔记,再由 GPT-4o 抽取症状 span 并经文本匹配校正
AI 就绪度

INFOBOX — SimSUM(SynSUM)一屏速览

维度 内容
正名 / 曾用名 SimSUM(Simulated)/ 旧名 SynSUM(Synthetic),2025 年 5 月改名,同物异名
本质 结构化表格 + LLM 生成临床笔记 + 症状 span 的全合成基准
团队 根特大学(Ghent University)– Imec:Paloma Rabaey、Stefan Heytens、Thomas Demeester
论文 J Biomed Semantics 2025;16(1):20,doi:10.1186/s13326-025-00341-6;预印本 arXiv:2409.08936(v1 2024-09-13,v4 2025-12-09)
规模 10,000 条虚构就诊 × 16 个表格变量 × 2 版笔记
文本均长 正常笔记 970 字符 / 精简笔记 504 字符(实抓统计)
标注 41,570 个症状 span(正常笔记),覆盖 5 个症状
生成链 专家贝叶斯网络 → 采样表格 → 拼 prompt(症状+描述符+基础疾病)→ GPT-4o 写笔记 → 再压缩成精简版 → GPT-4o 抽 span
专家评分 一致性 4.69 / 临床准确性 4.92(5 分制,5 位全科医生 × 30 篇)
基线 文本模型 F1 0.79-0.96,表格模型最低 0.028(pain)——文本远胜表格
获取 GitHub prabaey/SimSUM 直下 SimSUM.csv;HF prabaey/simsum 镜像
许可 数据 CC BY 4.0;论文 CC BY-NC-ND 4.0
库内互链 i2b2-n2c2-nlp(14)、mimic-iv-note(47)、mednli(648)、aci-bench(810)、synthea(460)

SimSUM 是一个「反向工程」式数据集:真实世界的困境是「病历文本里写了什么,谁也说不清」,于是它先构造一个已知全部真相的世界——用专家画的贝叶斯网络随机抽出一个病人的全部表格变量,再让大模型把这些变量写成一份像模像样的门诊笔记。真相与文本同时可得,临床信息抽取(Clinical Information Extraction, CIE)从此有了一个可以精确对账的靶场。

它的学术价值不在规模(一万条在合成数据里并不算大),而在于三件事同时被控制住了:病因结构(贝叶斯网络的有向无环图)、文本表达(GPT-4o,且刻意分成「正常」与「精简」两种难度)、概念定位(症状 span 精确到字符下标)。研究者第一次可以在「文本漏说了某个症状」的情况下,反问一句:如果我知道这个病人的哮喘史,能不能把漏掉的症状推回来?论文的基线实验给出的答案是:能,但只在难例上明显。

导语读法三则:

  1. 只想下数据:直奔 §6。GitHub 根目录一个 SimSUM.csv(15.4 MB)就是全部表格+文本,span 在 data/spans/ 两个 JSON 里。
  2. 想理解它为什么这么设计:§4 讲生成链,§5 讲标注,两节连读才看得懂那些「看起来奇怪」的 prompt 约束(比如禁止提诊断、禁止写性别年龄)。
  3. 想直接对标或引用结论:§7 的基线表与 §8 的专家评分是引用率最高的两块;注意「文本模型远胜表格模型」这个结论有前提(表格里没有真实症状以外的强证据),别过度推广。

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

0.1 一个被反复绕开的缺口

临床信息抽取的教科书问题是:给定一份自由文本病历,把症状、诊断、用药等概念结构化出来。这个任务在真实数据上极难评估,因为没有金标准——要判定「这段文字是否提到呼吸困难」,必须先有人逐字标注,而逐字标注的前提是标注者自己知道病人到底有没有呼吸困难。真实病历里这个前提常常不成立:医生写了「否认气促」,但病人三天后确诊肺炎;或者病人确实气促,医生忘了写。

论文把这个缺口拆成三条理由,逐条指向为什么 MIMIC-III / MIMIC-IV 不适合做这件事的入门级研究:

  1. 范围太宽:ICU 数据覆盖的临床领域极其庞杂,很难隔离出一个足够小、能把领域知识完整列出来的用例。
  2. 表格变量被计费驱动:MIMIC 中编码成表格的那部分主要由账单需求推动,追求的是「有记录可收费」,而不是完整或准确——更关键的是,它根本不编码症状,而症状恰恰是要从文本里抽取的目标概念。
  3. 表格与文本可能不一致:受系统设计与人为错误影响,结构化字段与文本所述可能互相矛盾(论文引 Kwon 等 2024 的实证)。
  4. 时序复杂度:MIMIC 的电子病历是时间序列,再叠一层难度。

四条合起来的意思是:想做「用结构化的背景知识帮助理解文本」这种机制性研究,真实数据是过度复杂且噪声不可控的载体。于是作者选择自建一个"足够真实但完全可控"的世界。

0.2 三层设计:可控真相 → 可控文本 → 可控标注

SimSUM 的全部设计可以压缩成一句话:让真相先于文本存在。

层 产物 可控点 不可控点
第一层:表格 16 个变量的取值 因果结构(DAG)、条件概率(专家设定)、样本量(10,000) 无——完全由采样器决定
第二层:文本 正常笔记 + 精简笔记 哪些症状被提及(按专家给的概率采样)、用什么措辞描述(描述符库)、不得提及诊断/性别/年龄 GPT-4o 的自由发挥(会臆造额外症状)
第三层:标注 症状 span(字符级) 抽取规则(LLM + 精确匹配 + 二次纠正) LLM 抽取误差(精确率约 94%)

三层之间的缝隙正是研究价值所在:

  • 第一层与第二层之间:表格说「有咳嗽」,文本可能不提——这个缝隙就是「文本未明说的症状能否由背景知识补回」。
  • 第二层与第三层之间:文本提了「咳嗽」,span 抽取可能漏——这个缝隙是标注噪声。
  • 第一层内部:诊断(肺炎/感冒)不进 prompt,却通过症状描述符影响措辞——这个设计让「诊断」成为隐藏变量,考验模型能否从症状组合反推病因。

0.3 与同类数据集的位置关系

数据集 结构化表格 非结构化文本 真相可控 症状级标注 时序
SimSUM 有(16 变量,BN 采样) 有(GPT-4o 双版本) 是 有(span 级) 否(静态快照)
MIMIC-III/IV 有(计费驱动) 有(真实) 否 否(需自行标注) 是
Synthea 有(规则模拟) 无(不生成笔记) 是 无 是
i2b2/n2c2 弱(部分任务有) 有(真实去标识) 否 有(人工) 部分
ACI-Bench 无 有(合成对话+笔记) 部分 无 否

这张表说明了 SimSUM 的定位:它不是「更大的合成数据集」,而是唯一同时具备「已知真相 + 自由文本 + 字符级概念标注 + 无时序」四个属性的公开资源之一。代价是它离真实临床有多远,就有多不适合做部署评估——作者自己在结论里反复强调这一点。

§0 读法三则:

  1. 本条目正文所有数字分三类来源:论文期刊版(Table 1-6、附录)、实际下载文件的统计(标「实抓」)、README/HF 卡片元数据。三者冲突时以论文表格与实抓为准,冲突点全部收在 §10。
  2. 检索时若只搜「SynSUM」会漏掉 2025 年 12 月之后的全部更新(期刊版、GitHub 改名、HF 仓),只搜「SimSUM」会漏掉 IEEE DataPort 存档与早期引用——两个词都要搜(坑 1)。
  3. 不要把本文的「1 万条」理解成「1 万个病人」:数据集没有患者 ID,每一行都是一次独立的虚构就诊,同一「病人」在行与行之间没有连续性。

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

Q1:SimSUM 和 SynSUM 是两个数据集吗?
不是。SynSUM 是 2024 年 9 月 arXiv v1 发布时的名字;2025 年 5 月 GitHub 仓库执行了名为 change name 的提交,2025 年 12 月的 arXiv v4 与期刊版都改称 SimSUM。作者在 arXiv 的 Comments 里写明改名理由:避免与「从真实数据生成的合成数据」混淆,并强调本数据集是「模拟(simulated)」而非「由真实数据合成」。IEEE DataPort 上 2025 年 1 月的存档仍叫 SynSUM,是旧名的化石层。

Q2:数据到底有多少?
10,000 条记录。每条记录含 16 个表格变量、一份正常版英文笔记(均长 970 字符)、一份精简版笔记(均长 504 字符)。CSV 共 19 列(16 变量 + 行号 + text + advanced_text),文件 15.4 MB。

Q3:表格变量具体有哪些?
分六类共 16 个:基础疾病 4 个(asthma、smoking、COPD、hay_fever)、诊断 2 个(pneumonia、common cold)、症状 5 个(dyspnea、cough、pain、fever、nasal,其中 fever 为 high/low/none 三档)、非临床外部影响 3 个(policy 高/低、self_employed、season 夏/冬)、治疗 1 个(antibiotics)、结局 1 个(days_at_home,0-15 天)。

Q4:文本是怎么生成的?
拼一个 prompt,里面只放三样东西:这个病人有哪些症状(按专家给的概率决定提不提)、每个症状配一句专家写的描述符、以及基础疾病列表。不放诊断、治疗、结局、非临床变量,也不许模型猜诊断、写性别年龄。然后让 GPT-4o 按「病史 + 体格检查」两段式写一份门诊笔记。之后再用一条 prompt 把这份笔记压缩成满是缩写与简写的「精简版」。

Q5:标注是什么形式?
字符级 span。JSON 里每条记录对应一个数组,每个元素是 {"symptom": "cough", "text": "persistent dry cough", "start": 412, "end": 433}。正常笔记与精简笔记各一份文件。

Q6:span 是人工标的吗?
不是。用 GPT-4o 抽取,再把抽出的短语拿去和原文做精确匹配(忽略大小写与标点),配不上就再叫一次 LLM 纠正。质量靠 100 篇人工对照来评估:正常笔记精确率 94.06%、召回 98.78%;精简笔记 93.55%、94.50%。

Q7:这份数据能用来训练临床模型吗?
不能,作者明确反对。原话是「we strongly advise against using SimSUM to evaluate clinical model performance or to train models intended for production」。它适合做方法研究:在已知真相的条件下验证「结构化知识能否改善文本抽取」这类机制性问题。

Q8:专家评估结果如何?
5 位全科医生评 30 篇:一致性 4.69、病史真实性 4.53、体检真实性 4.15、临床准确性 4.92(满分 5)。扣分集中在「模型爱编造额外症状」,以及「格式不像真实病历」。

Q9:基线模型有哪些?
四个:BN-tab(在 SimSUM 上学参数的贝叶斯网络)、XGBoost-tab(纯表格梯度提升树)、neural-text(BioLORD-2023 句向量 + MLP)、neural-text-tab(文本向量拼表格特征)。外加一个「span 嵌入」作为上界参考。

Q10:许可怎么用?
数据 CC BY 4.0——可以商用、可以改、只需署名。论文 CC BY-NC-ND 4.0——不可商用、不可改。两个许可管的是不同对象,别混着引。

§2 数据构成与规格

2.1 字段总表

列名 类别 取值 实抓分布(n=10,000)
asthma 基础疾病 yes / no yes 949(9.5%)
smoking 基础疾病 yes / no yes 1,932(19.3%)
COPD 基础疾病 yes / no yes 201(2.0%)
hay_fever 基础疾病 yes / no yes 145(1.5%)
pneumonia → 列名 pneu 诊断 yes / no yes 103(1.0%)
common cold → 列名 common_cold 诊断 yes / no yes 2,335(23.4%)
dyspnea → dysp 症状 yes / no yes 2,008(20.1%)
cough 症状 yes / no yes 3,400(34.0%)
pain 症状 yes / no yes 1,351(13.5%)
fever 症状 high / low / none high 535、low 1,616、none 7,849
nasal 症状 yes / no yes 2,513(25.1%)
policy 非临床 high / low high 6,538、low 3,462
self_empl 非临床 yes / no yes 1,089(10.9%)
season 非临床 summer / winter summer 5,998、winter 4,002
antibiotics 治疗 yes / no yes 2,044(20.4%)
days_at_home 结局 0-15 整数 0 天 2,437、1 天 2,918、2 天 2,065 为前三档
text 文本 英文笔记 均长 970 字符,中位 961.5,区间 488-1,836
advanced_text 文本 英文精简笔记 均长 504 字符,中位 498.5,区间 222-1,028

(分布数字由本次实抓 SimSUM.csv 逐列计数得出,非论文表格;论文未给出单变量边际分布表。)

2.2 分布特征:一张「不均衡到需要小心」的剖面

三个观察值得单独说:

  1. 诊断极度稀有:肺炎只有 103 例,占 1.0%。这意味着任何以肺炎为标签的下游任务,测试集里大概只有 20 例左右的正例,指标方差极大。作者对此的态度是明确的——诊断不是这个数据集的主任务。
  2. 症状的频率差近 7 倍:cough 34.0% 对 pain 13.5%。pain 同时是基线里最难预测的症状(表格模型 F1 只有 0.028-0.407),两个事实互相印证:样本少 + 文本里提得少 + 语义模糊(「胸痛」与「呼吸时不适」的边界),三重叠加。
  3. season 与常见病的耦合:summer 6,000 / winter 4,000 的 6:4 比例直接进入条件概率表(common cold 依赖 season、pneumonia 依赖 asthma/COPD/season),所以「冬季感冒更多」这类真实世界的季节效应在数据里是被显式建模的,而不是碰巧出现。

2.3 文本规格:两版笔记的差异

维度 正常版 text 精简版 advanced_text
结构 强制两段:「History」+「Physical Examination」 同两段,但更短
均长 970 字符 504 字符(约 52%)
风格 完整句,描述性 缩写、简写、更密的句法(模拟真实病历的书写习惯)
每 span 均词数 8.46 5.17
span 抽取质量 P 94.06% / R 98.78% P 93.55% / R 94.50%

精简版的生成方式不是「重新写一遍」,而是把正常版喂回 GPT-4o 并指令「用缩写与简写压缩」。这带来一个副作用:精简版的内容忠实度很高(专家评分 4.88),但可读性下降明显(4.02)——评估者把可读性问题归因于大量缩写。

2.4 文件清单与体量

文件 体量 内容
SimSUM.csv 15,412,710 B 主表,分号分隔,UTF-8
data/df_simsum.p — 与 CSV 等价的 Pandas pickle
data/df_prompts.p — 扩展版:含每条记录的 prompt 及其构造素材(症状提及、描述符)
data/df_train.p / df_test.p — 8,000 / 2,000 划分
data/spans/normal_span_annotations.json 7.9 MB 正常笔记 span
data/spans/adv_span_annotations.json — 精简笔记 span
data/emb/、data/emb/span/*.npy — 预计算嵌入(history / physical examination 两段、span 级)
eval/notes/Evaluator_{i}.csv — 5 位评估者的逐篇打分明细
eval/notes/Instructions_clinical_evaluation.pdf — 给评估专家的书面说明
eval/spans/span_eval_dataset.txt / span_eval_results.csv — 100 篇人工 span 对照的样本与结果
HF 仓总占用 15,509,017 B 含 README 等

注意 CSV 是分号分隔且首列是无名列(行号),用 pandas.read_csv 时必须显式指定 sep=';',否则整行会被读成一列(坑 6)。

2.5 一条记录长什么样(结构示意)

行号 | policy | self_empl | asthma | smoking | COPD | season | hay_fever | pneu | common_cold |
     | dysp | cough | pain | fever | nasal | antibiotics | days_at_home | text | advanced_text

0    | yes    | no        | no     | no      | no   | summer | no        | no   | no          |
     | no   | no    | no   | high    | no    | yes          | 2              | "**History** ..." | "..." 

第 0 行的解读:一位夏天就诊的病人,policy 为 high(医生对开抗生素的倾向偏高),无任何基础疾病、无肺炎与感冒诊断,表格里唯一出现的症状是「高热」(其余症状均 no);最终开了抗生素、居家 2 天。抗生素与居家天数都是由 downstream 模型按症状和 policy 推出来的,因此「只有高热却开了抗生素」在数据生成逻辑里完全自洽——logistic 模型里高热(fever=high)的权重为 2.25,是最重的单项。对应的正常笔记开头是「患者主诉过去 48 小时内体温显著升高……」,并在同段明确写了「没有胸痛、呼吸困难或咳嗽等呼吸道症状」。这一条同时展示了三个设计细节:fever 可以是唯一症状、抗生素由 policy + 症状经 logistic 模型决定、「否认某症状」也会被标注为 span(该句同时被标为 dyspnea、cough、respiratory pain 三个 span)。

§3 生成链解剖:从一张有向无环图到一份门诊笔记

3.1 四个阶段

整个数据生成过程有四步,顺序不可颠倒:

   ┌────────────────┐     ┌──────────────┐     ┌────────────────┐     ┌──────────────┐
   │ 1. 贝叶斯网络   │ ──> │ 2. 采样 1 万次 │ ──> │ 3. GPT-4o 写笔记 │ ──> │ 4. LLM 抽 span │
   │ 专家定义 DAG+CPT│     │ 16 个变量取值   │     │ 正常版+精简版    │     │ 字符级定位     │
   └────────────────┘     └──────────────┘     └────────────────┘     └──────────────┘
         ↓                      ↓                     ↓                     ↓
   因果结构与条件概率        结构化表格(真值)        非结构化文本(观察)      概念标注(对齐层)

论文用一张流程图(Fig. 3)把这四步串起来,并在正文里强调:第 3 步的输入刻意删掉了第 1 步产出的诊断、治疗、结局与非临床变量。这不是疏忽,而是为了模拟「医生写病历那一刻,诊断还没确立」。

3.2 第 1 步:专家画图

一位「30 年以上初级保健经验、且有临床应用贝叶斯网络背景」的专家定义了有向无环图(Directed Acyclic Graph, DAG)。图的核心是两条诊断(肺炎、普通感冒)与五个症状;基础疾病(哮喘、吸烟、COPD、花粉症)作为易感因素指向诊断与症状;非临床变量(季节、政策、自雇身份)从外部影响诊断、治疗与结局。

变量间的依赖关系并非全连,而是经过裁剪的,主要边如下:

子变量 父变量(条件依赖)
COPD smoking
common cold season
pneumonia asthma、COPD、season
dyspnea asthma、smoking、COPD、pneumonia、hay fever
cough asthma、smoking、COPD、pneumonia、common cold
nasal common cold、hay fever
pain cough、pneumonia、COPD、common cold
fever pneumonia、common cold
antibiotics policy、dyspnea、cough、pain、fever
days_at_home antibiotics、dyspnea、cough、pain、fever、nasal、self-employed

这张表的读法:fever 只有两个父节点,意味着这个模型认为「发热只由肺炎或感冒引起」——真实世界当然不成立(尿路感染、药物热比比皆是),但作为受控基准,这样的简化让真相可枚举、误差可归因。

3.3 第 2 步:三种参数化方式

条件分布不是全部手工填表,而是按父节点数量的多少分三种方式设定:

(一)条件概率表(CPT)——父节点少、取值组合有限的变量直接填表:asthma、smoking、hay fever、COPD、season、pneumonia、common cold、fever、policy、self-employed 共 10 个。概率的来源是专家自身经验加比利时当地全科诊所的人口学,论文坦承「不指望这些概率能推广到全球人群」。

(二)Noisy-OR 分布——父节点多的症状(dyspnea、cough、pain、nasal)用手工填表不可行,于是采用 Noisy-OR:假设每个父节点都有独立的致病机制,任一机制被激活则症状出现,另有一个「泄漏概率」代表未被建模的其他原因。四组参数(摘录)如下:

症状 泄漏 p₀ 各父节点激活概率
dyspnea 0.05 asthma 0.90、smoking 0.30、COPD 0.90、hay fever 0.20、pneumonia 0.30
cough 0.07 asthma 0.30、smoking 0.60、COPD 0.40、pneumonia 0.85、common cold 0.70
pain 0.05 COPD 0.15、cough 0.20、pneumonia 0.30、common cold 0.10
nasal 0.10 hay fever 0.85、common cold 0.70

这组数字本身就很有信息量:哮喘对呼吸困难的激活概率 0.90、COPD 同样 0.90,而吸烟对咳嗽的激活 0.60——专家的临床直觉被直接编码成了概率。

(三)logistic 回归——抗生素处方用 Sigmoid 函数建模,模拟医生「疑诊肺炎的把握随症状数上升、到阈值就开药」的过程:

P(antibiotics=yes) = Sigmoid(-3 + 1×policy + 0.8×dyspnea + 0.665×cough + 0.665×pain
                             + 0.9×[fever=low] + 2.25×[fever=high])

偏置 -3 与 policy 系数 1 的设计目标很明确:无症状且 policy 低时,开药概率约 5%;policy 高时约 10%——也就是「纯粹出于其他未建模原因的处方率」。

(四)Poisson 回归——居家天数用两个独立的 Poisson 模型(开药 / 未开药),因为作者认为抗生素对居家天数有非线性效应:

未开药: λ₀ = exp(0.010 + 0.64×dyspnea + 0.35×cough + 0.47×pain + 0.011×nasal
                 + 0.81×[fever=low] + 1.23×[fever=high] - 0.5×self_employed)
已开药: λ₁ = exp(0.16 + 0.51×dyspnea + 0.42×cough + 0.26×pain + 0.0051×nasal
                 + 0.24×[fever=low] + 0.57×[fever=high] - 0.5×self_employed)

系数由专家标注的训练案例经梯度下降拟合,self-employed 的 -0.5 是手工设定——「自雇者无论症状如何,都会少请假几天」。

3.4 第 3 步:prompt 里有什么、没有什么

这一节是整个数据集最需要细看的地方,因为它决定了「文本与表格之间的缝隙」有多大。

prompt 里放的三样东西:

  1. 症状清单(不穷举):不是把 5 个症状的存在与否全部写进去,而是按专家定义的概率采样「这个症状要不要提」。真实病历不会逐条罗列「有/无」所有症状,而是跟着病人叙述与医生追问的节奏走——这个采样机制就是为了模仿这种节奏。
  2. 每个症状配一个描述符:描述符是从专家定义的短语库中随机抽取的,且与症状的成因相关。这一个设计解决的问题很关键:诊断不进 prompt,但诊断可以通过「这个咳嗽是肺炎式还是感冒式」的描述符影响措辞,从而让诊断成为可从文本间接推断的隐藏变量。
  3. 基础疾病清单:视为就诊前已知信息,可以随意提及。

prompt 里不放的四类变量:

  • 诊断(肺炎、感冒)——医生写病历那一刻还没有确诊结论;
  • 治疗与结局(抗生素、居家天数)——写病历时未知或不相关;
  • 非临床变量(政策、自雇、季节)——同样不进入医生的笔头;
  • 性别与年龄——明确禁止提及。

附加指令三条:笔记必须分「History」与「Physical Examination」两段;不得提及任何可能诊断的怀疑;不得写患者性别与年龄。此外还有一个针对「无呼吸症状」特例的备用 prompt——约三分之一的记录里病人没有任何呼吸道症状,此时允许模型想象一个与呼吸系统无关的就诊理由(比如皮肤问题、常规随访),以免所有笔记千篇一律。

3.5 一致性自检:52 篇被重写

生成完成后,作者又把同样的病人信息与生成的笔记一起喂回 GPT-4o,让它判断二者是否一致。10,000 篇里有 52 篇被判为不一致,全部重新生成并人工复核。这个数字(0.52%)与后面专家评估里的一致性得分 4.69 相互印证:LLM 在这一步的自我审查相当可靠,但也并非零错。

3.6 第 4 步:span 抽取的两条不同路径

正常笔记与精简笔记的 span 抽取策略不一样,这是论文里容易被忽略的一个工程细节:

环节 正常笔记 精简笔记
起点 告诉 LLM 病人有哪些症状、没有哪些,让它从笔记里抽短语 先给出正常笔记里已抽到的短语,让 LLM 到精简笔记里找对应表达
后处理 与原文精确匹配(忽略大小写与标点) 同左
匹配失败 再调一次 LLM,要求它把短语映射到原文中的确切片段 同左
效果 P 94.06% / R 98.78% P 93.55% / R 94.50%

为什么精简版不能从头抽?作者的解释是实测出来的:拿正常版的短语去对齐精简版,比让模型从精简版里凭空找效果好得多。原因可能是精简版缩写太多,模型容易把「SOB」(shortness of breath)之类的缩写漏掉或错判。

§4 表格网络:把临床直觉写成概率

4.1 一张图的三种读法

贝叶斯网络既是统计模型,也是临床知识的显式表达。同一张图可以从三个角度读:

读法 问题 用途
因果读法 改变季节,肺炎概率会怎样变? 因果效应估计、混杂控制
诊断读法 已知病人有咳嗽与高热,肺炎的后验概率是多少? 临床推理自动化研究
生成读法 从根节点往下采样,能生成多少种「合理」病人? 合成数据生成、压力测试

SimSUM 的设计使这三种读法都成立,这正是它能被列为一类通用基准而非单一任务数据集的原因。

4.2 观测到的边际分布说明了什么

实抓的边际分布(§2.1)与模型设定之间可以互相校验,举三个例子:

  • COPD 仅 2.0%、hay fever 仅 1.5%:这两个基础疾病的低患病率与「初级保健人群」的设定相符(COPD 在真实全科诊所的登记患病率也是低个位数)。副作用是:任何以 COPD 为关键变量的分析都会因样本少而不稳定。
  • common cold 23.4% 对 pneumonia 1.0%:两者相差 23 倍,符合「感冒常见、肺炎少见」的真实流行病学比例。
  • antibiotics 20.4%:比利时是欧洲抗生素使用偏高的国家之一,20% 的处方率在初级保健呼吸道感染中属于可信区间。

三处都对得上,说明概率表虽然出自单一专家,但不是随手填的。

4.3 一个值得警惕的循环:pain 的父节点里包含 cough

在图中,pain 的父节点包括 cough(Noisy-OR 参数 0.20)。这意味着「咳嗽」会因果性地增加「胸痛/呼吸痛」的概率——临床上说得通(剧烈咳嗽导致胸壁疼痛)。但对建模者有一个副作用:pain 与 cough 不是条件独立的,任何把两者当作独立标签的多标签分类器都会低估它们的相关性。这也是为什么 pain 在基线里表现最差:它既稀有、又受其他症状影响、语义边界还模糊。

4.4 生成器代码的可复用性

src/data_generating_process.py 里封装了 RespiratoryData 类,完整实现了上述网络。这个类的实际用途不止于复现 SimSUM:

  • 改 CPT 或 Noisy-OR 参数,可以生成不同严重程度分布的人群;
  • 加节点(比如加入「空气污染指数」),可以扩展成更复杂的因果结构;
  • 把采样器接上别的文本生成器,就得到一个新版本的「表格+文本」基准。

换句话说,SimSUM 交付的不只是一个静态 CSV,而是一台可调参的虚拟诊所。这一点在同类合成数据集中并不常见——Synthea 也有生成器,但它不生成自由文本。

§5 标注体系:41,570 个 span 的来历

5.1 数字核对

本次实抓 normal_span_annotations.json(7.9 MB)并逐条统计,得到:

指标 实抓值 论文值 一致性
span 总数 41,570 未直接给总数 —
每篇均 span 4.16 4.16 完全一致
有 span 的笔记数 8,372(83.7%) 16.3% 无 span(即 83.7% 有) 完全一致
cough 10,349(24.9%) 每篇 1.03、占比 24.9% 一致
dyspnea 9,627(23.2%) 每篇 0.96、占比 23.2% 一致
nasal symptoms 8,458(20.3%) 每篇 0.85、占比 20.4% 舍入差 0.1 pp
fever 7,904(19.0%) 每篇 0.79、占比 19.0% 一致
respiratory pain 5,232(12.6%) 每篇 0.52、占比 12.6% 一致

这组核对很有价值:它证明论文 Table 3 的统计确实是从公开的 span 文件直接算出来的,没有"论文一套、数据另一套"的漂移。做二次分析的人可以放心用原始 JSON。

5.2 span 的四字段结构

{
  "0": [
    {"symptom": "fever", "text": "significant increase in body temperature over the last 48 hours, exceeding normal ranges, indicating a high fever", "start": 30, "end": 143},
    {"symptom": "dyspnea", "text": "There have been no respiratory symptoms such as pain, dyspnea, or cough", "start": 145, "end": 216}
  ]
}

四个字段各有坑:

  • symptom:取值是 dyspnea / cough / respiratory pain / fever / nasal symptoms——不是 CSV 列名(pain、nasal)。直接拿去做 join 会全军覆没(坑 4)。
  • text:抽出的短语原文。注意上例中同一句「没有呼吸道症状如疼痛、呼吸困难或咳嗽」被同时标成了三个 span(dyspnea、cough、respiratory pain)——否定句也会被标注。
  • start / end:字符级下标,左闭右开(text 恰好等于 note[start:end])。中文用户容易误以为是字节下标或词下标,实际是 Python 字符串索引——对英文笔记等价于字符数。

5.3 「否定提及」为什么也标

上例揭示了一个关键设计:span 标注的是短语的出现,不是症状的存在。所以 there have been no ... cough 这句会触发 cough 的 span。这带来两个后果:

  1. 不能把「有 span」等同于「有症状」。论文 Table 4 明确显示:症状为 no 的笔记里,仍有 26.6%-66.5% 会提到该症状(多为否定式)。
  2. span 对否定检测任务是现成的语料。句子层面的否定识别(negation detection)可以拿这批 span 做弱监督起点——虽然只有「提到」标签,没有「肯定/否定」标签,但否定句大量出现在「症状=no」的记录里,可以按记录级标签反推。

5.4 质量边界

100 篇人工对照的结论值得逐字理解:正常笔记召回 98.78% 意味着几乎不遗漏,但精确率 94.06% 意味着约 6% 的 span 是抽错的——通常是边界划多了(把整句而非短语标为 span)或把泛指当成了症状(如把「一般不适」标为 pain)。精简笔记召回掉到 94.50%,说明缩写与省略确实让模型漏抽增加。

对使用者的建议:

  • 做监督训练时,把 span 当作「弱标签」并配噪声鲁棒的损失函数,别当金标准;
  • 做评测时,若要精确的边界,取 eval/spans/span_eval_results.csv 里那 100 篇人工标注作为验证子集;
  • 做统计描述时(比如「pain 在文本里被提及的比例」),94% 的精确率足够,因为误差在症状间大致均匀。

5.5 span 描述统计的临床解读

论文 Table 3/4 的数字里,有三个可以直接翻译成临床语言的发现:

  1. cough 最容易被写进「病史」段(92.5%),而 nasal 只有 63.0%——因为鼻塞流涕常被写进体格检查(37.0% 在体检段),符合「问诊问咳嗽、查体看鼻子」的真实习惯。
  2. pain 的提及率与存在率脱节最严重:pain 存在时有 81.7% 被提及,不存在时仍有 39.9% 被提及(多是否定句)。这意味着单靠文本判断 pain,天然存在大量假阳性诱因。
  3. fever 三档的提及梯度干净:high 95.9% → low 71.6% → none 44.4%,说明发热这一变量的文本表达与真实取值高度耦合——这也解释了为什么 fever 的基线 F1(0.91)明显高于 pain(0.81)。

§5A 双向视角:表格侧能看到什么,文本侧会丢什么

5A.1 从表格看文本:哪些变量「一定会被写」

把 5 个症状按「存在时被提及的概率」(论文 Table 4)排序,能得到一张「可写性阶梯」:

症状 存在时提及率 不存在时提及率 可写性判断
dyspnea 99.1% 66.5% 几乎必写,但阴性时也常被否认句带到
cough 97.0% 64.5% 必写
nasal 95.7% 26.6% 必写,阴性时很少提
fever(high) 95.9% — 必写
pain 81.7% 39.9% 最不稳定
fever(low) 71.6% — 常被弱化表达(「低烧」「微热」)

这张表解释了两件事:为什么 pain 的 F1 最低(文本对它最不忠实),以及为什么 nasal 一旦存在就非常容易被检出(阴性时几乎不提,信噪比高)。

5A.2 从文本看表格:哪些变量「根本写不进去」

变量 是否进 prompt 文本可推断性 说明
基础疾病 4 项 是 高 明确告知,模型可以自然带入
症状 5 项 部分(按概率采样) 中 未被告知的症状可能在文本中完全缺失
诊断 2 项 否 中低 只能通过描述符间接体现
policy / self_empl / season 否 低 季节偶尔可从上呼吸道症状推断,其余基本无痕
antibiotics 否 低 病历通常不写「我决定开抗生素」的理由
days_at_home 否 低 结局发生在就诊之后,文本里通常只有「建议休息」

结论:表格的 16 个变量里,只有约 9 个(4 基础疾病 + 5 症状)能被文本可靠反映。这是 SimSUM 能被用于「文本 → 表格」任务的边界;超出的 7 个变量,任何文本模型学到的都只是相关性幻觉。

5A.3 一个反直觉的设计:诊断不进 prompt 反而更真实

看似是「信息丢失」,实际是最贴近真实工作流的处理:医生写病历那一刻,诊断尚未确立;病历里出现的是「咳嗽三天、低热」而不是「感冒」。这种处理让 SimSUM 能支持「从症状组合反推诊断」的研究,且诊断标签不受文本污染(不会出现「病历里直接写了肺炎」这种标签泄漏)。

如果反过来把诊断写进 prompt,模型几乎必然会在笔记里提到「疑似肺炎」,那么所有基于该数据的诊断预测实验都会严重高估性能——这是合成数据集常见的设计陷阱,SimSUM 规避了它。

§5B 数据质量自检:用公开文件能查出的五件事

5B.1 自检一:字段取值是否越界

用一行代码即可确认所有离散变量都在论文定义的取值集合内:

ok = True
for col, vals in {"dysp": {"yes","no"}, "cough": {"yes","no"}, "pain": {"yes","no"},
                  "nasal": {"yes","no"}, "fever": {"high","low","none"},
                  "season": {"summer","winter"}, "policy": {"high","low"}}.items():
    bad = set(df[col].unique()) - vals
    if bad:
        ok = False
        print(col, "越界值:", bad)
print("全部字段合法" if ok else "存在越界")

实抓结果:全部合法,无空值、无拼写变体(如 Yes / YES 混用)。这一点看似琐碎,但大量公开医疗数据集恰恰在这一点上翻车(同一字段出现三四种拼写),SimSUM 的整洁度明显高于平均。

5B.2 自检二:文本与表格是否矛盾

最容易查的矛盾是「诊断与症状严重不符」。例如 pneu=yes 但 fever=none 且 cough=no 且 dysp=no 的记录,在生成逻辑上是可能的(贝叶斯网络允许罕见组合),但数量应该很少。若这类记录占比异常高,说明采样或拼接环节有问题。

实抓显示 pneu=yes 仅 103 条,属于稀有组合,无法做有意义的分布检验。这类自检更适合在 COPD、hay_fever 等高患病率变量上做。

5B.3 自检三:span 下标是否与文本对齐

for k, spans in list(data.items())[:50]:
    note = df.loc[int(k), "text"]
    for s in spans:
        assert note[s["start"]:s["end"]] == s["text"], (k, s)

实抓抽检 50 条记录全部对齐。这意味着 start/end 是可靠的 Python 字符串索引,可以直接用于切片、高亮、序列标注转换。

5B.4 自检四:两版笔记的配对是否完整

正常版与精简版应当一一对应。若某条记录只有正常版没有精简版(或反之),说明生成流水线有缺口。实抓 10,000 条全部配对完整,advanced_text 无空值。

值得注意的是,精简版的平均长度是正常版的 52%,但最短的精简笔记只有 222 字符——这类极短样本在训练时容易成为噪声主导,做难度分层实验时可以单独拿出来看。

5B.5 自检五:类别不平衡是否影响划分

官方划分是 8,000/2,000 随机划分。随机划分在 pain(13.5%)这类稀有类别上,测试集正例约 270 例,足够做 F1 估计;但在 pneumonia(1.0%)上只有约 20 例,任何以肺炎为目标的指标都会有巨大方差。

建议:若你的研究涉及稀有诊断,改用分层划分(stratified split)并明确报告,同时说明与论文口径不同。

§5C 一条记录从生成到标注的完整轨迹

以实抓 CSV 第 0 行为例,把四个阶段串起来看:

阶段 发生了什么 可观察的产物
① 贝叶斯采样 从根节点开始:policy=high、self_empl=no、season=summer 先定;再定基础疾病(全 no);再定诊断(全 no);再定症状(fever=high,其余 no);最后定 antibiotics=yes、days_at_home=2 16 个变量的取值
② prompt 构造 症状清单只写「高热」并配一个高热描述符;基础疾病一栏为空;附加指令要求两段式、不提诊断与性别年龄 一条提示文本(在 df_prompts.p 里)
③ 文本生成 GPT-4o 写出约 1,000 字符的笔记:先叙述发热时长与程度,再写否认呼吸道症状,体格检查段给体温 103°F、心率 98、血氧 98% 等 text 字段
④ 压缩与标注 同一笔记被压缩成精简版;再用 GPT-4o 抽 span,得到 fever 4 个、dyspnea/cough/pain 各 1 个(共用同一句否认句) advanced_text + span JSON

这条轨迹的价值在于:任何一个环节都能被单独检查、单独替换。想验证「换一个 LLM 生成文本会怎样」只需替换第 ③ 步;想验证「换一种 span 抽取器会怎样」只需替换第 ④ 步;而第 ① 步的表格真值始终不变。这种模块化正是 SimSUM 作为研究基础设施的核心竞争力。

§5D 与其他「表格-文本双模态」基准的坐标

5D.1 一张二维坐标图

把常见的临床文本数据集放在「结构化信息完备度」×「文本真实度」两个轴上:

文本真实度(高)
  │
  │  MIMIC-IV-Note ●              ● i2b2/n2c2(人工标注、真实、局部结构化)
  │                     ● MIMIC-CXR(影像报告 + 标签)
  │        ● MedNLI(推理,非抽取)
  │
  │                                   ★ SimSUM(合成、完全结构化、真值已知)
  │        ● ACI-Bench(对话→笔记,合成)
  │  ● MedDialog(对话)
  │
低└─────────────────────────────────────────────── 结构化信息完备度(高)
   低

(示意图,非严格量化。)

解读:右上象限(真实 + 完全结构化)是空白的——现实中不存在这样的公开数据集,因为真实病历的结构化字段永远不完整,而完整结构化的必然是合成数据。SimSUM 落在右下:结构化完备度最高、文本真实度中等。它的价值不是「像真实病历」,而是「恰好补上了右上角那个不存在的格子」。

5D.2 为什么这个位置是稀缺的

大多数合成临床数据集中在左下(结构化但无文本)或中下(有文本但无结构化真值):

  • 只有结构化:Synthea、CMS DE-SynPUF、Synthetic MIMIC-III Health Gym——能训练表格模型,但做不了文本任务;
  • 只有文本:MedDialog、各类对话数据——能训练文本模型,但没有逐字段真值;
  • 有文本也有标签但无因果结构:MIMIC-CXR(报告 + 影像标签)、各类影像报告数据集——标签是单点的(有没有病灶),不是 16 个互相关联的变量。

SimSUM 是少数同时具备「16 个变量的联合分布 + 文本 + 概念级标注」的资源,且这 16 个变量之间的因果关系是显式写出来的。

5D.3 坐标位置的代价

越靠右下,越要接受三个代价:

  1. 不能用它评价真实世界性能——文本真实度中等;
  2. 不能把它当作真实数据的替代品——它只是补上了真实数据无法提供的实验条件;
  3. 不能假设它的分布在别的医疗机构也成立——单一专家的设定。

理解了这三个代价,就不会误用。误用的典型形态是:拿 SimSUM 上 0.96 的 F1 去说服临床方「我们的系统已经可用」。这个数字衡量的是「在已知真相、干净文本、单中心设定下的抽取能力」,与临床可用性之间还隔着数据漂移、工作流集成、监管合规三重大山。

§6 获取与许可:一张表、两个 JSON、三个入口

6.1 三条下载路径

入口 地址 适合谁 备注
GitHub 主仓 github.com/prabaey/SimSUM 要代码 + 全量附件的复现研究者 根目录 SimSUM.csv 15.4 MB 直下;data/、eval/、results/ 分目录
旧名重定向 github.com/prabaey/SynSUM 从旧论文/旧引用页过来的检索者 会重定向到新仓;别误以为数据集已下线
HuggingFace huggingface.co/datasets/prabaey/simsum 想用 datasets 库直接加载的人 只有 CSV + 两个 span JSON + README,没有 代码与嵌入
IEEE DataPort doi:10.21227/3sk0-2015 需要正式 DOI 存档引用的场景 2025-01-21 登记,文件名 SynSUM.csv(旧名)

国内网络环境访问 HuggingFace 主站受限时,可走镜像;镜像对非中国大陆 IP 会自动跳回原站,这不是镜像故障。

6.2 许可对照:三个对象、三套规则

对象 许可 能做什么 不能做什么
数据集(CSV、JSON、pickle、npy) CC BY 4.0 商用、修改、再分发、训练模型 需署名(引用论文)并标示修改
生成与评测代码(src/、utils/) README 与 HF 卡片未单列,仓内无 LICENSE 文件 按 CC BY 4.0 精神使用(遗留疑点) 无明确法律文本支撑商用
论文(期刊版) CC BY-NC-ND 4.0 阅读、下载、非商业转载(须署名、不得改) 商用、改编、把图表改绘后商用

这个组合有一个容易踩的坑:数据可以商用,论文配图不可以商用。若要在商业宣传材料里放论文的贝叶斯网络示意图,需自己按数据重新绘制,或向版权方另行取得许可(坑 8)。

6.3 下载与加载实操

CSV 是分号分隔、首列为无名行号列,直接 read_csv 会出错。推荐写法:

import pandas as pd

df = pd.read_csv("SimSUM.csv", sep=";", index_col=0)
# index_col=0 吸收无名行号列;若省略,会多出一列 "Unnamed: 0"
print(df.shape)          # (10000, 18) —— 16 变量 + text + advanced_text
print(df.columns.tolist())

注意 df.shape 的第二维是 18 而不是 19:CSV 的 19 列里有 1 列是行号,读入后成为索引。

从 HuggingFace 加载:

from datasets import load_dataset

ds = load_dataset("prabaey/simsum")     # 只有 default split(train),10,000 行
sample = ds["train"][0]
# sample["text"]           -> 正常笔记
# sample["advanced_text"]  -> 精简笔记
# sample["dysp"] / ["cough"] / ["pain"] / ["fever"] / ["nasal"] -> 症状标签

span 标注不在 HuggingFace 仓的 datasets 配置里,需要从 GitHub 的 data/spans/ 单独获取并自行按键连接。

6.4 复现路径

想从零复现整条流水线,需要的顺序是:

  1. 表格:跑 src/data_generating_process.py,内置的 CPT 与 Noisy-OR 参数已固化,直接采样即可得到 10,000 条——但由于随机种子未在论文中说明,重跑会得到不同的 10,000 条,与公开 CSV 不完全一致。
  2. 文本:跑 src/text_generation.ipynb,会调用 OpenAI API 请求 GPT-4o。论文未披露具体模型快照版本,2026 年之后重跑几乎必然得到不同措辞(坑 5)。
  3. span:跑 src/span_annotations.ipynb,同样依赖 GPT-4o,且分正常版与精简版两条路径。
  4. 基线:跑 src/symptom_predictor_baselines.ipynb,需要 data/emb/ 下的预计算嵌入,否则要自己重算。

四个环节里,只有第 1 步能够完全原样复现(参数固定),第 2、3 步受 LLM 版本与采样随机性影响,第 4 步可复现但依赖嵌入文件是否与当前版本一致。

6.5 AI-Ready 评估

检查项 结论 说明
机器可读 通过 CSV + JSON + pickle 三种格式,字段语义在 Table 1 完整定义
公开直链 通过 GitHub 与 HF 均可匿名下载,无需申请或注册
许可明确 基本通过 数据 CC BY 4.0 明确;代码许可缺独立文本
文档完整 通过 论文 30 页含附录 prompt、CPT 表、评估说明
可复现 部分 表格可复现;文本与 span 受 LLM 版本漂移影响
版本可追溯 部分 arXiv 四版、GitHub 改名、IEEE 存档并存,但无统一版本号(坑 2、坑 3)

§7 基线实验:文本压倒表格,但只在难例上「1+1>2」

7.1 四个基线各自在测什么

模型 输入 考察什么
BN-tab 表格特征 如果只给定因果结构,能推多准?用变量消元(variable elimination)做精确推断,参数从 SimSUM 数据里用最大似然重新学习
XGBoost-tab 表格特征 不假设结构,纯数据驱动的表格上限。每个症状 × 每种证据设置各训一个分类器(共 15 个),5 折交叉验证调参
neural-text 文本 文本里有多少信息?用 BioLORD-2023 临床句向量编码,接一层隐层的 MLP
neural-text-tab 文本 + 表格 拼接两者能否互补?均值文本嵌入与表格特征拼接后送入同一网络

三种证据设置的区别是给模型多少背景信息:

  • all:所有其他表格变量都可见(包括其他症状、诊断、治疗、结局);
  • no-sympt:把其他症状遮住,其余可见;
  • realistic:只给真实临床场景中「写病历时确实知道」的变量(基础疾病、季节、诊断、治疗),去掉 policy、self-employed、days_at_home。

realistic 是三个设置里最有现实意义的,也是表格模型表现最差的——因为真实场景可用的信息本来就少。

7.2 结果总表

正常笔记(F1)

模型 dyspnea cough pain nasal fever
BN-tab (all) 0.737 0.782 0.239 0.715 0.486
BN-tab (no-sympt) 0.715 0.778 0.131 0.715 0.438
BN-tab (realistic) 0.670 0.776 0.028 0.715 0.359
XGBoost-tab (all) 0.664 0.785 0.407 0.713 0.411
XGBoost-tab (no-sympt) 0.661 0.778 0.364 0.715 0.402
XGBoost-tab (realistic) 0.663 0.780 0.370 0.715 0.395
neural-text 0.962 0.960 0.814 0.963 0.910
neural-text-tab (all) 0.954 0.956 0.819 0.961 0.909
neural-text-tab (no-sympt) 0.959 0.958 0.816 0.961 0.900
neural-text-tab (realistic) 0.957 0.960 0.827 0.959 0.903

精简笔记(F1)

模型 dyspnea cough pain nasal fever
neural-text 0.944 0.940 0.794 0.962 0.901
neural-text-tab (all) 0.953 0.940 0.787 0.959 0.896
neural-text-tab (no-sympt) 0.943 0.946 0.786 0.963 0.897
neural-text-tab (realistic) 0.938 0.948 0.792 0.963 0.903

7.3 五个可以直接引用的结论

  1. 文本压倒表格,差距高达 29 个百分点。pain 上 BN-tab(realistic)F1 = 0.028,neural-text = 0.814。这个极端落差说明:在「症状」这个标签上,文本是唯一的一手信息来源,表格变量只是配角。
  2. 因果结构并没有救回表格模型。BN-tab 用的是精确推断,理论上不该比 XGBoost 差太多,但它在 pain 上反而最差——因为 Noisy-OR 参数里 pain 的泄漏概率(0.05)与各父节点权重都很低,模型先天就认为「pain 很罕见」,于是大量漏检。
  3. 「全部证据」通常最好,但优势不大。三档设置在文本模型上差异都在 3 个百分点以内,说明文本已经把大部分信息吃掉了,额外表格变量的边际价值有限。
  4. 表格信息的价值集中在难例。neural-text-tab 在正常笔记上没有超过纯文本模型(0.954 vs 0.962),但在精简笔记上,no-sympt 与 realistic 两种设置在 cough 与 nasal 上都超过了纯文本——正是文本被压缩、症状被省略的那些笔记,背景知识才帮上忙。
  5. pain 与 fever 是所有模型公认的难点。pain 的文本提及率最低(存在时也只有 81.7%),fever 要判三档(high/low/none),两者都是语义最模糊、边界最不清的目标。

7.4 嵌入类型的消融:span 嵌入是「作弊上界」

嵌入 dyspnea cough pain nasal fever
仅病史段(hist) 0.952 0.965 0.809 0.950 0.904
仅体检段(phys) 0.897 0.823 0.696 0.957 0.852
均值(mean) 0.962 0.960 0.814 0.963 0.910
拼接(concat) 0.950 0.957 0.827 0.959 0.904
span 嵌入 0.973 0.979 0.873 0.971 0.923

三点解读:

  • 仅体检段明显最差(除 nasal 外全线落后 5-13 个百分点)。这符合常识:症状主要在病史里叙述,体格检查段描述的是客观体征。
  • 均值略优于拼接,说明两段的语义有冗余,简单平均即可,拼接反而引入噪声维度。
  • span 嵌入最好不要当成「模型能力」来看。它用的是已经标注好的症状短语,相当于开卷考试——而且这个标注本身是 GPT-4o 抽的,商用场景要自己标或本地小模型跑。作者明说这是「best-case reference」而非可达目标。

7.5 与同类基准的可比性提醒

直接把 SimSUM 上的 F1 与 i2b2/n2c2 的 NER F1 对比是不成立的:

  • 任务不同:SimSUM 判的是「记录级症状存在与否」,不是「文本里的实体边界」;
  • 数据不同:SimSUM 文本由 LLM 生成,句式规整度远高于真实病历;
  • 标签不同:SimSUM 的标签来自抽样器,不是人类标注者的判断。

可以对比的只有「同数据集内的模型排序」,比如「文本模型 > 表格模型」「mean > concat」「span 嵌入 > 全文嵌入」这三条排序关系。跨数据集引用必须先说明口径。

§8 质量评估:专家怎么打分,分数意味着什么

8.1 评估设计

  • 评估者:5 位全科医生(general practitioners)
  • 样本:随机 30 篇笔记(正常版与精简版同时评,评估者能看到生成用的 prompt)
  • 量表:1-5 分
  • 维度:一致性、真实性(病史段/体检段分开评)、临床准确性、精简版内容与可读性
  • 一致性计分规则:每处不符或缺失的症状扣分,扣罚超过 3 处记 1 分,零扣罚记 5 分——这是一个相当严苛的阶梯式规则,4.69 的平均分说明绝大多数笔记只有 0-1 处偏差。

8.2 结果

指标 均值 评估者间标准差 解读
一致性(正常版) 4.69 0.12 极高,且评估者之间意见高度一致
真实性-病史(正常版) 4.53 0.21 病史叙述像真的
真实性-体检(正常版) 4.15 0.30 体检描述偏弱,但仍在「较可信」区间
临床准确性(正常版) 4.92 0.07 几乎无虚假信息
精简版内容 4.88 0.10 压缩后信息保留得很好
精简版可读性 4.02 0.31 明显下降,缩写太多

8.3 分数背后的三个信号

信号一:不一致主要来自「多说了」,不是「少说了」。 论文指出,扣分大多源于模型违反了附加指令——即编造了 prompt 里没有的症状。这与「一致性」的高分并不矛盾:核心信息基本都对,但会多出几处细节。

信号二:体检段的真实性明显低于病史段(4.15 vs 4.53)。 合理推测是:病史段的信息来自 prompt 里明确列出的症状与描述符,模型只需转述;体检段没有对应输入,模型必须自行编造听诊、触诊、生命体征,编造的质量自然更差。这也解释了为什么「仅体检段嵌入」的预测能力最弱——那部分文本与真实症状的关联本来就弱。

信号三:临床准确性 4.92 与格式真实性缺失并存。 多名评估者明确指出「格式不像真实病历」。这意味着数据在医学内容上可信,在书写习惯上不可信。做文本风格研究(如病历书写规范化)的人要特别注意这一点——你研究的对象是 GPT-4o 的写作习惯,不是医生的。

8.4 评估的局限

  • 样本只有 30 篇,占 10,000 的 0.3%,抽样误差不可忽略;
  • 5 位评估者均来自比利时全科医学背景,判断标准与其它医疗体系可能不同;
  • 评估者能看到 prompt,可能产生「确认偏误」(更容易把与 prompt 吻合的文本判为一致);
  • 未评估「文本与表格之间隐含推理是否正确」(比如咳嗽描述符是否与肺炎诊断相符),这是一个更细但更关键的质量维度。

§9 使用场景:它能做什么,不能做什么

9.1 作者列出的四类用途

用途 具体做什么 需要的输入
主用途:临床信息抽取 在已知表格背景下判断文本是否提及/包含某症状,研究「背景知识 + 文本」的融合机制 文本 + 表格 + span
临床推理自动化 基于表格与文本推断诊断或治疗决策(如是否该开抗生素) 表格 + 文本(诊断不进 prompt,可做隐藏标签)
因果效应估计与文本混杂 把「病历里写了什么」当作混杂变量,评估药物/治疗的真实效应 治疗 + 结局 + 文本
多模态合成数据生成 作为靶场,比较不同的「表格+文本」联合生成方法 全表

9.2 五类不适合的用途(作者明确反对 + 本文补充)

  1. 训练临床决策支持系统:作者原话反对。
  2. 评估临床模型性能:作者原话反对。原因是数据没有真实临床噪声,模型在这里表现好不代表在真实病历上好。
  3. 病历书写风格研究:评估者已指出格式不真实。
  4. 时序建模 / 重症监护研究:静态快照,无时间维度。
  5. 罕见病或少见并发症研究:COPD 仅 201 例、肺炎仅 103 例,做不出有统计意义的结论。

9.3 按角色推荐的使用路径

你的角色 建议路径 预计耗时
信息抽取算法工程师 下载 CSV → 取 text 与 5 个症状标签 → 复现 neural-text 基线 → 试新模型 → 再试拼接表格 半天跑通基线
合成数据研究者 读 data_generating_process.py → 改 CPT → 改文本生成 prompt → 对比新旧数据的专家评分 需 API 预算
因果推断研究者 用 antibiotics 作处理、days_at_home 作结局、text 作潜在混杂 → 检验方法能否恢复真实效应(真值由生成模型已知) 数天
教学用途 取 100 行做课堂练习,让学生手标 span,再与自动标注对比 1 课时
医学 NLP 入门者 从「用 TF-IDF + 逻辑回归预测 cough」开始,把它作为第一个完整的 pipeline 练习 2-3 小时

9.4 一个具体的「正确用法」示例

假设你想验证一个假设:「加入基础疾病信息能提升症状抽取」。SimSUM 是少数能直接做这个实验的数据集,因为:

  • 基础疾病(asthma、COPD 等)是表格变量,与症状的真实因果关联已知;
  • 文本里有时提基础疾病、有时不提,模型必须学会从「哮喘病人主诉夜间干咳」这类线索里推断;
  • 对照实验很简单:neural-text 与 neural-text-tab 的差值,就是「表格信息的边际贡献」,而论文已经给出了基准值(正常笔记上几乎没有提升,精简笔记上有小幅提升)。

反例:如果你想验证「我们的模型在真实病历上比 SOTA 好 3 个点」,SimSUM 帮不上忙——它衡量的是「模型在受控分布上的能力」,不是「模型在真实世界的表现」。

§10 与库内条目的关系

10.1 上游:真实病历类

条目 rid 关系 差异要点
i2b2-n2c2-nlp 14 同属临床文本信息抽取基准 i2b2/n2c2 用真实去标识病历 + 人工标注;SimSUM 用合成文本 + 自动标注,但提供表格真值
mimic-iv-clinical-database 4 论文明确点名的「太复杂」对照物 重症监护、计费驱动、时序;SimSUM 是初级保健、静态快照
mimic-iv-note 47 真实临床笔记 + 结构化表格的代表 笔记长度、复杂度、噪声均远高于 SimSUM
mimic-cxr-jpg 617 表格/标签 + 文本报告的多模态对照 影像 + 报告,SimSUM 无影像
mednli 648 临床文本推理 任务为推理蕴含,SimSUM 为抽取
meddialog 210 医患对话 对话体裁 vs 书写体裁
phenotype-annotations-mimic 594 表格与文本的概念对齐问题 同为「同一概念在两种模态中如何对齐」,但基于 MIMIC

10.2 平行:其它合成数据类

条目 rid 关系 差异要点
synthea 460 合成 EHR 表格数据 有生成器、有时序、无自由文本;SimSUM 的表格部分在方法论上与其同源(规则/概率生成)
synthea-covid 714 Synthea 的 COVID 变体 同上
cms-de-synpuf 467 基于真实统计模拟的理赔数据 真实人口统计 + 模拟个体,无文本
synthetic-mimic-iii-health-gym 597 用真实数据训练生成器产出的合成 ICU 数据 评估重点是隐私与分布相似性,非信息抽取
synthrad 671 合成放射影像 影像侧的同位课题:合成数据能否替代真实数据做训练
synthoct 935 合成 OCT 影像 同上
mimic-ext-synnotes 1002 MIMIC 衍生的合成笔记 「由真实数据生成」vs SimSUM 的「从零模拟」——正是改名想区分的两类

10.3 下游:任务类

条目 rid 关系
aci-bench 810 反向任务:由对话生成临床笔记;SimSUM 是「由表格生成笔记」,两者可互补做「生成→抽取」闭环
ehr-reasoncon 1007 表格 + 文本的临床推理
ehrsql 713 结构化查询,可视为 SimSUM 表格部分的「查询侧」应用
ehrxqa 646 EHR 多模态问答
archehr-qa-bionlp-task-2025 1000 EHR 问答基准
primekg / drkg / rtx-kg2 831 / 834 / 1137 领域知识图谱——与论文「用领域知识连接表格与文本概念」的核心主张直接呼应

10.4 建议互链点

  • 强相关(正文互链):i2b2-n2c2-nlp(14)、mimic-iv-note(47)、synthea(460)、aci-bench(810)、mimic-ext-synnotes(1002)
  • 中相关(正文提及):mimic-iv-clinical-database(4)、mednli(648)、phenotype-annotations-mimic(594)、synthetic-mimic-iii-health-gym(597)
  • 弱相关(列表提及):synthrad(671)、synthoct(935)、cms-de-synpuf(467)、synthea-covid(714)、ehr-reasoncon(1007)
  • 所有 rid 均为写作时实查 DB(status=1 AND del_sign=0)所得,入库前应由主会话复核(R018:不猜 rid)。

§7A 方法细节补遗:基线模型怎么搭的

7A.1 文本编码器为什么选 BioLORD-2023

BioLORD-2023 是在生物医学本体与临床文本上训练的句向量模型,特点是把「概念的同义表达」映射到相近位置。对 SimSUM 这类「同一症状有多种措辞」的任务,这一点很关键:span 文本里有「shortness of breath」「difficulty breathing」「feeling winded」等十余种说法,通用句向量未必能拉开与「疲劳」「乏力」的距离。

论文只用了这一个编码器,没有做编码器间的横向对比——这是一个明确的研究空白,也是后续工作最容易补的一块(换成 ClinicalBERT、PubMedBERT、或通用大模型嵌入都可直接对标)。

7A.2 MLP 头的结构

三个要点:

  1. 一层隐层的 MLP,输入是句向量均值(或拼接)。
  2. 二分类症状用 Sigmoid 输出;fever 因为三档,用三头 Softmax。
  3. 表格变量的处理:类别变量 one-hot,days_at_home 标准化——后者的必要性在于它的量纲为 0-15,而嵌入维度通常在 768 左右,不标准化会被直接淹没。

7A.3 BN-tab 的推断方式

BN-tab 是「在学习到的贝叶斯网络上做精确推断」,具体步骤:

  1. 用最大似然从 SimSUM 数据重新学习各条件分布参数(因为真值参数不公开);
  2. 对 CPT 变量直接估计频数;对 Noisy-OR 变量用期望最大化拟合;对 logistic 与 Poisson 变量用对应回归;
  3. 给定证据(其他变量取值),用变量消元(variable elimination)计算目标症状的后验概率,再按 0.5 阈值判定。

这条路径的理论优势是「利用了因果结构」,实测劣势是「结构里没有的信息一点也补不进来」——这正是 pain 在 BN-tab 上只有 0.028 F1 的原因:pain 的 Noisy-OR 参数把所有父节点权重都设得很低(0.10-0.30),模型先天不认为它常见。

7A.4 三档证据设置的现实映射

设置 可见变量 对应真实场景
all 全部 16 个(含其他症状、诊断、治疗、结局) 事后回顾性研究:所有数据都已录入
no-sympt 除其他症状外的全部 只做单症状筛查,不看其他症状
realistic 基础疾病、诊断、season、antibiotics 写病历当时可用的信息

realistic 是最值得关注的:它代表了「如果我想在真实诊疗场景里做一个症状抽取助手,我能拿到哪些背景信息」。在这个设置下,表格模型全面崩塌(pain 0.028、fever 0.359),文本模型则几乎不受影响(0.814、0.910)——这个对比是 SimSUM 最有说服力的实验结果之一。

7A.5 为什么没有报 AUROC / AUPRC

论文统一报 F1,原因推测有二:一是与临床信息抽取的惯例对齐(抽取任务惯用 P/R/F1);二是 F1 对类别不平衡的惩罚更直观(pain 的 13.5% 正例率下,AUROC 会显得虚高)。代价是无法与大量报 AUROC 的表格模型文献直接对比——这也是跨数据集比较困难的原因之一(见 §7.5)。

§8A 质量评估的复现要点

8A.1 如果要自己做一次专家评估

论文的评估协议是可以直接搬用的最小可用版本,四步:

  1. 抽样:从 10,000 条中随机抽 30 条,同时取每条的 prompt(df_prompts.p 里有)与正常版/精简版笔记;
  2. 说明:把 eval/notes/Instructions_clinical_evaluation.pdf 作为评估指南发给评估者,里面定义了一致性的阶梯扣分规则;
  3. 打分:1-5 分,四个维度独立打分,不做总体合并;
  4. 汇总:取 5 位评估者的均值,并报评估者间标准差(论文的做法),而不是只报均值。

关键的一点是把 prompt 也交给评估者看。如果不给 prompt,评估者无法判断「一致性」,只能评「真实性」与「可读性」。

8A.2 阶梯扣分规则的实际效果

一致性用「扣罚处数」映射到 1-5 分:0 处 = 5 分,超过 3 处 = 1 分,中间线性。这个规则的特点是对少量错误很宽容、对系统性错误很严厉:一篇笔记多写了 1 个症状仍可得 5 分,多写 4 个直接掉到 1 分。

实测均值 4.69、标准差 0.12,说明 30 篇笔记里绝大多数落在「0-1 处扣罚」区间,且 5 位评估者几乎给出同样的判断——这是很高的可靠性,比单纯「平均分高」更有说服力。

8A.3 未覆盖的评估维度

论文的评估没有触及以下四项,做二次研究时可以补:

  • 内部一致性:同一病人的多份笔记之间是否自洽(本数据集每人只有一份,故无法评);
  • 描述符-诊断对应:咳嗽的描述符是否真的与肺炎/感冒的诊断相容(这需要一个懂概率模型的评估者逐条核对);
  • 跨评估者文化差异:5 位评估者全部来自比利时,若换成亚洲或北美医生,评分会变吗;
  • 长尾病例质量:30 篇样本里 COPD 与 hay fever 的病例大概率不足 2 例,罕见病的文本质量实际上没有被评估。

8A.4 与自动指标的关系

由于有 41,570 个 span,可以构造自动化的「文本-真值一致性」指标(比如「表格里 pain=yes 的笔记中,pain span 出现率」)。论文 Table 4 实际上就是这个指标的变体。这类指标的优点是零成本、可全量计算,缺点是只能反映「提没提」,不能反映「提得对不对」。

一个实用的组合是:自动指标做全量筛查,人工评估做抽样校验。先用 span 统计找出异常记录(比如 pain=yes 但完全没有 pain span 的 18.3%),再从中抽样请专家判断是「文本漏写」还是「标注漏抽」。

§9A 从论文到产品:三条落地路径的可行性

9A.1 路径一:作为内部 Prompt 工程的回归测试集

想法:把 SimSUM 当作「病历书写助手」的验收集——给定结构化输入,看模型写出的笔记是否覆盖了全部关键信息。

可行性:高。SimSUM 恰好提供了「结构化输入 → 文本」的配对,且有 41,570 个 span 可作为自动比对基准。具体做法是:让待测模型按相同输入写笔记,再用同样的 span 抽取管线抽一遍,比较 span 集合与真值的重合度。

风险:SimSUM 的写作风格是 GPT-4o 的,若待测模型风格差异大(比如中文病历、模板化写法),span 抽取管线本身就会失效。

9A.2 路径二:作为信息抽取模型的压力测试

想法:用「精简版笔记」测试模型在信息稀疏条件下的鲁棒性。

可行性:中高。精简版的困难是真实的(缩写、省略),且同一真值有难易两版,可以做配对比较(paired comparison),统计上更稳健。

风险:精简版的生成也是 GPT-4o,缩写习惯可能与真实病历不同(真实病历的缩写有强地域性,如「s/p」「c/o」在英式与美式病历中用法不同)。

9A.3 路径三:作为合成数据生成器的对标基准

想法:如果你在做「表格+文本」联合生成,SimSUM 是现成的对照。

可行性:中。需要三项对齐才能比:相同的变量集(16 个)、相同的评估方式(专家评分 + 基线 F1)、相同的规模(10,000 条)。任何一项不对齐,比较都会失真。

风险:SimSUM 的生成器是贝叶斯网络 + prompt,你的生成器若是端到端深度模型,比较的其实不只是「生成质量」,还有「可解释性」的差异——这在论文里很难公平呈现。

§11 避坑清单:十个已踩过的坑

坑 1:把 SynSUM 和 SimSUM 当成两个数据集

现象:检索「SynSUM」只找到 2024 年的 arXiv v1 与 IEEE DataPort 2025-01 的存档,误以为数据集已经停止维护;或在综述里把两者列为两条独立条目。

根因:2025-05-28 仓库执行了 change name 提交,2025-12 的 arXiv v4 与期刊版全面改称 SimSUM;但 arXiv 的 v1 页面、大量第三方镜像(如数据集聚合站)仍保留 SynSUM 标题,搜索引擎会把旧标题排在前面。

处置:认准三个锚点——arXiv 2409.08936 的任意版本页、GitHub prabaey/SimSUM、期刊 doi 10.1186/s13326-025-00341-6。这三个指向的是同一份数据。写文献综述时建议首次出现写作「SimSUM(原名 SynSUM)」,并在参考文献里同时给出新旧两个入口。

本条目为何 slug 用 synsum:按派发口径与旧名可检索性取 synsum,但正文与 frontmatter 均以 SimSUM 为正名,并在 title 里保留「曾用名 SynSUM」以保证两路检索都能命中。

坑 2:只搜 arXiv 会拿到 2024 年的旧结论

现象:引用「10,000 条记录、GPT-4o 生成、span 标注」这些信息时,误以为数据在 2024 年 9 月就已定稿。

根因:arXiv v1(2024-09-13)只有表格生成与文本生成的描述,没有权威的专家评估表、没有 Table 6 的嵌入消融、没有 52 篇重写的细节。这些内容在 v2(2025-03)、v3(2025-07)、v4(2025-12)逐步补齐,最终定型于期刊版。

处置:任何数字类引用都注版本。本文所有评估数字均取自期刊版(2025;16:20),与 v4 一致;若必须引 arXiv,请写明 v4。

坑 3:把「arXiv v4 早于期刊发表」当成版本冲突

现象:发现 arXiv v4 的上传时间是 2025-12-09,而 Crossref 记录的期刊 published 是 2025-12-18,于是怀疑「预印本比正式版还新」。

根因:作者在期刊定稿后先把 arXiv 更新到期刊版标题与内容,期刊正式上线晚了 9 天。这是正常的出版流程,不是版本矛盾。

处置:引用时统一写「J Biomed Semantics 2025;16(1):20,doi:10.1186/s13326-025-00341-6」,需要预印本链接时补 arXiv:2409.08936v4。

坑 4:CSV 是分号分隔,且首列是没有名字的行号

现象:

df = pd.read_csv("SimSUM.csv")          # 读成一列
# 或
df = pd.read_csv("SimSUM.csv", sep=";") # 多出一列 "Unnamed: 0"

根因:文件用 ; 作分隔符(文本字段里有很多英文逗号,用逗号会破坏解析);首列无名,是 0-9999 的行号。

处置:pd.read_csv("SimSUM.csv", sep=";", index_col=0)。另外文本字段用双引号包裹且内部含换行,Pandas 默认的引号解析能正确处理,但若用 csv 模块需显式 quoting=csv.QUOTE_MINIMAL。

坑 5:span 的 symptom 取值与 CSV 列名对不上

现象:

spans = json.load(open("normal_span_annotations.json"))
# 想按列名过滤
[x for x in spans["0"] if x["symptom"] == "pain"]     # 空列表

根因:JSON 里用的是完整表述——respiratory pain、nasal symptoms,而 CSV 列名是 pain、nasal。论文 Table 3 的列标题写的是 pain / nasal(沿用 CSV 口径),进一步加深混淆。

处置:建映射表 {"respiratory pain": "pain", "nasal symptoms": "nasal", "dyspnea": "dysp", "cough": "cough", "fever": "fever"},全部 join 前先过一遍。

坑 6:以为用 GPT-4o 重跑就能复现原始数据

现象:跑 text_generation.ipynb,得到 10,000 条新笔记,与公开 CSV 完全不同,困惑「是不是代码有 bug」。

根因:两个不可控因素——表格采样的随机种子未公开;GPT-4o 的具体快照版本未披露,且模型会持续更新。文本生成本身也是非确定性的(除非显式设 temperature=0,论文未说明是否如此)。

处置:把公开 CSV 当作唯一的数据版本,重跑只用于「生成方法的再实现」实验,不要指望逐字复现。做对比实验时,固定公开 CSV 作为基准,新生成数据作为处理组。

坑 7:把 span 当作「症状存在的标签」

现象:用「某条记录是否有 pain 的 span」来近似「该记录 pain=yes」,发现准确率只有 60% 出头。

根因:span 标的是短语出现,不是症状存在。否定句「 denies chest pain」也会产生 pain 的 span。论文 Table 4 已经给出精确的混淆结构:pain 不存在时仍有 39.9% 的笔记提到它。

处置:需要「症状是否被肯定陈述」时,必须自己做否定检测,或退一步用记录级表格标签 pain 列。若研究目标就是「文本是否提及」,那 span 是正确工具——这正是两个不同的研究问题。

坑 8:把数据集许可与论文许可混用

现象:在商业产品里直接使用论文中的贝叶斯网络示意图(Fig. 3),或转载评估结果表格,认为「数据集是 CC BY 4.0,所以论文图也能用」。

根因:数据集 CC BY 4.0(可商用),但论文 CC BY-NC-ND 4.0(不可商用、不可改编)。两者是不同作品、不同许可。

处置:需要图时按数据与代码自行重绘;需要表格时自己从公开 CSV 重算(本文 §7 的表格即为重算/整理版)。商用场景尤其注意 ND 条款禁止「分享改编材料」。

坑 9:用 SimSUM 的 F1 去和真实病历基准比

现象:写「我们的 NER 模型在 SimSUM 上 F1 0.96,超过 i2b2 上的 0.87」,得出「模型提升 9 点」的结论。

根因:任务定义、数据来源、标签来源、文本复杂度四方面都不同(§7.5)。SimSUM 的 0.96 是记录级症状判定,不是实体边界识别;文本是 LLM 写的,句式规整度远高于真实病历。

处置:跨数据集只比排序关系(同类模型谁强),不比绝对数值。若一定要比,必须在同一数据集上重跑所有对比模型。

坑 10:忽视「无呼吸道症状」的三分之一

现象:训练症状分类器时发现大量「五个症状全无」的样本,以为是标注错误或数据缺失,把它们剔除,结果模型在测试集上的召回大幅下降。

根因:约三分之一的记录里病人没有任何呼吸道症状,文本写的是与呼吸系统无关的就诊理由(作者专门为此设计了备用 prompt)。这些「阴性样本」是数据分布的重要组成部分,剔除会破坏类别平衡。

处置:保留全部样本。如果研究只关心「有症状的病人」,可以用 dysp+pneu+common_cold 组合筛子集,但要在报告中说明筛选逻辑与样本量变化。

§12 案例解剖:三条记录的三堂课

从实抓 CSV 中抽取三条有代表性的记录,逐层拆解「表格 → prompt → 文本 → span」的传导链。

12.1 案例一:只有高热的夏天病人

字段 值
policy / self_empl / season high / no / summer
基础疾病 全无
诊断 无肺炎、无感冒
症状 fever=high,其余四症状均为 no
治疗 / 结局 antibiotics=yes / days_at_home=2
文本开头 「患者主诉过去 48 小时内体温显著升高,超出正常范围,提示高热……」
文本中的否认句 「没有胸痛、呼吸困难或咳嗽等呼吸道症状」
span fever 4 个;dyspnea / cough / respiratory pain 各 1 个(共用同一句否认句)

这堂课教什么:即使表格里只有一个症状,文本也会写到四个症状——三个是以否认句出现的。这就是「span ≠ 症状存在」的最直观例证。同时,抗生素的处方在这个案例里由 fever=high(权重 2.25)+ policy=high(权重 1.0)共同推动,与诊断无关——因为这个病人根本没有肺炎或感冒诊断。

12.2 案例二:一个典型的「感冒 + 咳嗽」组合

字段 值
症状 cough=yes、nasal=yes、fever=low
诊断 common_cold=yes
文本特征 病史段描述「持续三天的干咳与鼻塞」,体检段写「咽部轻度充血」
span 分布 cough 2 个(均在病史段)、nasal 2 个(1 个在病史、1 个在体检)、fever 1 个

这堂课教什么:感冒这类「轻症」的文本表达高度程式化,模型很容易学。这也是为什么 cough 的基线 F1 能到 0.96——不是模型聪明,是这类文本太好认。真正的挑战在 pain 这种「有时提有时不提、提了也说不清」的症状上。

12.3 案例三:一个「看起来毫无线索」的记录

某些记录里,四个症状全为 no、fever=none,也没有任何诊断——按生成规则,模型会被告知「想象一个与呼吸系统无关的就诊理由」。这类笔记的内容可能涉及皮疹、随访、疫苗接种咨询等。它们对症状预测模型是纯阴性样本,但对域外检测研究很有价值:模型能否识别出「这份笔记根本不属于呼吸系统主题」。

这堂课教什么:数据的「阴性侧」也有独立的研究价值。作者设计备用 prompt 的初衷是提升真实感,但客观上造出了一批可用于「主题分类 / 域外检测」的样本。

§13 方法学启示:四条可迁移的经验

13.1 「先有真值,再生成观察」是可评估性的前提

SimSUM 最根本的方法论贡献,是把「真值」放在「观察」之前。真实数据里我们永远只能拿到观察(文本),真值要靠人标注;合成数据里真值由生成器决定,观察由模型生成。这个顺序一旦确立,「文本漏说了什么」就不再是未知数,而是可计算量。

这条经验可以迁移到任何「某一模态缺失」的研究:只要你能先构造出完整真值,再降采样出不完整观察,就能精确量化「缺失造成的损失」。

13.2 难度要可调,而不是靠运气

正常版与精简版的设计是关键:同一份真值、两种难度的文本。这让研究者能做难度梯度实验——模型在容易的文本上表现如何、在困难的文本上退化多少、背景信息能否弥补难度带来的损失。

对比之下,真实数据集只有一种难度(真实病历),且难度分布不可控。想做梯度实验只能人工简化文本,成本高且不可比。

13.3 单一专家 vs 多专家:精度与一致性的取舍

SimSUM 的概率表出自一位专家。作者的理由是「作为简化受控基准,单一专家足以指导概率分布设计」。这带来的是内部一致性高(不会出现两位专家对同一 CPT 分歧)但外部效度低(无法保证代表全球人群)。

这是一个明确的工程取舍,不是疏漏。使用者在引用时应同时说明这一点——尤其是做跨医疗体系比较时。

13.4 用 LLM 标注 LLM 生成文本:噪声的同源风险

span 由 GPT-4o 抽取,文本也由 GPT-4o 生成。两者同源意味着:模型自己写的句子,自己最容易认出。这解释了 98.78% 的极高召回——但这不代表同样的抽取规则能在真实病历上达到 98.78%。

作者对此是清醒的(在 span 嵌入的讨论里明确说 GPT-4o 只因其文本是人工生成才可用)。使用者的推论应该是:把 SimSUM 的 span 质量当作上限参考,真实场景要打折。

§14 与真实临床的距离:一张差距量化表

维度 SimSUM 真实初级保健病历 差距方向 影响
文本长度 970 字符(约 150 词) 通常 500-3,000 词,含大量模板 SimSUM 显著短 长文本的跨段落指代、信息分散问题被回避
句式复杂度 规整、完整句为主 缩写、省略、错别字、模板化混排 SimSUM 过于干净 真实场景的分词与语法错误鲁棒性未被考察
时间维度 无(单次快照) 多次就诊、慢性病随访 SimSUM 完全缺 无法做纵向建模
多模态 无(纯文本+表格) 含检验、影像、处方、生命体征曲线 SimSUM 仅两模态 多模态融合研究不适用
患者身份连续性 无 ID 有 SimSUM 无 无法做患者级划分与个体化建模
临床噪声 极低(52 篇被判不一致后重写) 高(写错、漏写、复制粘贴) SimSUM 过于干净 模型在真实数据上的错误率被低估
隐私风险 零(全合成) 需去标识与合规审查 SimSUM 优势 适合教学与公开分享
分布代表性 比利时初级保健(单专家设定) 因机构、国家而异 SimSUM 单点 跨体系迁移未验证

这张表的核心结论:SimSUM 的价值与它的"不真实"成正比。它越是干净、越可控、越规整,就越能精确地隔离出你要研究的变量;同时也越不能代表真实世界的混乱程度。用它做方法研究是合适的,用它做能力宣称是危险的。

§14A 与其他合成临床文本资源的两两比较

14A.1 与合成笔记生成类资源对比

资源 输入 输出 真值可见性 标注
SimSUM 结构化表格(16 变量) 临床笔记(双版本) 完全可见 span 级(自动)
aci-bench(rid 810) 医患对话(真实录音转写) 临床笔记 对话中信息可见,但无结构化字段 无
mimic-ext-synnotes(rid 1002) MIMIC 真实病历 合成笔记 真实病历为参照 无
通用 LLM 直出 自由 prompt 自由笔记 不可控 无

四者的核心区别在输入的可控性。SimSUM 的输入是 16 个取值的确定组合,可以精确到「这条记录的咳嗽是肺炎引起的、那条是感冒引起的」;aci-bench 的输入是自然对话,信息密度与结构都不可控;通用 LLM 直出则完全没有真值锚点。

14A.2 与合成 EHR 表格类资源对比

资源 生成方式 文本 时间维度 可编辑性
SimSUM 贝叶斯网络(专家 CPT) 有 无 高(改 CPT 即可)
Synthea(rid 460) 规则 + 统计模型 无 有(多年就诊) 高(改模块)
CMS DE-SynPUF(rid 467) 真实统计抽样 无 有(多年理赔) 低
Synthetic MIMIC-III Health Gym(rid 597) 深度生成模型 无 有 低

SimSUM 在这张表里的独特之处是「同时有文本与可编辑的因果链」。Synthea 可以编辑但没文本;深度生成模型有数据但不可解释;真实抽样数据则完全不可编辑。这个组合解释了为什么它在信息抽取研究里能占住一个位置。

14A.3 一条容易被忽视的对照:与真实数据做「同任务不同源」

如果你的目标任务是「判断病历里有没有提到呼吸困难」,可以在三个源上同时跑同一模型:

  1. SimSUM(合成、干净、真值已知)——测能力上限;
  2. i2b2/n2c2(真实、人工标注)——测真实表现;
  3. MIMIC-IV-Note(真实、需自标注少量验证集)——测跨机构泛化。

三点连成一条「合成 → 人工标注真实 → 未标注真实」的梯度线,能画出模型能力的衰减曲线。这条曲线本身比任何一个点的分数都更有信息量,也是 SimSUM 最该被使用的姿势。

§14B 局限性的分条拆解

14B.1 生成侧的局限

  • 单专家设定:CPT、Noisy-OR、logistic 与 Poisson 的全部参数出自一人。论文的自辩是「作为简化受控基准足够」,但这意味着数据里的「临床常识」是某一位比利时全科医生的常识。
  • GPT-4o 的写作偏好:模型倾向于写完整句、爱加背景故事、爱总结,这些习惯与真实病历的「电报体」相反。精简版缓解了一部分,但没根治。
  • 描述符库的覆盖:每个症状的描述符是从专家定义的短语集合里抽的,集合规模论文放在附录 Table B4。若描述符数量有限,文本的措辞多样性会被低估。
  • 无性别年龄:明确禁止提及,好处是消除了人口学混杂,坏处是丢掉了真实病历中最基本的两个标识字段。

14B.2 标注侧的局限

  • LLM 标注同源:生成与抽取都是 GPT-4o,召回率 98.78% 的「高分」部分来自「自己写的句子自己好认」。
  • 无否定标签:span 只标「提到」,不标「肯定/否定」。
  • 边界精度:94% 的精确率意味着约 6% 的 span 边界不准,做 BIO 序列标注时需要额外清洗。
  • 精简版召回下降:94.50% 的召回意味着每 20 个 span 就漏一个,长尾表达(罕见缩写)漏得更多。

14B.3 评估侧的局限

  • 样本量:30 篇专家评估、100 篇 span 评估,对 10,000 条的数据集而言都是极小样本。
  • 单一文化背景:评估者全在比利时。
  • 无下游任务验证:论文没有做「用 SimSUM 预训练、在真实数据微调」的迁移实验,因此「这个数据集对真实任务是否有帮助」在论文里是未被直接证明的。这是整篇论文最大的空白,也是引用时必须诚实说明的一点。

14B.4 一句话总结

SimSUM 是一个在受控条件下极其精确、在真实条件下完全未经检验的基准。它的每一条局限都指向同一个使用原则:拿它做机制研究、做方法对比、做教学,不要拿它做能力宣称。

§15 常见误解澄清

误解一:「合成数据 = 假数据 = 没用」

「合成」只描述来源,不描述用途。SimSUM 的合成性质恰恰是它的核心资产:真值已知,才能计算「文本抽取模型的上限在哪里」这类问题。真实数据里这个问题无解,因为没有金标准的「完全真相」。

判断一个合成数据集有没有用,标准不是「像不像真的」,而是「它要检验的假设是否需要在真值已知的条件下才能检验」。SimSUM 的假设——「背景表格变量能否补偿文本信息缺失」——恰好需要。

误解二:「10,000 条在 LLM 时代太少了」

规模不是这个数据集的卖点。10,000 条足够做 8,000/2,000 的训练测试划分,足够让 5 个症状的 F1 收敛到 ±0.01 的稳定性,足够让专家抽 30 篇做质量评估。真正稀缺的是每条记录同时具备 16 个表格真值 + 2 版文本 + 4.2 万个字符级 span这种三重对齐,而不是条数。

对比:MIMIC-III 有百万级记录,但要构造同等的「已知真值 + 标注对齐」需要数年人工。规模与可控性在这里是此消彼长的关系。

误解三:「贝叶斯网络是过时的模型,不如深度学习」

网络在这里的用途不是做预测,而是做数据生成器。它需要的是可解释的因果结构、可编辑的参数、可采样的联合分布——这三项恰是深度生成模型的弱项。用 GAN 或扩散模型生成表格数据,你将得到一个无法说明「为什么这个病人有咳嗽」的黑箱,而 SimSUM 的设计意图恰恰是「每个病人的每个症状都能追溯到一条因果路径」。

论文的基线实验也印证了这个分工:BN-tab 作为预测模型表现很差(pain F1 0.028-0.239),但作为生成器它无可替代。

误解四:「GPT-4o 写的病历,医学上肯定不靠谱」

专家评估给出了 4.92 的临床准确性(5 分制,评估者间标准差仅 0.07)。这说明在「内容是否医学上说得通」这个维度上,模型的表现远超直觉预期。不靠谱的地方是书写格式(多名评估者指出)与偶尔多写的症状(一致性扣分的主因)。

两件事要分开:医学内容的可信度 ≠ 病历格式的真实度。前者高、后者低。

误解五:「有了 span 标注就可以直接做 NER」

可以做,但要注意三个边界:

  1. span 标的是症状词条,不是完整的医学实体体系(没有药名、检验值、解剖部位);
  2. 边界精度约 94%,做严格的 BIO 标注训练会有噪声;
  3. 30% 左右的 span 出现在否定句中,没有独立的否定标签。

更适合的用法是「弱监督预训练 + 少量人工精标微调」。

误解六:「它和 Synthea 是一类东西」

Synthea 生成的是结构化 EHR 时间序列(就诊、用药、检验),没有自由文本;SimSUM 生成的是单次快照 + 自由文本 + 概念标注。两者在「合成 EHR」这个大类下是互补的两极:一个纵向、一个横向;一个重结构、一个重文本。库内引用时不要合并。

§16 下游实操清单

16.1 上手检查单(30 分钟内完成)

  • [ ] 从 GitHub 下载 SimSUM.csv,确认文件 15,412,710 字节
  • [ ] 用 sep=";"、index_col=0 读入,确认 shape 为 (10000, 18)
  • [ ] 检查 5 个症状列的取值集合:dysp/cough/pain/nasal ∈ {yes,no},fever ∈ {high,low,none}
  • [ ] 下载两个 span JSON,确认顶层键 0-9999 齐全,总 span 数 41,570(正常版)
  • [ ] 随机抽一条记录,人工把 text 与 text 的 span 切片对齐,验证 note[start:end] == span["text"]
  • [ ] 统计「有 span 的笔记比例」,应得 83.7%

16.2 建模前的数据准备

步骤 操作 注意
标签编码 fever 三档转 0/1/2,其余 yes/no 转 1/0 fever 的 0 是「none」,不是缺失
文本选择 决定用 text 还是 advanced_text 两版真值相同,可做难度对照实验
划分 用官方 df_train.p/df_test.p 的 8,000/2,000 自划分会与论文基线不可比
类不平衡 cough 34% vs pain 13.5% 不要盲目上 SMOTE,先看 PR 曲线
文本清洗 保留「History」「Physical Examination」段标记 段标记本身就是强特征(§7.4)

16.3 评测时的三个硬要求

  1. 报 F1 不报准确率。pain 的正例只占 13.5%,全判阴性也能有 86.5% 的准确率——毫无意义。
  2. fever 报三分类 macro-F1。论文口径如此,报二分类会高估。
  3. 多次随机种子取均值。论文用 5 个种子,单次结果在 pain 上波动可达 ±0.02。

16.4 常见失败模式与对策

失败现象 可能原因 对策
模型在 pain 上 F1 < 0.5 直接用了表格特征而没给文本 检查输入管线,文本是不是没接上
验证集很好、测试集崩 自己随机划分导致同一「句式模板」跨集泄漏 改用官方划分
cough F1 0.99 但 pain 0.6 正常——文本里咳嗽太容易认 别以为模型有问题,是任务难度本来就不均
neural-text-tab 不如 neural-text 表格特征未标准化(days_at_home 量纲大) 标准化连续变量、类别变量 one-hot(论文做法)
重跑 GPT 生成后 F1 全变 用了自己生成的数据而非公开 CSV 固定公开 CSV 作基准

§17 一页速查卡

┌────────────────────────── SimSUM(原名 SynSUM)速查 ──────────────────────────┐
│ 是什么     全合成的「表格 + 临床笔记 + 症状 span」三重对齐基准                   │
│ 谁做的     根特大学–Imec:Rabaey / Heytens / Demeester                          │
│ 论文       J Biomed Semantics 2025;16:20  doi:10.1186/s13326-025-00341-6        │
│ 规模       10,000 条 × 16 表格变量 × 2 版笔记(970 / 504 字符)                 │
│ 标注       41,570 个 span(正常版),P 94.06% / R 98.78%                        │
│ 下载       github.com/prabaey/SimSUM  →  SimSUM.csv(15.4 MB)                 │
│            huggingface.co/datasets/prabaey/simsum                               │
│ 许可       数据 CC BY 4.0 | 论文 CC BY-NC-ND 4.0                              │
│ 读入       pd.read_csv("SimSUM.csv", sep=";", index_col=0)  → shape (10000,18) │
│ 基线       neural-text 0.81-0.96 | 表格模型 0.03-0.79                          │
│ 能做       信息抽取机制研究 / 合成数据方法对比 / 因果与文本混杂 / 教学          │
│ 不能做     训练生产模型 / 评估临床性能 / 时序建模 / 病历书写风格研究            │
│ 最大的坑   SynSUM≠SimSUM(同物异名)、span≠症状存在、CSV 是分号分隔            │
└─────────────────────────────────────────────────────────────────────────────┘

§18 参考资料与来源

18.1 一手来源

编号 类型 引用 用途
S1 期刊论文 Rabaey P, Heytens S, Demeester T. SimSUM – simulated benchmark with structured and unstructured medical records. J Biomed Semantics. 2025;16(1):20. doi:10.1186/s13326-025-00341-6(30 页,含附录 A 贝叶斯网络表、附录 B prompt 细节) 变量定义、CPT/Noisy-OR/logistic/Poisson 参数、专家评估、基线表、span 统计、局限性
S2 预印本 arXiv:2409.08936v4(2025-12-09),v1 标题为 SynSUM(2024-09-13) 改名说明、版本时间线
S3 代码仓 github.com/prabaey/SimSUM(含 SimSUM.csv、data/、src/、utils/、eval/、results/) 文件结构、变量列名、引用格式、数据可用性声明
S4 数据镜像 huggingface.co/datasets/prabaey/simsum(API:license cc-by-4.0,createdAt 2026-01-09,usedStorage 15,509,017 B,downloads 67 / likes 1 @2026-10-17) 许可、体量、元数据
S5 存档 DOI IEEE DataPort, doi:10.21227/3sk0-2015(2025-01-21 登记,文件名 SynSUM.csv,14.71 MB,资助号 FWO 1170124N) 旧名存档、资助信息、体积双口径
S6 书目记录 biblio.ugent.be/publication/01KE702MV1MBTZYKH70S46PPEB(卷期 16(1)、文章号 20、30 页、项目 FAIR 二期) 卷期与项目信息
S7 元数据 API Crossref works/10.1186/s13326-025-00341-6(published 2025-12-18,license CC BY-NC-ND 4.0) 发表时点与论文许可
S8 实抓数据 SimSUM.csv(15,412,710 B,10,000 行 × 19 列)、normal_span_annotations.json(7.9 MB,41,570 span) 边际分布、文本长度、span 计数、字段名

18.2 论文内部引用(节选,用于交叉核对)

论文引用 MIMIC-III/IV(Johnson 等,Sci Data 2016)、Kwon 等 2024(表格与文本不一致)、Rudin 2019(可解释模型)、Noisy-OR 的原始文献等。本文未逐条列出全部 40 余篇参考文献,需要者请查阅期刊版参考文献表。

18.3 本文档的引用纪律

  • 所有「实抓」数字标注来源为 S8,与论文表格的差异在 §5.1 与 §10 逐条对照;
  • 所有评估分数取自 S1(与 S2 v4 一致);
  • 所有许可表述以 S3/S4(数据)与 S1/S7(论文)为准,不用第三方聚合站的说法;
  • 未在来源中出现的推断均以「合理推测」「可能是」标注,不与事实混写。

§19 附录

附录 A:文件目录树(GitHub 主仓)

SimSUM/
├── SimSUM.csv                     # 主表,分号分隔,15,412,710 B
├── README.md                      # 变量说明、引用格式、文件清单
├── data/
│   ├── df_simsum.p                # Pandas pickle,与 CSV 等价
│   ├── df_prompts.p               # 含 prompt 与构造素材
│   ├── df_train.p / df_test.p     # 8,000 / 2,000
│   ├── spans/
│   │   ├── normal_span_annotations.json
│   │   └── adv_span_annotations.json
│   └── emb/
│       ├── (history / physical examination 段嵌入)
│       └── span/*.npy             # 形如 dysp_normal_ann_emb.npy
├── src/
│   ├── data_generating_process.py # RespiratoryData 类(BN 定义)
│   ├── text_generation.ipynb      # prompt 构造 + GPT-4o 调用
│   ├── symptom_predictor_baselines.ipynb
│   ├── expert_evaluation.ipynb
│   └── span_annotations.ipynb
├── utils/
│   ├── prompt_generation.py
│   ├── bayesian_network.py
│   └── neural_classifier.py
├── eval/
│   ├── notes/Evaluator_{1..5}.csv
│   ├── notes/Instructions_clinical_evaluation.pdf
│   ├── spans/span_eval_dataset.txt
│   └── spans/span_eval_results.csv
└── results/                       # 各症状 × 各设置的基线结果表

附录 B:DAIMS 评估全表

维度 评分(1-10) 依据
D 可发现性 8 GitHub 主仓 + HuggingFace 镜像 + IEEE DataPort DOI + arXiv 四版,多入口可检索;扣分在旧名 SynSUM 与新名 SimSUM 并存导致检索分散
A 可获取性 9 匿名直链下载,无注册、无申请、无 gated 标记;CSV 单文件即可用;扣分在 span 与嵌入需另到 GitHub 取
I 可互操作 8 CSV/JSON/pickle/npy 全部为通用格式;字段语义有完整 Table 1;扣分在分号分隔与首列无名属非标准 CSV 习惯
M 元数据质量 8 论文 30 页含 CPT 全表、prompt 附录、评估说明;扣分在生成时的模型快照与随机种子未披露(可复现性元数据缺失)
S 可持续性 7 依托 GitHub + HuggingFace 双平台 + 期刊 DOI 存档,长期可寻;扣分在单一作者维护、仓内无 LICENSE 文件
综合评级 8.0/10(良好) 可获取性与文档质量显著高于同类合成数据集均值;可复现性受 LLM 版本漂移拖累

附录 C:逐项证据链自证

关键数字 来源 位置
10,000 条记录 S1 摘要 / S3 README 全文多处一致
16 个表格变量 S1 Table 1 + Eq.(1) 因子分解 Construction and content
19 列 CSV / 15,412,710 B S8 实抓 文件统计
970 / 504 字符均长 S8 实抓 len(text) / len(advanced_text) 统计
41,570 个 span / 每篇 4.16 S8 实抓 + S1 Table 3 与论文 Table 3 完全吻合
16.3% 笔记无 span S1 Table 4 段落 + S8 实抓(83.7% 有 span) Analysis of generated notes with symptom spans
52 篇不一致重写 S1 Generating unstructured text with a large language model
专家评分 4.69 / 4.53 / 4.15 / 4.92 S1 Table 2 Evaluation results
span 质量 P94.06/R98.78(正常)、P93.55/R94.50(精简) S1 Manual evaluation
基线 F1 全表 S1 Table 5 Symptom predictor results
嵌入消融全表 S1 Table 6 同上
CC BY 4.0(数据) S4 API license: cc-by-4.0 + S3 README HF card
CC BY-NC-ND 4.0(论文) S7 Crossref license + S1 页脚 期刊版首页
2025-12-18 发表 S7 published.date-parts Crossref
2026-01-09 建 HF 仓 S4 createdAt HF API
downloads 67 / likes 1 S4 HF API @2026-10-17

附录 D:数据获取决策树

你的需求是什么?
├── 只想跑通一个临床信息抽取 pipeline
│   └── GitHub 下 SimSUM.csv(15.4 MB)→ sep=";" index_col=0 → 用 text + 5 个症状列
├── 想做「背景知识能否补文本」的机制实验
│   ├── 1) 拉 CSV + 两个 span JSON
│   ├── 2) 复现 neural-text 与 neural-text-tab 两个基线
│   └── 3) 在精简笔记子集上重点比较(难例上差异才明显)
├── 想做因果效应估计 / 文本混杂
│   └── 用 antibiotics 作处理、days_at_home 作结局、text 作潜在混杂
│       (真值由生成模型的 logistic/Poisson 公式已知,可校验方法)
├── 想做合成数据生成方法对比
│   └── 读 src/data_generating_process.py → 自己的生成器产出 10,000 条
│       → 与公开 CSV 在同一基线管线里对比 F1 与专家评分
├── 只是教学演示
│   └── 取 100 行,让学生手标 span,与 JSON 对比
└── 想用它替代真实数据证明模型好用
    └── 不适合:作者明确反对用于临床模型评估与生产训练

附录 E:术语表

术语 英文 含义
临床信息抽取 Clinical Information Extraction (CIE) 从自由文本病历中抽取结构化概念
有向无环图 Directed Acyclic Graph (DAG) 变量间因果结构,无环约束保证可采样
条件概率表 Conditional Probability Table (CPT) 父节点取值组合到子节点分布的映射表
噪声或 Noisy-OR 多父节点独立致病机制的合成模型,含泄漏概率 p₀
跨度 span 文本中一段连续字符区间,用起止下标表示
精简笔记 compact / advanced note 用缩写与简写压缩后的笔记,模拟真实病历密度
证据设置 evidence setting 基线模型可见的表格变量子集(all / no-sympt / realistic)
患者快照 static snapshot 单次就诊的静态记录,无时间维度
对话式生成 dialogue-to-note 由医患对话生成病历(对照:aci-bench)

附录 F:版本与改名时间线(速查)

日期 事件 名称
2024-09-13 arXiv v1 上线 SynSUM
2025-01-21 IEEE DataPort 存档登记 SynSUM
2025-03-07 arXiv v2 SynSUM
2025-05-28 GitHub change name + 数据文件入库 过渡期
2025-07-10 arXiv v3 SynSUM → SimSUM 过渡
2025-12-09 arXiv v4 SimSUM
2025-12-18 期刊正式发表(16:20) SimSUM
2026-01-09 HuggingFace 仓建立 SimSUM
2026-01-14 HF 仓最后修改 SimSUM

相关数据集导航

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

  • mednli — 共享标签:电子健康记录 / 医疗NLP / 临床文本 / 医学问答与基准 / 评测基准
  • er-reason — 共享标签:电子健康记录 / 医疗NLP / 临床文本 / 医学问答与基准 / 评测基准
  • medagentbench — 共享标签:电子健康记录 / 临床电子病历 / 医疗NLP / 医学问答与基准 / 评测基准
  • medsecid — 共享标签:电子健康记录 / 临床电子病历 / 医疗NLP / 临床文本 / 评测基准
  • tcm-sd — 共享标签:电子健康记录 / 医疗NLP / 临床文本 / 医学问答与基准 / 评测基准
  • labelled-notes-hospital-course — 共享标签:电子健康记录 / 临床电子病历 / 医疗NLP / 临床文本 / 评测基准
  • mietic — 共享标签:电子健康记录 / 医疗NLP / 临床文本 / 医学问答与基准 / 评测基准
  • mediqa — 共享标签:电子健康记录 / 临床电子病历 / 医疗NLP / 临床文本 / 评测基准
  • ehrsql — 共享标签:电子健康记录 / 临床电子病历 / 医疗NLP / 临床文本 / 评测基准
  • deidentified-medical-text — 共享标签:电子健康记录 / 临床电子病历 / 医疗NLP / 临床文本 / 评测基准

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

返回 AI-Ready 数据集