信息速览
侵袭性真菌感染(Invasive Fungal Infection,IFI)在临床上有一种难堪的位置:它进展快、在高危人群里带来 30%–50% 的额外死亡率,却没有任何一项检查能单独给出结论。EORTC/MSG 的共识定义要求把宿主因素、临床影像特征与真菌学证据三者拼合判断,而真菌学证据里最硬的那一条,通常只是一句自由文本——病理医师在显微镜下看到菌丝穿进组织,写下"可见分枝菌丝,符合曲霉"。这句话不进任何结构化字段,也不落在 administrative 编码里,管理型数据对它普遍不敏感,微生物培养又常常阴性。于是 IFI 监测到今天仍然是一项人力活:感染科医师一份一份翻病理报告。
要把这件事自动化,第一个瓶颈不是模型,而是语料。IFI 本身罕见,能凑出一份"报告级阳性"样本已属不易;而要让模型真的学到"哪句话指向 IFI",又必须把概念一个个划出来,成本远高于打一个整篇标签。稀缺与昂贵在同一处叠加,结果是:公开可得的、带概念级标注的病理报告语料,几乎只有一份。
CHIFIR(Cytology and Histopathology Invasive Fungal Infection Reports)就是这唯一的一份。283 份去标识化报告、201 名患者,来自墨尔本两家医院 2010 年 3 月至 2021 年 3 月的血液恶性肿瘤与骨髓移植人群,由感染科医师用 brat 逐句标注出真菌描述、菌种、侵袭性、染色、标本部位五类概念,再叠上肯定、不确定、否定三层确定性,并用六类关系把确定性提示挂到它真正修饰的那个词上。这份 CHIFIR 侵袭性真菌感染语料规模小得刺眼,标注细得罕见。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 官方全名 | CHIFIR: Cytology and Histopathology Invasive Fungal Infection Reports |
| 发布方 | PhysioNet(数据由澳大利亚墨尔本两家医院与两所高校团队贡献) |
| 首次发布 | 2023 年 7 月 12 日,版本 1.0.0 |
| 当前版本 | 1.0.2,2024 年 2 月 20 日(中间版本 1.0.1 于 2023 年 11 月 2 日发布) |
| 报告数 | 283 份 |
| 患者数 | 201 名 |
| 每人报告数 | 1–6 份,中位数 1 份 |
| 平均篇幅 | 1353 字符 |
| 采集时间跨度 | 2010 年 3 月至 2021 年 3 月 |
| 采集机构 | 皇家墨尔本医院、彼得·麦卡勒姆癌症中心(均位于澳大利亚墨尔本) |
| 目标人群 | 接受血液恶性肿瘤治疗和/或骨髓移植的患者 |
| 标注体系 | 9 类概念(6 类 IFI 相关概念 + 3 类确定性提示)与 6 类关系 |
| 标注方式与格式 | 感染科医师用 brat 手工标注,输出 brat standoff 格式(.ann) |
| 文件格式 | .txt 报告、.ann 标注、annotation.conf 配置、chifir_metadata.csv 元数据 |
| 许可与准入 | PhysioNet Credentialed Health Data License 1.5.0;须完成 CITI 培训并签署 DUA |
| 典型用途 | 概念识别与关系抽取方法开发、外部验证、领域自适应、临床文本分类器评测 |
| 官方明写的局限 | 仅两家医院、地域集中;因疾病罕见,各类别标注术语数量可能不足以训练或微调深度 NER 模型 |
§1 它要解决的具体麻烦
1.1 一个没有金标准的诊断,落在一段自由文本上
IFI 的判定逻辑与多数感染不同。细菌感染可以等培养结果,病毒感染可以做核酸,而 IFI 的共识定义把"宿主因素 + 临床特征 + 真菌学证据"三条并起来才算数,其中任何一条单独出现都不构成诊断。这套定义写在 EORTC/MSG 的文件里,执行时却要靠人去病历里逐项核对:这个人有没有长期中性粒细胞缺乏?影像上有没有晕轮征?病理或培养有没有看到真菌成分?
三条证据里,病理报告的分量最重,也最难被机器读到。它是病理医师看完切片后写的自由文本,半结构化,常见分段是临床记录、大体描述、镜检描述与诊断意见,但分段方式在语料内并不统一。真正指向 IFI 的往往是镜检段里一句话,以及这句话前面的那个修饰词——“可见"还是"不排除”,“符合"还是"不能排除”。这两件事在词袋模型里是同一个词袋,在临床上却是相反的结论。
CHIFIR 就是为这一层差异而建的。它的目标不是"给报告打个阳性阴性标签",而是把报告里与 IFI 判断有关的每一个概念连同它的确定性一起抽出来,让分类器先看懂"说了什么真菌、确定到什么程度",再判断"这份报告是否算一次 IFI 事件"。官方页把它的用途写得很直接:服务于命名实体识别与关系抽取方法的开发与验证。
1.2 三条常见的错误期待
第一条,把它当成"IFI 二分类的训练集"。官方页写明,为了保证阳性与阴性报告的均衡表达,所有符合 EORTC/MSG 真菌学标准的患者报告都被纳入,阴性对照则是从未诊断 IFI 的患者里随机抽的。也就是说,阳性比例是人为富集的结果,不是自然发病率。用它训练出的概率没有流行病学含义。
第二条,把它当成"通用临床 NER 语料"。它只标与 IFI 判断直接相关的概念:SampleType 只在 SPECIMEN 段没有明示标本部位时才补标,诊断结论、药物、既往史、通用解剖实体都不在标注范围内。想拿它训一个"什么都能识别"的临床实体模型,会立刻发现标签覆盖面窄得不像话。
第三条,把它当成"大规模关系抽取语料"。官方页定义的六类关系全部是短程的:要么把确定性提示挂到真菌概念上,要么把真菌描述、侵袭性、染色挂到菌种上。没有跨句关系,没有时间关系,没有"这份报告与上一次检查相比"的纵向链接。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 临床文本上的概念识别方法评测 | 9 类概念、字符级跨度、医师共识标注 | 够,这是它设计出来的用途 |
| 确定性/否定/推测的识别(hedge detection) | Positive、Equivocal、Negative 三类提示,并通过关系指向被修饰的概念 | 够,且带指向关系,比只有标签的语料更细 |
| 短程关系抽取方法验证 | 6 类关系,方向明确 | 够做方法学验证,不够做规模训练 |
| 报告级 IFI 二分类 | chifir_metadata.csv 里的阴阳性标签与数据划分 |
可做并能与原论文对齐,但阳性是富集的 |
| 深度 NER 模型的训练或微调 | 283 份、平均 1353 字符 | 不够,官方页明确说各类术语数量可能不足以训练 |
| 通用临床实体识别 | — | 不够,标注范围限定在 IFI 相关概念 |
| 跨机构泛化研究 | 两家医院,同一城市 | 不够,只能算"单点外部数据" |
| 时序/纵向推断 | 同一患者的报告按采集日期编号,但日期不公开 | 不够,只能看顺序不能看间隔 |
| 影像或检验侧的 IFI 证据 | — | 完全没有,它只有文本 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你在做临床 NER,手里的语料都是英文美国病历,想找一个不同国家、不同文风的测试集 | 提供澳大利亚语境的病理报告,专业缩写与写法自成一套 | 做零样本外测,把掉分归因写成"领域差异"而非"模型退化" |
| 你在做否定与不确定性检测,苦于没有带指向关系的标注 | 三类确定性提示通过关系明确挂到被修饰概念上 | 直接按 R 行构造"提示词—目标词"的配对任务 |
| 你在做领域自适应,需要一个体量小但标注极细的目标域 | 283 份的规模适合做少样本与自适应实验 | 用 chifir_metadata.csv 的划分,先复现原论文的分法再改 |
| 你在做院感监测系统的文本模块,想验证概念抽取能不能替代词袋 | 原论文报告了词袋与概念级两路的对比结果 | 读原论文的方法节,用同一划分复现 PR AUC 的差距 |
| 你在教临床自然语言处理,需要一个能讲清"标注规范怎么定"的例子 | annotation.conf 随数据发布,规范与数据一体 |
用配置文件的实体/关系定义讲标注体系设计 |
| 你想训一个能上线的 IFI 抽取模型 | 它给不了足够的量 | 把它当验证集而不是训练集,主粮仓另找 |
1.5 一句话判断
它不适合当"训练语料",而适合当"标尺与教材":量小到训练不动任何深度模型,细到能把"标注规范为什么要这样定"讲清楚。
1.6 不适合谁:四条边界
不适合拿来做规模训练。 283 份、平均 1353 字符,总字符量约三十八万,比许多单篇长文档还少。官方页自己写明了:各类别标注的术语数量可能不足以训练甚至微调一个深度 NER 模型。这不是自谦,是设计前提。
不适合拿来做流行病学推断。 阴性对照是随机抽的、阳性是全纳的,样本里 IFI 的比例与真实住院人群毫无关系。任何从这份语料算出的"阳性率"都是抽样设计的产物。
不适合拿来做跨机构泛化结论。 两家医院都在墨尔本,同一批医师参与标注,写法与判读习惯高度同质。用它做外测,得到的是"从别处跨到墨尔本"的成绩,不是"跨机构"的成绩。
不适合拿来做任何需要时间信息的分析。 日期先在文本内平移、随后连同个人信息一起删除,标本采集日期不公开,报告只按采集先后编号为 r1、r2……因此"两次检查间隔多久""抗真菌治疗后多久转阴"这类问题,在这份语料里没有答案。
§2 数据构成与规格
2.1 四个组成部分
语料的结构极简,根目录只有四类东西:
| 组成 | 形态 | 内容 |
|---|---|---|
reports/ |
目录 | 去标识化后的原始报告,每份一个 .txt |
annotations/ |
目录 | 与报告同名的 brat 标注文件,后缀 .ann |
annotation.conf |
单文件 | brat 的配置文件,定义实体类别、关系类型及其允许的参数组合 |
chifir_metadata.csv |
单文件 | 每份报告的 IFI 阴阳性,以及它属于哪个数据划分 |
文件命名是理解整份语料的钥匙。pt35_r3.txt 表示 35 号患者的第 3 份报告,对应的标注文件就是 pt35_r3.ann。同一患者的报告按标本采集日期的先后编号——这一句官方页特别注明"此信息不公开",意思是编号给出了顺序,但没有给出日期。因此你能说"这是同一个人的第三次检查",却不能说"距离上一次多久"。
这种命名同时暴露了一个必须处理的泄漏源:一名患者最多贡献 6 份报告,同一人的多份报告在写作风格、临床背景、甚至病理医师的措辞习惯上高度相似。按文件随机划分数据集,等于把同一个人放进训练与测试两侧。
2.2 字段字典:brat standoff 的行型
.ann 文件是纯文本,一行一条标注。官方页描述了两类,其余行型属于 brat 通用语法:
| 行型 | 结构 | 含义 | 使用注意 |
|---|---|---|---|
T 行 |
T1\tSampleType 202 206\tskin |
实体:唯一 ID、概念类别、起止字符偏移、原文片段 | 起止是字符偏移而非词偏移;多段跨度在 brat 中用分号连接 |
R 行 |
R2\tpositive-rel Arg1:T3 Arg2:T1 |
关系:唯一 ID、关系类型、两个参数实体 | 方向有语义,Arg1 是确定性提示,Arg2 是被修饰的真菌概念 |
A 行 |
A1\t<属性> T1 |
实体属性(brat 通用语法) | 官方页未描述,本语料是否使用以实际文件为准 |
# 行 |
#1\tAnnotatorNotes T1\t<文本> |
标注者备注(brat 通用语法) | 同上 |
annotation.conf |
配置文本 | 实体类别与关系类型的合法组合 | 解析 .ann 时用它校验类别名与关系参数的合法性 |
chifir_metadata.csv |
表格列 | 报告级阴阳性标签与数据划分 | 想与原论文结果对齐,必须按它给的划分切 |
字符偏移这一点值得单独强调。中文字符、英文单词、连字符在 brat 里都按字符计数,写解析器时用 Python 的字符串下标即可,但如果先做了分词、再去对应偏移,几乎所有偏移都会错位。官方页给的例子 T1 SampleType 202 206 skin 中,202 到 206 共 4 个字符,正好是 skin 的长度,可见区间是左闭右开的习惯用法。
2.3 一条记录的完整解剖
以官方页给出的例子为准,第 35 号患者的第 3 份报告由两个文件构成:
reports/pt35_r3.txt #-- 去标识化后的报告正文,纯文本
annotations/pt35_r3.ann #-- 同名的 brat 标注,逐行一条
.ann 里可能同时出现概念与关系两类行。把官方页的两个例子并排读:
T1 SampleType 202 206 skin
R2 positive-rel Arg1:T3 Arg2:T1
第一行说:ID 为 T1 的实体属于 SampleType 类别,占据正文第 202 到 206 个字符,原文是 “skin”。第二行说:ID 为 R2 的关系类型是 positive-rel,从 T3 指向 T1——也就是 T3 这个"肯定性表达"在肯定 T1 这个真菌相关概念。把这个链条读完整,一句话的语义才成立:不是"报告里出现了 skin",而是"某个真菌发现被肯定地描述为发生在 skin"。
解析器的最小实现:
#-- 解析 brat standoff:T 行为实体,R 行为关系
def parse_ann(path):
ents, rels = {}, []
with open(path, encoding='utf-8') as fh:
for line in fh:
line = line.rstrip('\n')
if not line:
continue
parts = line.split('\t')
if line.startswith('T'):
#-- T1<TAB>SampleType 202 206<TAB>skin
seg = parts[1].split()
ents[parts[0]] = {'type': seg[0],
'start': int(seg[1]),
'end': int(seg[2]),
'text': parts[2] if len(parts) > 2 else ''}
elif line.startswith('R'):
#-- R2<TAB>positive-rel Arg1:T3 Arg2:T1
seg = parts[1].split()
rels.append({'id': parts[0], 'type': seg[0],
'arg1': seg[1].split(':')[1],
'arg2': seg[2].split(':')[1]})
return ents, rels
ents, rels = parse_ann('annotations/pt35_r3.ann')
print(len(ents), len(rels)) #-- 实体条数与关系条数
print([e['type'] for e in ents.values()][:8])
读报告正文时,去标识化的痕迹要认得出来:日期先在文本内平移、随后连同姓名、姓名缩写、医护与机构名称、联系方式一并删除,被替换处留下一串等长的字母。这意味着正文里不会出现任何真实日期,也不会出现机构名;同时也意味着,任何依赖"报告写了哪天"的特征工程在这份语料上都无从下手。
2.4 主键与映射关系
| 键 | 形态 | 连接的对象 | 注意 |
|---|---|---|---|
| 文件名 | pt35_r3 |
报告正文与标注文件一一对应 | 唯一主键,改名前先备份 |
| 患者号 X | ptX_rY 中的 X |
同一患者的多份报告 | 划分数据集时的分组键 |
| 报告序号 Y | ptX_rY 中的 Y |
同一患者报告的时间顺序 | 只有顺序,没有间隔 |
| 元数据行 | chifir_metadata.csv 的一行 |
报告 → 阴阳性 + 数据划分 | 复现原论文的入口 |
患者号与报告序号共同构成"两级索引"。这个设计的直接后果是:做报告级任务时,随机划分必须改成按 X 分组的划分;而做概念级任务时,还多一层——同一患者的多份报告里,同一句话可能被不同病理医师用不同措辞重复写,模型只要记住某个人的措辞就能拿分。
2.5 与同类临床文本语料的字段差异
| 对比项 | CHIFIR | 出院小结类标注语料 | 放射报告实体关系标注 | 病例报告实体标注 |
|---|---|---|---|---|
| 文本类型 | 细胞学与组织病理报告 | 出院小结、病程记录 | 放射报告 | 已发表的病例报告 |
| 标注对象 | IFI 相关概念与确定性 | 问题、用药、社会因素等章节级或实体级标签 | 解剖实体与观察及其关系 | 疾病、症状等通用实体 |
| 确定性层 | 有,且带指向关系 | 多数无独立确定性层 | 部分有 | 通常无 |
| 关系层 | 6 类短程关系 | 多为无关系或弱关系 | 有 | 多为无 |
| 标注工具 | brat | 各类工具与自研界面 | 多为自研或半自动 | 多为自研 |
| 规模量级 | 数百份 | 数百至数千份 | 数万句级 | 数百至数千篇 |
| 语言与地域 | 英文,澳大利亚 | 多为英文,美国 | 英文,美国 | 多语种均有 |
这张表要说明的是它的站位:在"标注深度"这一列上,CHIFIR 属于最密的一档,因为它同时标了概念、确定性与三者之间的关系;在"规模"与"文本类型多样性"两列上,它是最薄的一档。
2.6 标签体系的含义
9 类概念分两组。前 6 类是与 IFI 判断直接相关的实体:
| 类别 | 中文含义 | 官方定义要点 | 使用注意 |
|---|---|---|---|
| ClinicalQuery | 临床疑诊提示 | 怀疑存在 IFI 的临床提问,多见于"CLINICAL NOTES"段 | 是"提问"而非"结论" |
| FungalDescriptor | 真菌描述词 | 描述真菌生物体存在的词 | 允许与 Fungus 重叠,也允许两个 FungalDescriptor 重叠 |
| Fungus | 菌种或综合征 | 具体真菌生物体或真菌相关综合征的名称 | 与 FungalDescriptor 可嵌套出现 |
| Invasiveness | 侵袭性描述 | 真菌侵入组织的深度与程度 | 外部研究报告此类最难识别 |
| Stain | 染色方法 | 用于显示真菌成分的组织学染色 | 全大写缩写容易被误判为此类 |
| SampleType | 标本部位 | 取材的器官、部位或组织来源 | 仅当 SPECIMEN 段未明示时才标 |
后 3 类是确定性提示,官方页规定它们只在修饰 FungalDescriptor、Fungus、Invasiveness、Stain 时才标,并通过关系挂到目标概念上:
| 类别 | 中文含义 | 语义 |
|---|---|---|
| Positive | 肯定 | 明确的肯定表达 |
| Equivocal | 不确定 | 表达不确定性 |
| Negative | 否定 | 否定性表达 |
6 类关系把上述概念连成结构:
| 关系 | 连接方向 | 含义 |
|---|---|---|
positive-rel |
Positive → FungalDescriptor / Fungus / Invasiveness / Stain | 肯定表达在肯定这个概念 |
equivocal-rel |
Equivocal → 同上四类 | 不确定性是针对这个概念而言 |
negative-rel |
Negative → 同上四类 | 否定表达在否定这个概念 |
fungal-description-rel |
FungalDescriptor → Fungus | 这个描述词说的是这个菌种 |
invasiveness-rel |
FungalDescriptor / Fungus → Invasiveness | 该描述或菌种表现出这种侵袭性 |
fungus-stain-rel |
Stain → FungalDescriptor / Fungus | 这种染色显示了这个描述或菌种 |
这套体系的精妙处在于确定性与概念是分开标的。传统做法把"未见真菌"整句打成一个否定标签,模型学到的是"这句话里有 not";而 CHIFIR 把"未见"标成 Negative、"真菌成分"标成 FungalDescriptor,再用 negative-rel 把两者连起来。模型要答对,必须先找到两个片段、再判断它们之间是否构成否定关系——这正是多数临床文本模型出错的地方。
§3 它是谁的数据
3.1 贡献者与机构
语料由八位作者共同署名, affiliations 横跨四个机构:墨尔本大学计算与信息系统学院、彼得·麦卡勒姆癌症中心的国家癌症感染中心(National Centre for Infections in Cancer)、RMIT 大学计算技术学院,以及皇家墨尔本医院。通讯作者 Vlada Rozova 同时隶属墨尔本大学与 RMIT,最后作者 Karin Verspoor 是临床自然语言处理方向长期活跃的研究者。
这个组合解释了很多事情。语料的标注由感染科医师完成,而不是由标注公司或学生完成;标注规范的仲裁权在高年资感染科医师手里;资金来自澳大利亚国家健康与医学研究委员会(NHMRC)的项目资助 APP1156426。它不是"顺手发一份数据",而是一个自动化 IFI 监测系统(IFIS)项目的产物,语料是那个系统的训练与验证基座。
伦理审批同样写在官方页上:彼得·麦卡勒姆癌症中心伦理委员会批准(HREC/69640/PMCC),两家医院分别给了治理审批(SSA/69640/PMCC 与 SSA/69640/MH-2020)。作者声明无利益冲突。
| 角色 | 承担的事 |
|---|---|
| 两名感染科医师(JCT、JSKT) | 独立标注子集的初标,参与规范迭代会议 |
| 三名高年资感染科医师(KAT、LJW、MAS) | 对分歧做最终裁定,主要围绕确定性的判断 |
| 病原体数据库提供 | Dr ShioYen Tio 提供了确诊霉菌感染患者数据库 |
| 标注规范咨询 | Dr Christopher Angel 对体系结构与组件提出意见 |
| 资助 | NHMRC 项目资助 APP1156426 |
3.2 时间线
| 时间 | 事件 | 意义 |
|---|---|---|
| 2023 年 3 月 | 原始方法论文在 Journal of Biomedical Informatics 发表(104293) | 方法先发表,语料随后公开 |
| 2023 年 7 月 12 日 | PhysioNet 上线版本 1.0.0 | 首次公开 |
| 2023 年 11 月 2 日 | 版本 1.0.1 | 增加 chifir_metadata.csv,供人直接比对论文结果 |
| 2024 年 2 月 20 日 | 版本 1.0.2 | 当前版本,DOI 10.13026/m1rk-ns13 |
三个版本跨了不到八个月,其中 1.0.1 的改动明确记录为"增加一个 CSV"。这条记录很有信息量:它说明语料发布后,作者收到的第一个反馈是"我没法对齐你的划分"。对使用者而言,这提示了两件事——想复现论文结果必须拿 1.0.1 之后的版本;只看早期版本的人会以为语料里没有划分信息。
3.3 采集场景:为监测而挑出来的报告
研究人群是 2010 年 3 月至 2021 年 3 月期间,在墨尔本两家医院接受血液恶性肿瘤治疗和/或骨髓移植的患者。报告取自电子病历与本地病理数据库,初诊与随访检查的文本都在内,全部为英文。
入选逻辑分三步,每一步都在给数据打上特定的烙印:
| 步骤 | 做法 | 留下的烙印 |
|---|---|---|
| 限定标本类型 | 只收支气管冲洗液、支气管肺泡灌洗液与组织(如肺)三类 | 标本类型高度集中,其他部位的报告没有 |
| 纳入阳性 | 所有符合 EORTC/MSG 真菌学标准的患者报告全纳;并用感染科医师手工监测维护的患者名单补充查漏 | 阳性被富集,不是自然比例 |
| 抽阴性对照 | 从未诊断 IFI 的患者中随机抽取 | 阴性是抽样,比例由设计决定 |
这三步合起来说明:这份语料是"为训练判别模型而构造的对照集",不是"某段时间内全部病理报告的横断面快照"。这个区别决定了它能回答什么——它能回答"怎么把阳性的话从阴性的话里分出来",不能回答"这段时间内 IFI 发生了多少例"。
3.4 数据来源的三个层次
理解语料要分清三层。第一层是临床事实:患者是否真的发生 IFI,由 EORTC/MSG 标准与感染科医师的人工监测共同认定,这一层不公开,也不可能被文本完全还原。第二层是报告文本:病理医师写下的一段自由文本,公开的是这一层,且已经过日期平移与删除。第三层是标注:感染科医师在文本上划出的概念与关系,是对文本的解读而非对事实的认定。
三层之间都有缝。第一层与第二层之间的缝叫"报告没写全"——镜下看到但没写清楚、写法含糊导致无法确定。第二层与第三层之间的缝叫"标注者对文本的理解",官方页说得很坦白:最终共识会议上分歧主要集中在"确定性究竟到哪一档"。这意味着这份语料的标注金标准,本质是三名高年资医师的一致意见,而不是某种客观测量。
§4 它最独特的东西
4.1 稀缺性:澳大利亚临床文本与 IFI 阳性富集,同时成立
公开可得的临床英文文本,绝大多数来自美国,并以 MIMIC 系列为代表的 ICU 与出院记录为主。病理报告这一体裁本身就少见,带概念级标注的病理报告更少,而"报告级阳性经过临床确认"的病理报告语料,在公开范围内近乎独一份。官方页也承认这一点:公开可得的临床文本有限,尤其是澳大利亚语境下的。
阳性富集是它的第二重稀缺。IFI 罕见,如果按自然发病去抽报告,一万份里也未必凑得出几十份阳性。作者的做法是把已知阳性的报告全纳进来,于是 283 份里有相当比例确实是 IFI 相关。代价是分布被人为扭过,收益是"稀有类的样本终于够讨论了"。
4.2 差异化证据:概念级优于词袋
这一步的证据来自原论文的摘要,而不是来自语料本身:作者比较了传统的词袋分类模型与依赖概念级标注的方法,后者在做 IFI 特异信息抽取后,分类器的 PR AUC 从 0.84 提到 0.92,并且带来了可解释性。
| 路线 | 输入 | 论文报告的 PR AUC | 附带特性 |
|---|---|---|---|
| 词袋分类 | 全篇词项或生物医学术语 | 0.84 | 黑箱,无法指出依据 |
| 概念级抽取后分类 | 抽出的 IFI 特异概念与确定性 | 0.92 | 可解释,能指出是哪句话起的作用 |
这个对比值得单独琢磨,因为它给出了"为什么值得花力气做概念标注"的量化答案,也顺带解释了这份语料为什么值得存在:如果词袋就够了,283 份的人工标注就没有意义。同时也要看清它的边界——这是同一批作者、同一份数据、同一套划分下的对比,不是跨数据集的结论;0.84 与 0.92 都不是流行病学意义上的性能保证。
4.3 案例:一句话里的三层结构
官方页没有给出完整样本文档,但按它给的标注规范,可以复原一份典型阳性报告里最关键的那句话是怎么被拆开的。镜检段里常见这样的写法:“GMS stain highlights branching hyphae consistent with Aspergillus, invading tissue.”
| 片段 | 类别 | 与其他片段的关系 |
|---|---|---|
| GMS | Stain | fungus-stain-rel → 后面的真菌描述 |
| branching hyphae | FungalDescriptor | 被染色显示,又被确定性修饰 |
| Aspergillus | Fungus | 由 fungal-description-rel 与上面的描述词相连 |
| invading | Invasiveness | 由 invasiveness-rel 从描述词或菌种指过来 |
| consistent with | Positive(或按语境为 Equivocal) | 由 positive-rel 指向它所肯定的那个概念 |
同一句话换个写法——“no fungal elements seen”——结构完全对称:Negative 通过 negative-rel 指向 FungalDescriptor。这两句在词袋模型里共享大量词项(fungal、elements、hyphae),但在概念与关系层上是相反的判断。
这个例子也解释了官方页那句"最终分歧主要集中在确定性":consistent with 究竟算 Positive 还是 Equivocal,取决于病理医师的措辞习惯与感染科医师的判读口径,没有物理标准可依。
4.4 标注粒度:概念、确定性、关系三层都到位
| 层级 | 粒度 | 它能支撑的任务 | 它撑不住的任务 |
|---|---|---|---|
| 概念层 | 字符跨度 + 类别 | 命名实体识别 | 需要整句或整段标签的任务需自行聚合 |
| 确定性层 | 三类提示,带指向 | 否定与 hedging 检测 | 只标修饰真菌概念的提示,其他否定不标 |
| 关系层 | 6 类短程有向关系 | 关系抽取方法验证 | 长程关系、时序关系、跨报告关系 |
三层叠起来,让这份小语料的信息密度远高于同规模的其他文本集。从"每份报告能提出多少监督信号"的角度看,283 份并不像看上去那么少——每一份都同时提供了实体、属性与关系三种监督。这也是它被设计成"方法验证平台"而不是"训练集"的原因。
4.5 边界条件:什么情况下它不再适用
| 条件 | 是否适用 | 判断依据 |
|---|---|---|
| 验证一个新提出的概念识别方法 | 适用,这是它的主场 | 官方页写明用于 NER 与关系抽取方法的开发与验证 |
| 做少样本或领域自适应实验 | 适用 | 体量小、标注细,正合适 |
| 训练一个可上线的深度 NER 模型 | 不适用 | 官方页明确说各类术语数量可能不足以训练或微调 |
| 推断 IFI 的发病率或构成 | 不适用 | 阳性全纳、阴性随机抽,分布是设计的 |
| 做跨机构或多地域泛化 | 不适用 | 两家医院同在墨尔本 |
| 做与时间相关的分析 | 不适用 | 日期已删除,只有报告顺序 |
| 研究非 IFI 的临床实体 | 不适用 | 标注范围限定在 IFI 相关概念 |
| 做影像或检验侧的融合 | 不适用 | 语料只有文本 |
这张表最该被记住的两行是第一行与第三行。第一行是它被造出来的理由,第三行是它被误用得最多的地方——很多人看到"283 份带标注的临床文本"就当训练集下载,跑完发现模型记不住东西,才回头看到官方页那句提醒。
§5 怎么拿到
5.1 目录结构与准入
这是一份受控访问资源,官方页的 Files 区块对未授权用户不显示文件列表,只显示三行要求:成为 credentialed 用户、完成 CITI “Data or Specimens Only Research” 培训、签署本项目的 DUA。
| 路径 | 内容 |
|---|---|
/content/corpus-fungal-infections/1.0.2/ |
项目主页,含摘要、方法、使用说明、许可 |
/files/corpus-fungal-infections/1.0.2/reports/ |
283 个 .txt,命名 ptX_rY.txt |
/files/corpus-fungal-infections/1.0.2/annotations/ |
283 个 .ann,与报告同名 |
/files/corpus-fungal-infections/1.0.2/annotation.conf |
brat 配置 |
/files/corpus-fungal-infections/1.0.2/chifir_metadata.csv |
阴阳性标签与数据划分 |
整体体量很小。283 份报告平均 1353 字符,正文合计约三十八万字符,加上标注文件,全量在兆字节级,一次就能下完。这与动辄数百 GB 的影像库形成对照,也意味着"下载成本"从来不是这份语料的使用障碍——真正的门槛在准入流程。
5.2 批量下载
Credentialed 资源不能用匿名 wget 直取。官方推荐的做法是用 PhysioNet 提供的命令行工具,登录后带凭据下载:
#-- 1. 在 PhysioNet 完成认证、CITI 培训与 DUA 签署后下载
#-- 2. 用官方工具按版本拉取整个目录
physionet download corpus-fungal-infections/1.0.2 chifir/
#-- 3. 核对文件数与命名
ls chifir/reports | wc -l #-- 283
ls chifir/annotations | wc -l #-- 283
ls chifir/reports | head -3 #-- pt1_r1.txt 一类命名
如果环境里没有官方工具,也可以在浏览器登录后同一下载,或用带凭据的 wget 配合 ~/.netrc。无论哪条路,前提是三件事都办完:账号通过 credentialing、CITI 培训记录已提交并通过审核、本项目的 DUA 已签署。少任何一件,文件目录页只会显示那三行要求,不会列出文件。
下载后第一件事不是跑模型,而是核对三处:报告文件数与标注文件数是否相等、每份报告是否都有同名 .ann、以及 chifir_metadata.csv 的行数是否与报告数对得上。
5.3 读取方式
报告是纯文本,直接用标准库读即可;标注需要按 §2.3 的解析器。把两者对齐的最小实现:
import csv, os
#-- 报告与标注按同名配对,元数据按文件名主键连接
rep_dir, ann_dir = 'chifir/reports', 'chifir/annotations'
meta = {}
with open('chifir/chifir_metadata.csv', encoding='utf-8-sig') as fh:
for row in csv.DictReader(fh):
meta[row['report']] = row #-- 列名以实际 CSV 表头为准
rows = []
for fn in sorted(os.listdir(rep_dir)):
if not fn.endswith('.txt'):
continue
stem = fn[:-4]
text = open(os.path.join(rep_dir, fn), encoding='utf-8').read()
ents, rels = parse_ann(os.path.join(ann_dir, stem + '.ann'))
rows.append({'id': stem,
'patient': stem.split('_')[0], #-- pt35
'text': text,
'n_ent': len(ents), 'n_rel': len(rels),
'meta': meta.get(stem, {})})
print(len(rows), sum(r['n_ent'] for r in rows), sum(r['n_rel'] for r in rows))
这里有两个坑值得提前指出。一是 pt35 这样的患者号要用字符串比较而不是整数比较,否则按字典序排会得到 pt1、pt10、pt100 的错位;二是 CSV 可能带 BOM,用 utf-8-sig 打开更稳妥。
5.4 转成通用的表结构
做序列标注时,通常把字符跨度转成 BIO 标签;做关系抽取时,则转成实体对。下面给出 BIO 转换的最小口径:
#-- 把字符跨度转成 BIO 序列(按字符切分,不做分词)
def to_bio(text, ents):
tags = ['O'] * len(text)
for e in sorted(ents.values(), key=lambda x: (x['start'], -x['end'])):
s, t = e['start'], e['end']
if s >= len(text) or t > len(text):
continue
tags[s] = 'B-' + e['type']
for i in range(s + 1, t):
tags[i] = 'I-' + e['type']
return list(text), tags
text = open('chifir/reports/pt35_r3.txt', encoding='utf-8').read()
ents, rels = parse_ann('chifir/annotations/pt35_r3.ann')
chars, tags = to_bio(text, ents)
print(len(chars), len(tags))
这段代码刻意只用一条记录演示。上正式实验时有四件事必须改:一是重叠实体——官方页允许 FungalDescriptor 与 Fungus 重叠、也允许两个 FungalDescriptor 重叠,上面的写法会让后写的覆盖先写的,处理重叠要改用多层标签或按类别分通道;二是数据集划分必须按患者号分组;三是确定性提示与目标概念要成对构造,否则 positive-rel 这类关系无从学起;四是类别名要与 annotation.conf 逐字核对,别凭印象拼。
5.5 标注映射:什么时候该合并类别
| 原始类别 | 可合并为 | 什么时候该合并 | 什么时候不该 |
|---|---|---|---|
| Positive / Equivocal / Negative | 单一 Certainty 类 + 极性属性 | 样本少、三类各自稀疏时 | 你的任务就是要分三档确定性 |
| FungalDescriptor / Fungus | 单一 FungalMention | 只做"有没有提到真菌"的粗粒度任务 | 需要区分描述词与菌种名 |
| SampleType | 保留原样 | 几乎总是 | 无 |
| Stain | 保留原样,或并入通用 Procedure | 与外部术语表对齐时 | 研究染色方法本身时 |
| ClinicalQuery | 保留原样,或并入通用 Question | 与外部语料合并训练时 | 研究临床提问的作用时 |
合并是这份语料上最常见的必要操作,因为类别分得细、样本又少。但每合并一次,就有一层语义被丢掉:把三档确定性并成一类,"肯定"与"不排除"就没有区别了,而那恰恰是这份语料最想让人学到的东西。所以合理的顺序是先按原类别跑一遍,看哪些类别确实撑不住,再合并,并把合并口径写进方法节。
5.6 五个最容易出错的地方
| 位置 | 错误写法 | 后果 | 正确做法 |
|---|---|---|---|
| 数据集划分 | 按文件随机切分 | 同一患者的多份报告分到两侧,结果虚高 | 按 ptX 的患者号分组切分 |
| 偏移换算 | 先分词再对偏移 | 实体位置整体错位 | 按字符下标处理,不分词 |
| 重叠实体 | 用单层 BIO 覆盖 | 被允许的嵌套标注被静默丢掉 | 多层标签或按类别分通道 |
| 关系方向 | 忽略 Arg1/Arg2 顺序 | 把"否定提示→真菌概念"读反 | 按官方定义的方向构造有序对 |
| 复现论文 | 自己重新划分数据 | 与原论文的 PR AUC 不可比 | 用 chifir_metadata.csv 给定的划分 |
§6 与库内条目的关系
6.1 关系图谱
把 CHIFIR 与站内其他临床文本语料摆在一张表上,它的位置就清楚了:一边是"通用实体标注、体量较大"的一族,另一边是它这样"专科概念、标注极细、体量很小"的一族。
| 站内语料 | 文本类型 | 标注对象 | 与 CHIFIR 的关系 |
|---|---|---|---|
| DisTEMIST | 西语临床文档 | 疾病实体 + SNOMED CT 链接 | 同为概念级标注,语言与实体域不同 |
| MACCROBAT | 已发表病例报告 | 通用临床实体 | 同为小体量实体标注,无确定性与关系层 |
| CADEC | 患者自报文本 | 不良事件与症状表达 | 同为细粒度标注,文本来源非临床文书 |
| RadGraph2 | 放射报告 | 实体与时序关系 | 同为关系标注,体裁与实体体系不同 |
| NTCIR RR-TNM | 日语放射报告 | 报告级三标签 | 同为报告级任务,粒度粗于概念级 |
| Deidentified Medical Text | 护理笔记 | 去标识化与实体 | 同样处理隐私,任务不同 |
| 孕期社会决定因素标注集 | 出院记录 | 社会决定因素 | 同为医师标注的小体量语料 |
| 阿片使用标注集 | 出院小结 | 用药相关问题 | 同为"从自由文本里找一件事" |
| 简要住院病程标注集 | 住院病程记录 | 结构化摘要 | 同为文本结构化任务 |
| 出院医嘱幻觉标注集 | 出院小结与摘要 | 逐句事实性 | 同为人工逐句划线的细粒度标注 |
这张表最有用的一列是"标注对象"。CHIFIR 是表里唯一同时具备概念、确定性与关系三层的语料,也是唯一以感染性疾病为标注域的语料。
6.2 检索路径
| 你要找的东西 | 检索词 | 会落到哪里 |
|---|---|---|
| 临床英文文本的主粮仓 | MIMIC、出院小结 |
通用实体与摘要类语料,不是本语料 |
| 病理相关的图像资源 | 病理、WSI、H&E |
站内病理类资源以图像为主,无文本报告 |
| 真菌相关的图像资源 | 真菌、镜检 |
站内浅表真菌条目是图像分类集,与本语料无交集 |
| 感染与监测 | infection、感染、ICU |
多为结构化监测数据,无病理文本 |
| 概念与关系标注方法 | NER、关系抽取、标注 |
§2.6 与 §4.4 |
| 去标识化实践 | deidentification、PHI |
§2.3 与 §3.4 |
6.3 与其他语料的分工判据
| 任务 | 主粮仓该用什么 | CHIFIR 的位置 | 原因 |
|---|---|---|---|
| 通用临床实体识别的预训练 | 大体量出院小结或文献语料 | 不参与 | 实体域与体量都不合适 |
| 概念识别方法的验证 | 可选多个 | 主力之一 | 标注细、有争议处理记录 |
| 否定与不确定性检测 | 专用否定语料 | 主力之一 | 确定性带指向关系 |
| 关系抽取方法验证 | 专用关系语料 | 可用 | 关系类型少但方向明确 |
| 报告级分类的复现实验 | — | 唯一 | chifir_metadata.csv 给出可对齐的划分 |
| 领域自适应与少样本 | 目标域小语料 | 主力 | 体量小、标注密,正适合 |
| 上线级模型训练 | 大体量同类文本 | 不适用 | 官方页明确说量不够 |
最容易被搞错的是第一行与最后一行。第一行让人高估它——它标不了通用实体;最后一行让人浪费时间——它训不出能上线的模型。中间四行是它真正的落到点。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
先纠正一个常见误判:把"283 份"读成"质量差"或"诚意不足"。IFI 罕见,能确认的报告级阳性本就有限,作者为了均衡还专门抽了阴性对照。评价这份语料不能用"越大越好"的尺子,而应该问:在它要回答的那个问题上,这些样本够不够?
这个校正会改变五维评分的读法。规模一项它注定拿不到高分,但标注深度与任务唯一性两项接近满格。把三件事混在一起平均,会得出"不值得用"的错误结论;把它们分开看,才知道它该用在哪。
7.1 五维评分
按临床数据可用性的常见维度打分,每项 1–5 分,分数针对"作为临床自然语言处理研究语料"这个用途:
| 维度 | 分数 | 理由 |
|---|---|---|
| 数据规模 | 1 | 283 份、201 名患者,官方页自陈不足以训练或微调深度 NER 模型 |
| 标注质量 | 5 | 两名感染科医师独立标注、多轮规范迭代、高年资医师终裁 |
| 任务适配 | 5 | 概念 + 确定性 + 关系三层齐备,几乎没有同价位替代品 |
| 文档完整 | 5 | 官方页写清了人群、入选逻辑、标注规范、去标识化方式与局限 |
| 可获取性 | 2 | Credentialed,须 CITI 培训与 DUA,另有语言与伦理门槛 |
五项合计 18 分(满分 25)。分数结构很偏:标注与文档两项拉满,规模与获取两项拖后腿。这正是一个"为方法验证而生"的语料该有的形状。
7.2 标注质量的两层
第一层是概念边界对不对。规范迭代了多轮,两名医师先独立标子集、开会消歧、更新规范,反复数轮直到对结构、定义与关系规则达成一致,才推广到全库。这个过程保证了"什么算 FungalDescriptor"这类边界问题有稳定的答案。
第二层是确定性判到哪一档。官方页说得很直接:最终共识会议上残留的分歧,主要集中在"确定性究竟到什么程度"。这不是标注者不认真,而是任务本身的性质——"consistent with"到底算肯定还是不确定,取决于判读口径,没有物理标准。
| 用途 | 确定性层误差的影响 | 建议 |
|---|---|---|
| 概念识别(不管确定性) | 无影响 | 直接用 T 行 |
| 否定与 hedge 检测 | 直接影响标签,是任务本身的难点 | 报告结果时注明金标准来自医师共识 |
| 报告级二分类 | 中等,确定性被聚合后误差被稀释 | 用 chifir_metadata.csv 的标签而非自行聚合 |
| 临床决策支持原型 | 大,档位差异会改变建议方向 | 不要直接用于临床场景 |
7.3 已知的、可枚举的偏差
| 偏差 | 表现 | 影响 |
|---|---|---|
| 地域集中 | 两家医院同在墨尔本 | 写法、染色的使用习惯、判读口径单一 |
| 人群集中 | 血液恶性肿瘤与骨髓移植患者 | 免疫抑制背景一致,其他 IFI 高危人群未覆盖 |
| 标本集中 | 支气管冲洗液、灌洗液与组织三类 | 其他部位报告完全缺失 |
| 阳性富集 | 符合标准的阳性报告全纳 | 分布被人为扭过,不能推断发病率 |
| 阴性抽样 | 阴性为随机抽取 | 阴性内部的构成不代表真实阴性人群 |
| 时间信息缺失 | 日期平移后删除 | 无法做任何时间相关分析 |
| 患者内相关 | 一人最多 6 份报告 | 按文件随机切分会泄漏 |
| 结构不一致 | 报告半结构化但分段不统一 | 依赖段落位置的特征不稳定 |
| 类别稀疏 | 官方页自陈每类术语数量可能不足 | 稀有类别(如 Invasiveness)难学 |
7.4 外部验证:别人用它做出过什么
原论文之外,公开可见的第二条使用记录来自 2023 年澳大利亚计算语言学年会(ALTA)的一篇短文:作者用条件随机场(CRF)在 CHIFIR 上做概念识别,与词典匹配基线对比。据该文摘要,230 份报告用于开发、53 份用于最终测试;在多个类别上 CRF 的精确率与 F1 明显优于词典法,其中 SampleType 与 Positive 两类的精确率提升幅度最大,而 Invasiveness 仍是最难的一类,F1 约为 0.67。
| 验证角色 | 做法 | 讲得通的地方 | 风险 |
|---|---|---|---|
| 概念识别方法对比 | 用同一划分比较 CRF 与词典法 | 划分固定、类别固定,可比 | 划分来自外部论文,未必与 CSV 一致 |
| 领域自适应实验 | 在别处训练、在 CHIFIR 上测 | 澳大利亚语境是天然的外域 | 两家医院仍不足以代表"多中心" |
| 报告级分类复现 | 按 chifir_metadata.csv 复现 PR AUC |
划分公开,口径可对齐 | 富集分布使绝对数值不宜外推 |
| 教学演示 | 用 annotation.conf 讲标注体系 |
规范与数据一体发布 | 体量小,演示之外难扩展 |
需要说清的是,上表第一行里的划分与指标转述自那篇会议论文的摘要,官方项目页并未给出这些数字;真正要复现时,应以 chifir_metadata.csv 的划分为准。这类外部记录的价值在于证明"这份语料确实被别人用过、能跑出结果",而不在于提供可引用的性能基准。
7.5 为何它能持续
它没有挑战赛、没有排行榜、只有 283 份,却从 2023 年活到现在,原因是它占着一个别人不愿占的坑:IFI 罕见,确认阳性需要临床医师的长期人工监测,而愿意把这个过程沉淀成公开语料的团队极少。只要"带概念级标注的病理报告"仍然只有这一份,它作为验证平台的地位就不会被新语料替代。
§8 生态位与历史
8.1 沿革:从监测系统里长出来的语料
CHIFIR 不是为发数据而采集的,它是 IFIS(Invasive Fungal Infection Surveillance)自动化监测项目的副产品。项目目标是让电子病历里的病理报告能被机器读,团队于是必须先解决"报告里哪些词与 IFI 有关"这个前置问题。方法论文 2023 年 3 月先发表,语料同年 7 月在 PhysioNet 上线,11 月补上划分文件,次年 2 月定稿在 1.0.2。
这个顺序很重要:先有方法结论,后有数据发布。也就是说,语料自带一套"推荐用法"——先抽概念再分类——而 chifir_metadata.csv 就是那套用法的操作说明书。
| 阶段 | 时间 | 产物 |
|---|---|---|
| 方法研究 | 2023 年 3 月前 | 概念级抽取 + 分类的方法与结果 |
| 数据公开 | 2023 年 7 月 12 日 | PhysioNet v1.0.0 |
| 补齐划分 | 2023 年 11 月 2 日 | v1.0.1,新增 chifir_metadata.csv |
| 定稿 | 2024 年 2 月 20 日 | v1.0.2,当前版本 |
8.2 与挑战赛的关系:它不挂任何挑战赛
这一点值得明说,因为很多人默认"公开语料 = 挑战赛产物"。CHIFIR 背后没有任何共享任务、没有排行榜、没有统一的测试集发布节奏,也就没有由挑战赛带来的那批"顺手跑一遍"的用户。
| 对比项 | 挑战赛语料 | CHIFIR |
|---|---|---|
| 产出动因 | 为了比赛而组织标注 | 为了做监测系统而标注 |
| 规模 | 通常较大,靠参赛量摊薄成本 | 283 份,成本由一个小团队承担 |
| 后续维护 | 比赛结束后多半冻结 | 依项目需要小幅迭代(1.0.1 增加 CSV) |
| 用户来源 | 参赛者 | 做临床 NLP 与感染监测的研究者 |
| 可比性 | 有官方基线 | 只有原论文一个基线 |
代价是知名度有限——官方页显示的项目浏览量是:当前版本 117 次、全部版本累计 162 次(2026 年 10 月读取),这个量级远低于挑战赛语料。收益是它的标注规范与方法绑定得很紧,用起来不容易跑偏。
8.3 生态位:验证台、教材与外部数据点
| 角色 | 主力粮仓 | 验证台 / 教材 |
|---|---|---|
| 典型用法 | 大规模训练、预训练 | 方法验证、复现、教学、外域测试 |
| 需要的前提 | 数据量大、标签稳定 | 标注深、规范公开、有对照基线 |
| 站内的代表 | 大体量出院小结与文献语料 | 本语料、其他小体量细标注语料 |
| 失败模式 | 标签噪声累积 | 样本太少导致结论不稳 |
CHIFIR 坐在右边这一列,而且是右边这一列里最靠边的一个:它不仅小,还限定在一个极窄的临床域上。把粮仓当验证台用会"自己测自己",把验证台当粮仓用会立刻撞上规模墙——两者不能互换。
8.4 谁在用,用来做什么
从语料自身的定位与外部记录看,使用者大致三类。第一类是临床 NLP 方法研究者:拿它验证概念识别、关系抽取、否定检测的新方法,因为它是少数带三层标注的公开临床文本。第二类是感染监测与院感方向的应用研究者:关心"自动化 IFI 监测能不能做",把它当作方法可行性的证据来源。第三类是教学与规范设计者:annotation.conf 与标注数据一起发布,正好用来讲"一套标注规范是怎么迭代出来的"。
三类里第一类最多,第三类最少但最不可替代——毕竟能把规范迭代过程写进官方页的语料不多。
§9 使用指引
9.1 三种角色的路径
| 角色 | 第一天 | 第一周 | 注意事项 |
|---|---|---|---|
| 临床 NLP 研究者 | 读完官方页的标注规范段,跑通 §2.3 的解析器 | 建立按患者分组的划分,先做概念识别再关系抽取 | 重叠实体与关系方向要按官方定义处理 |
| 感染监测应用方 | 读官方页的方法与背景段,看原论文的路线对比 | 用 chifir_metadata.csv 复现报告级分类,评估能否落地 |
富集分布意味着性能不能外推 |
| 教学与规范设计者 | 用 annotation.conf 讲类别与关系定义 |
让学生标几份,再与金标准比对,讨论分歧 | 分歧集中在确定性档位,正好做教学素材 |
9.2 一条最短的可用流程
#-- 1. 完成 credentialing、CITI 培训与 DUA 签署后下载
physionet download corpus-fungal-infections/1.0.2 chifir/
#-- 2. 建立报告-患者映射,作为分组键
python3.11 - <<'PY'
import os
ids = sorted(f[:-4] for f in os.listdir('chifir/reports') if f.endswith('.txt'))
pat = sorted({i.split('_')[0] for i in ids})
print(len(ids), '报告', len(pat), '患者')
open('patients.txt', 'w').write('\n'.join(pat))
PY
import random
#-- 3. 按患者号分组划分:同一患者的所有报告只在一侧
pats = open('patients.txt').read().split()
random.Random(20240620).shuffle(pats)
cut = int(len(pats) * 0.8)
train_pat, test_pat = set(pats[:cut]), set(pats[cut:])
ids = sorted(f[:-4] for f in os.listdir('chifir/reports') if f.endswith('.txt'))
train = [i for i in ids if i.split('_')[0] in train_pat]
test = [i for i in ids if i.split('_')[0] in test_pat]
print(len(train), len(test))
第二步里的患者号是字符串,pt1 与 pt10 不能按数值比较;第三步固定随机种子是必需的,因为 201 名患者的划分结果对种子很敏感,不固定种子就无法与任何既有结果比较。
9.3 引用方式
官方页给出三段引用,缺一不可:
| 引用对象 | 内容 |
|---|---|
| 数据集 | Rozova V, Khanina A, Teng J, Teh J, Worth L, Slavin M, thursky k, Verspoor K. CHIFIR: Cytology and Histopathology Invasive Fungal Infection Reports (version 1.0.2). PhysioNet, 2024. DOI 10.13026/m1rk-ns13 |
| 原始方法论文 | Rozova V, Khanina A, Teng JC, Teh JSK, Worth LJ, Slavin MA, et al. Detecting evidence of invasive fungal infections in cytology and histopathology reports enriched with concept-level annotations. Journal of Biomedical Informatics, 2023:104293 |
| 平台 | PhysioNet 平台综述(2026 年发表于 Nature Health),按官方页 Cite 按钮生成 |
写论文时建议另外注明三件事:使用的版本号、chifir_metadata.csv 的划分是否被遵循、以及数据集划分是按患者分组还是按文件随机——第三点直接决定结果是否可信。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,编辑把关结构与事实 |
| 数字来源 | 规模、结构、边界三类数字来自 PhysioNet 官方项目页与官方引用信息 |
| 文件核验 | 受控访问资源,文件目录未直接取得;文件构成与命名规则以官方页 Data Description 段为准 |
| 不一致说明 | 官方页不同段落对版本与 DOI 的表述一致;外部会议的划分数字与官方 CSV 未对齐,已在 §7.4 标明 |
| 论文信息 | 方法论文与 CRF 会议论文仅读到摘要层面,未读全文 |
| 未核验内容 | 每个概念类别各有多少条标注、关系的总条数、阳性报告的具体份数、CSV 的列名与取值 |
| 图像 | 无配图;封面为生成式提示词,不含真实报告内容 |
| 免责 | 本文不构成临床建议;数据使用须遵守 PhysioNet Credentialed Health Data Use Agreement 1.5.0 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 「它是 IFI 二分类训练集」 | 阳性全纳、阴性随机抽,分布是设计的 | 官方页 Methods 段说明入选逻辑 |
| 「283 份足够微调一个深度 NER」 | 官方页明确说各类术语数量可能不足以训练或微调 | 官方页 Usage Notes |
| 「它标了所有临床实体」 | 只标与 IFI 判断直接相关的概念 | 官方页的概念清单共 9 类,无药物与既往史 |
| 「确定性提示是独立的标签」 | 三类提示通过关系指向被修饰的真菌概念 | 官方页定义 positive-rel / equivocal-rel / negative-rel |
| 「报告里有日期,可以做时序分析」 | 日期先平移后删除,采集日期不公开 | 官方页 Report de-identification 段 |
| 「文件随机划分就行」 | 一人最多 6 份报告,按文件切分会泄漏 | 官方页命名规则与每人报告数 |
| 「偏移是词偏移」 | 是字符偏移,分词后对不上 | 官方页示例 T1 SampleType 202 206 skin 跨度恰为 4 字符 |
| 「关系是双向的」 | 六类关系都有明确方向,Arg1 与 Arg2 不可互换 | 官方页关系定义 |
| 「它是病理图像数据集」 | 只有报告文本,没有任何图像 | 官方页 Abstract 与 Data Description |
| 「下载就能用」 | 须完成 CITI 培训并签署 DUA | 官方页 Access 区块的三条要求 |
| 「它来自美国」 | 澳大利亚墨尔本两家医院 | 官方页 Methods 段与作者 affiliations |
FAQ
Q1:CHIFIR 到底有多少报告,为什么这么少?
283 份报告、201 名患者,每人 1 到 6 份、中位数 1 份。少的原因不是采集不力,而是侵袭性真菌感染本身罕见:作者为了确保阳性样本够用,把两家医院十一年间符合 EORTC/MSG 标准的患者报告全纳进来,再随机抽阴性对照,凑出 283 份已经是富集之后的结果。官方页也直说,因疾病罕见,收集更多阳性报告不可行。
Q2:它能用来训练一个上线级的真菌概念抽取模型吗?
不能,官方页写得很清楚:各个类别标注的术语数量可能不足以训练甚至微调一个深度学习的命名实体识别模型。合理用法是先在其他大体量临床文本上预训练或训练,再把 CHIFIR 当外部验证集或领域自适应的目标域,用它回答"我的方法在这个专科域上还成不成立"。
Q3:确定性的三类提示是怎么标的,能不能单独用?
Positive、Equivocal、Negative 三类只在修饰 FungalDescriptor、Fungus、Invasiveness、Stain 时才标,并且通过 positive-rel、equivocal-rel、negative-rel 指向被修饰的概念。所以它们可以单独做否定与不确定性检测,但前提是保留指向关系——只留提示词标签会丢掉"否定的是哪个发现"这层信息,而这恰恰是临床文本里最容易错的地方。
Q4:数据集该怎么划分才不算泄漏?
按患者号分组,不按文件随机。文件名 ptX_rY 中的 X 是患者号,同一患者最多 6 份报告,写作风格、临床背景与病理医师的措辞习惯高度相似,随机切分会把同一个人放进训练与测试两侧,指标虚高。另外,若目标是复现原论文的结果,应直接使用 chifir_metadata.csv 给出的划分,而不是自己切。
Q5:拿到数据前要办哪些手续?
三件:在 PhysioNet 完成 credentialed 用户认证、完成 CITI “Data or Specimens Only Research” 课程并提交、签署本项目的数据使用协议(PhysioNet Credentialed Health Data Use Agreement 1.5.0)。三件都完成后,文件目录才会列出内容。许可本身是 PhysioNet Credentialed Health Data License 1.5.0,不等于开放数据,再分发与商用均受 DUA 约束。
术语表
| 术语 | 解释 |
|---|---|
| IFI | Invasive Fungal Infection,侵袭性真菌感染 |
| EORTC/MSG | 欧洲癌症研究与治疗组织与真菌病研究组,制定 IFI 共识病例定义 |
| CHIFIR | Cytology and Histopathology Invasive Fungal Infection Reports,本语料缩写 |
| IFIS | Invasive Fungal Infection Surveillance,作者团队的自动化 IFI 监测系统项目 |
| 细胞学报告 | 对体液或刷检标本做镜下检查后出具的报告 |
| 组织病理报告 | 对组织标本做切片与染色检查后出具的报告 |
| 半结构化文本 | 有分段标题但分段方式与写法不统一的自由文本 |
| brat | 基于浏览器的文本标注工具,输出 standoff 格式 |
| standoff 格式 | 标注与原文分离存储,靠字符偏移指向原文片段 |
| 字符偏移 | 从正文开头算起的字符序号,brat 用它定位实体 |
| 概念级标注 | 把句子里的领域概念逐个划出并归类,而非只给整篇打标签 |
| 确定性提示 | 表示肯定、不确定或否定的表达 |
| hedging | 临床文本中表示不确定或推测的语言现象 |
| 关系抽取 | 识别两个实体之间语义关系的任务 |
| 命名实体识别 | 识别文本中实体并分类的任务,简称 NER |
| Credentialed access | PhysioNet 的受控访问级别,须认证、培训与签 DUA |
| DUA | Data Use Agreement,数据使用协议 |
| CITI | 科研伦理与合规在线课程平台,PhysioNet 认可的培训来源 |
| 去标识化 | 移除或替换可识别个人信息的过程 |
| PR AUC | 精确率-召回率曲线下面积,常用于类别不平衡的分类评测 |
| CRF | 条件随机场,一种序列标注模型 |
| 领域自适应 | 把在源域训练的模型迁移到目标域的技术 |
| 富集抽样 | 人为提高稀有类比例的抽样设计 |
附录 A:核心数字核对表
| 数字 | 出处 |
|---|---|
| 报告 283 份 | PhysioNet 官方页 Summary statistics 段 |
| 患者 201 名 | 同上 |
| 每人 1–6 份,中位数 1 份 | 同上 |
| 平均篇幅 1353 字符 | 同上 |
| 概念类别 9 类(6 类 IFI 概念 + 3 类确定性) | 官方页 Entity and relation annotation 段列举后加总 |
| 关系类型 6 类 | 同上 |
| 采集时间跨度 2010 年 3 月至 2021 年 3 月 | 官方页 Study population and design 段 |
| 采集机构 2 家(皇家墨尔本医院、彼得·麦卡勒姆癌症中心) | 同上 |
| 首版 2023-07-12(v1.0.0) | 官方页 Versions 区块 |
| 当前版本 1.0.2,2024-02-20 | 官方页标题与 Versions 区块 |
| DOI 10.13026/m1rk-ns13 | 官方页 Discovery 区块(v1.0.2) |
| 许可 PhysioNet Credentialed Health Data License 1.5.0 | 官方页 License 区块 |
| 所需培训 CITI Data or Specimens Only Research | 官方页 Required training 区块 |
| 伦理批件 HREC/69640/PMCC | 官方页 Ethics 段 |
| 资助编号 NHMRC APP1156426 | 官方页 Acknowledgements 段 |
| 作者 8 位 | 官方页作者列表 |
| 项目浏览量:当前版本 117,全部版本 162 | 官方页 Project Views(2026 年 10 月读取) |
| 论文 PR AUC 0.84 提升至 0.92 | 原论文摘要(Journal of Biomedical Informatics, 2023:104293) |
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- distemist — 共享标签:临床文本 / 自然语言处理 / 命名实体识别
- maccrobat — 共享标签:临床文本 / 自然语言处理 / 命名实体识别
- cadec — 共享标签:临床文本 / 自然语言处理 / 命名实体识别
- radgraph2-radiology-reports — 共享标签:临床文本 / 自然语言处理 / 信息抽取
- ntcicir-rr-tnm — 共享标签:临床文本 / 自然语言处理 / 信息抽取
- deidentified-medical-text — 共享标签:临床文本 / 自然语言处理 / 去标识化
- sdoh-adverse-pregnancy — 共享标签:临床文本 / 自然语言处理 / 人工标注
- annotation-opioid-use-notes — 共享标签:临床文本 / 自然语言处理 / 人工标注
- labelled-notes-hospital-course — 共享标签:临床文本 / 自然语言处理 / 人工标注
- ann-pt-summ — 共享标签:临床文本 / 自然语言处理 / 人工标注
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

