小林第一天走进医院 AI 实验室,带教师傅老周指着屏幕上密密麻麻的病历说:“这些字你都认得吗?”小林定睛一看——“PT 2 d, DVT r/o, d/c coumadin“——每个字母都认识,连起来像一本”天书“。老周笑了:”这就是咱们要教会 AI 读的临床天书。医学界为了保证 AI 真的会读,办了几场'天书识字大赛':i2b2、n2c2 是病历考场,BioCreative 是文献侦探考场。每一届大赛都像一次'高考模拟卷'——有了标准答案、统一判分规则,模型们才能公平地一比高下。你的任务,就是搞清楚这些赛事的规则,再让 AI 去拿高分。”

岗位关联

理解三大临床 NLP 评测体系与评估指标,是医疗 AI 从业者进入医院场景的“入场券”——你知道模型有多好、好在哪里、能不能上线,全都离不开这些基准任务。

目录
  1. 可视化演示
  2. 三大评测赛事
  3. 任务类型体系
  4. 数据与标注
  5. 评测指标矩阵
  6. 技术演进路线
  7. 工程挑战对策
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示n2c2、BioCreative、i2b2三大临床NLP评测基准对比,临床文本NER与关系抽取流程,PHI去标识化18类信息识别,以及从CRF到BERT的技术演进路线。

本节配有交互动效(进入视口后自动加载,约 3KB)。

三大评测赛事

老周带着小林从医院老档案室翻出一沓发黄的病历纸说:“十年前,全美国的大学都头疼同一件事——计算机怎么读懂病历?于是美国国立卫生研究院牵头办了场'病历识字大赛',取名 i2b2。i2b2 的意思是'信息学整合生物学与床边医学',听着绕口,你就记住它是第一代'天书考场'就行。后来 i2b2 在 2018 年更名为 n2c2——'国家临床 NLP 挑战赛',继续出题考试。同期,生物医学文献界也办了自己的'文献侦探大赛'BioCreative,专门考 AI 从论文摘要里挖出基因、蛋白质、药物和疾病之间的关系。”

这里有必要厘清两大赛场的分工。i2b2/n2c2 的考卷来自真实电子病历(EHR)笔记——入院记录、出院小结、影像报告,是“临床天书本身”;任务包括把病历里提到的药物、疾病、症状圈出来,判断患者是否吸烟,识别哪些用药组合有风险。BioCreative 的考卷则是生物医学论文摘要,考 AI 在字里行间锁定基因实体、基因本体注释、化学物质-疾病关系。如果说 i2b2/n2c2 是“临床实战演习”,那 BioCreative 就是“科研文献情报战”。

从技术角度看,这些赛事本质上是标准化的基准测试:主办方给出带标准答案的训练集,参赛队伍提交模型后,在隐藏的测试集上统一评分并排名。每一届比赛的主题也折射出行业的真实痛点——早期关注去标识化和实体识别,后来转向时序关系、用药安全、社会决定因素等更复杂的语义任务。可以这样说:赛事目录就是临床 NLP 技术发展史的目录。

评测任务={训练集,测试集,金标准,评分规则}\displaystyle \text{评测任务} = \{\text{训练集}, \text{测试集}, \text{金标准}, \text{评分规则}\}

1. 训练集:带标注的电子病历文本,相当于给考生的“模拟题集”,考生从中总结规律。

train={(文本i,标签i)}i=1N\displaystyle \text{train} = \{(文本_i, 标签_i)\}_{i=1}^{N}

2. 测试集:与训练集独立、不公开的考卷,杜绝“背答案”。

test∩train=∅\displaystyle \text{test} \cap \text{train} = \emptyset

3. 金标准:由医学专家审核过的正确答案,相当于阅卷老师手里的参考答案册。

gold={实体j,类型j}j=1M\displaystyle \text{gold} = \{实体_j, 类型_j\}_{j=1}^{M}

4. 评分规则:规定了匹配方式与指标计算口径,相当于“作文评分细则”。

score=f(pred,gold)\displaystyle \text{score} = f(\text{pred}, \text{gold})

老周拍拍小林的肩膀说:“记住,只要听说某个论文里写了'在 i2b2 / n2c2 / BioCreative 上效果 SOTA',你要先问一句——考的是哪个科目、阅卷规则是什么?这和高考分数一样,不同试卷的分数没法直接比。”

任务类型体系

“四大名著分四类题型,”老周在小白板上画了个十字,“天书考场也分四类经典题型。”第一类是命名实体识别——把病历中提到的药物、疾病、症状、身体部位等专有名词用框框圈出来,就像语文考试里的“划出文中的动词”。第二类是关系抽取——判断两个实体之间是否存在某种语义联系,比如“氨氯地平”和“高血压”之间是“治疗”关系,就像给两个词语之间连线并标注“因果”。

第三类是文本分类——给整段病历贴标签。n2c2 著名的“吸烟状态”任务就是让模型阅读一段病历,判断患者是不吸烟者、曾经吸烟者还是当前吸烟者。这相当于作文考试里的“概括中心思想”。第四类是去标识化——把病历中能锁定患者身份的信息(姓名、地址、日期、证件号)全部遮掉,好比考试前把试卷上的考生姓名涂黑,保护隐私。这四个题型不是孤立出现的,n2c2 的“用药关系”任务就同时需要实体识别和关系抽取两步走。

从模型实现角度,这些任务有共同的抽象形式。实体识别本质上是序列标注——给文本中的每个字或词分配一个类别标签;关系抽取可以建模为实体对的分类问题;文本分类直接用整个序列做分类。去标识化则是特殊的实体识别,只不过目标类别是“隐私信息”。所有任务的输入都是非结构化文本,输出都是结构化知识——这是临床 NLP 与通用文本处理最大的差异所在。

P(标签∣文本)=∏k=1KP(yk∣x1,…,xK)\displaystyle \text{P}(\text{标签} \mid \text{文本}) = \prod_{k=1}^{K} \text{P}(y_k \mid x_1, \dots, x_K)

1. 序列概率乘积:把整句的标注概率分解成每个位置上标签的条件概率乘积。

∏k=1KP(yk∣x1,…,xK)\displaystyle \prod_{k=1}^{K} \text{P}(y_k \mid x_1, \dots, x_K)

2. 位置 k 的标签:第 k 个字被分配到的类型,如“药物”或“非实体”。

yk∈{药物,疾病,症状,其他}\displaystyle y_k \in \{\text{药物}, \text{疾病}, \text{症状}, \text{其他}\}

3. 上下文依赖:每个标签不仅依赖当前字,还依赖整句上下文,这正是模型捕捉“地平线”不是药的原因。

P(yk∣全部上下文x)\displaystyle \text{P}(y_k \mid \text{全部上下文}x)

“小林子,你接下来写模型时,第一件事就是确认考的是哪类题型。”老周用笔敲了敲白板,“别看都是 NLP,实体识别模型和关系抽取模型的结构要求完全不同——前者擅长逐字精读,后者擅长配对连线。”

数据与标注

“这些考题和标准答案是怎么来的?”小林问。老周打开一个加密文件夹:“不是随便从网上扒的,每一份病历都经过严格挑选和加工。”i2b2 的大部分语料来自美国多家医疗机构的真实 EHR 系统——入院记录、出院小结、放射报告等,再由标注团队加工成“考卷”。因为涉及患者隐私,所有原始病历必须先经过去标识化处理,再分发给标注员。BioCreative 的语料则来自公开的生物医学论文摘要,相对容易获取,但术语密度极高。

标注规范是数据质量的生命线。一个实体应该标多长?“心衰”标两个字符还是四个字符“慢性心力衰竭”?“阿司匹林”是否包含前面的“拜阿司匹灵”商品名?这些都要在标注手册中白纸黑字写清楚。i2b2 通常采用双人独立标注、第三方仲裁的流程:两位标注员分别标一遍,不一致的地方由经验更丰富的医学专家做最终裁决。这样做是为了压低标注噪声——如果标准答案本身都不一致,模型学到的就是错误规律。

样本分布是另一个大学问。真实病历中,常见药物出现上千次,罕见药物只有两三次;“吸烟状态”任务里“不吸烟者”占七成,“当前吸烟者”只占一成。这种严重的类别不平衡会诱导模型“偷懒”——只要全部预测成多数类,就能刷到不低的准确率,但真正重要的少数类全被漏掉了。所以评测社区引入了宏平均指标和对罕见类别单独报告成绩的做法,逼着模型“每个角落都要照顾到”。

Cohen’s κ=po−pe1−pe\displaystyle \text{Cohen's } \kappa = \frac{p_o - p_e}{1 - p_e}

1. 实际一致率 p₀:两位标注员在所有标注片段上完全一致的比例。

po=一致片数总片数\displaystyle p_o = \frac{\text{一致片数}}{\text{总片数}}

2. 随机一致率 pₑ:即使两人不约而同地随便标,也可能碰巧相同的比例,与类别分布有关。

pe=∑tP1(t)×P2(t)\displaystyle p_e = \sum_{t} \text{P}_1(t) \times \text{P}_2(t)

3. Kappa 值:1 表示完全一致,0 表示与随机标没有差别,通常要求 Kappa > 0.7 才认定标注可用。

κ=po−pe1−pe\displaystyle \kappa = \frac{p_o - p_e}{1 - p_e}

老周语重心长地说:“很多新手拿着公开数据集直接跑,从不在乎标注手册。但你要知道,这套金标准是几十个医生熬了几百个工时做出来的——读懂考卷背后的'出题人意图',你才知道哪些结论值得信任。”

评测指标矩阵

“考完了,怎么判卷?”小林问。老周把两张圆圈图叠在一起:“看四个格子。”想象有两个圈:左边绿圈是金标准答案中的正例集合,右边紫圈是模型预测出来提到正例集合。两个圈相交的部分叫 TP(真正例)——模型答对的正例;绿圈里有但紫圈没有的部分叫 FN(假负例)——本该找到却被漏掉的;紫圈里有但绿圈没有的部分叫 FP(假正例)——模型误报的。用这四个数字就可以定义三大核心指标。

精确率回答的问题是“模型报出来的东西里,有多少是真的?”——相当于“不冤枉好人率”。召回率回答的问题是“真正要找的东西里,模型找回了多少?”——相当于“不漏掉坏人率”。这两个指标此消彼长:判定标准放宽,召回率上升、精确率下降;判定标准收紧则相反。为了综合衡量两者,评测界使用 F1 分数——精确率与召回率的调和平均。与算术平均不同,调和平均惩罚“偏科生”:如果一科满分一科零分,算术平均还有 50 分,调和平均直接是 0。

评测还涉及匹配策略。严格匹配要求模型预测的实体边界和类型与金标准完全一致,多一个字少一个字都算错;宽松匹配容忍边界部分重合,或只要求类型一致。这就像作文阅卷里的“错别字扣分”规则——严格批改笔下留情,宽泛批改看整体意思。医学场景对边界很敏感,“左心衰竭”和“心衰竭”在临床上含义不同,所以多数评测同时报告两种匹配下的指标,让用户全面了解模型表现。

F1=2×P×RP+R=2×TP2×TP+FP+FN\displaystyle F_1 = \frac{2 \times P \times R}{P + R} = \frac{2 \times TP}{2 \times TP + FP + FN}

1. 调和平均的分母:P 和 R 相加,偏科时分数被严重拉低。

P+R\displaystyle P + R

2. 分子带系数 2:保证 P=R=1 时 F1=1,对称且归一。

2×P×R\displaystyle 2 \times P \times R

3. 等价的 TP 形式:将 P 和 R 的定义代入后化简,F1 只看正确命中的比例。

2×TP2×TP+FP+FN\displaystyle \frac{2 \times TP}{2 \times TP + FP + FN}

老周指了指那个动效图:“你刚才看到 P 和 R 一升一降,F1 却一直不低——这就对了。如果哪天你调完模型发现 F1 涨了但 P 降得厉害,你要问自己:这个场景里'冤枉好人'和'漏掉坏人'哪个代价更大?”

技术演进路线

“十几年来,参加天书大考的'考生'换了一茬又一茬。老周打开一张技术演进时间线。第一届 i2b2 比赛的主流方案是词典与规则系统——医学专家手工整理药物名、疾病名、缩写表,程序用字符串匹配在文本里查找。它像一本厚厚的”词汇手册“,遇到手册里没有的新词就无能为力,但胜在解释性强:说得出”为什么标这个"。cTAKES、MetaMap 等开源工具至今仍在医院里服役。

2010 年后的比赛里,条件随机场成为主力。这类模型不再一味死记词典,而是把“这个词出现在什么上下文、词形是什么、前面是什么词性”等特征综合起来,为每个词打分判断类别。它像“会联想的小学徒”——见过“氨氯地平是降压药”,下次见到“美托洛尔是降压药”时能举一反三。但特征工程依赖人工设计,模型天花板取决于特征设计者的经验。

深度学习时代来临后,BiLSTM + CRF 成为标准架构:双向长短时记忆网络自动学习上下文表示,CRF 层保证输出标签序列的全局合理性。到 2018 年 n2c2 期间,预训练语言模型(如 BERT、BioBERT、ClinicalBERT)彻底改变格局——先在海量医学文本上预训练,再在少量标注数据上微调。它像“读过万卷医书的学霸转学生”,初来乍到就自带强大的语言直觉。如今 BioGPT、大语言模型等也被用于临床文本抽取,但评测排名的头部方案依然以预训练编码器 + 序列标注/问答框架为主。

L微调=L任务+λL预训练\displaystyle \mathcal{L}_{\text{微调}} = \mathcal{L}_{\text{任务}} + \lambda \mathcal{L}_{\text{预训练}}

1. 任务损失:模型在标注数据上预测错误的程度,越小越好。

L任务=−∑log⁡P(y∣x,θ)\displaystyle \mathcal{L}_{\text{任务}} = -\sum \log P(y \mid x, \theta)

2. 预训练损失:模型在通用文本上的语言建模能力损耗,防止“学完新任务忘掉语言常识”。

L预训练=−∑log⁡P(wt∣w<t,θ)\displaystyle \mathcal{L}_{\text{预训练}} = -\sum \log P(w_{t} \mid w_{\lt t}, \theta)

3. 权衡系数 λ:通常取一个很小的正数(如 0.1~0.01),让模型优先学任务,同时保留语言能力。

0<λ≪1\displaystyle 0 \lt \lambda \ll 1

老周合上时间线:“模型技术演进,本质上是从'背词典'走向'理解语言'的过程。哪天你在论文里看到某模型强调自己是”few-shot“(小样本学习),就说明它想用更少的标注数据达到同样的分数——这在医疗标注昂贵的今天价值极高。”

工程挑战对策

“比赛拿高分,不一定能直接进医院。”老周话锋一转,“真实世界的天书,比考卷还要难。”第一个挑战是数据稀缺——标注医疗文本需要专业医生,一小时可能只标几十行,成本极高。对策是利用主动学习:先用少量标注训练一个初版模型,让它对无标注数据打分,挑出“模型最拿不准”的样本送给医生标注,梯次优化,把标注预算花在刀刃上。

第二个挑战是临床噪声。真实病历里充斥着拼写错误、语音识别噪声、非正式缩写和不规范表述;“PT 2 d“可能是”物理治疗“也可能是”患者“的缩写,需要结合上下文消歧。对策是建立专科术语词典 + 规则预处理管道 + 模型容忍噪声的三层防线。第三个挑战是迁移适配——在波士顿医院训练好的模型,到纽约社区医院可能精度大降,因为各机构的病历习惯与人群分布不同。对策是使用域自适应技术:利用目标机构的无标注病历做继续预训练,或做领域对抗训练,让模型”入乡随俗”。

第四个挑战是部署反馈。评测集是一次性的,而临床环境是动态的——新药上市、疾病流行、术语变化都会让模型过时。对策是建立“预警-重训-回滚”闭环:线上模型预测时主动输出置信度,低置信度样本入库积累,定期交由医生复核并纳入下一代训练集。老周总结道:“评测解决的是'模型有多好'的度量问题,工程解决的是'模型如何持续好用'的系统问题。前者是标尺,后者是生命力。”

wi=1count(yi)×NC\displaystyle w_i = \frac{1}{\text{count}(y_i)} \times \frac{N}{C}

1. 类别样本数倒数:出现越少,权重越大,让模型腾出更多注意力给少数类。

1count(yi)\displaystyle \frac{1}{\text{count}(y_i)}

2. 归一化因子:保证所有权重的平均值为 1,避免训练不稳定。

NC (N 为样本总数,C 为类别数)\displaystyle \frac{N}{C} \ (\text{N 为样本总数,C 为类别数})

3. 加权损失:把该权重乘进损失函数中,等效于“给少量样本重复上练习课”。

L=∑iwi⋅loss(xi,yi)\displaystyle \mathcal{L} = \sum_i w_i \cdot \text{loss}(x_i, y_i)

“记住,评测是所有工程迭代的起点。”老周在最后一页 PPT 上画了个圆环,“比赛出考卷,你交答卷,得分数,回到真实世界找新问题,再参加下一场考试——临床 NLP 就这么一圈圈滚出来。”

AI 应用场景

医院病历质控与医保预编码

阶段:模型评测 → 工程部署

解决的问题:医保结算要求把病历中的诊断和操作转成 ICD 编码,传统做法是人工翻阅病历逐条编码,一个编码员一天最多处理几十份,且容易漏编、错编。利用 i2b2/n2c2 式实体识别和文本分类模型,AI 可以自动从出院小结中抽取诊断与操作描述,预生成候选编码列表,由编码员复核。

具体案例:某三甲医院引进“病历天书识字”系统,模型在 n2c2 公开数据集上微调后迁移到本院病历,对 5000 份出院小结做 ICD 编码辅助。系统先圈出“2 型糖尿病”“社区获得性肺炎”等实体,再映射到 ICD 编码,Top-5 命中率达到 92%,编码员每份病历耗时从 15 分钟降到 3 分钟。

临床试验受试者自动筛选

阶段:数据标注 → 信息抽取 → 筛选匹配

解决的问题:临床试验入组条件极其苛刻(“年龄 55-75 岁且患糖尿病且无出血史”),人工筛查病历耗时数月。用 n2c2 的关系抽取方法,把入组条件解析成结构化查询,再对 EHR 海量病历做实体识别与关系抽取,自动匹配候选患者。

具体案例:某药企对 10 万份 EHR 做“高血压合并心衰”患者筛选,模型先用实体识别锁定高血压、心衰诊断,再用关系抽取判断两病是否在同一患者身上共存,最终召回 2600 名候选者。相比纯人工筛查,时间从 4 个月缩短到 3 周,入组率提升 40%。

药物安全警戒与不良事件监测

阶段:关系抽取 → 信号检测 → 预警上报

解决的问题:药物不良反应写在病历各个角落,靠医生填写上报率极低。利用 i2b2 用药关系任务和 BioCreative 药物-疾病关系任务的联合方法,从病历与医学文献中同时挖掘“药物-不良事件”关联,形成安全信号。

具体案例:某医疗 AI 公司与省级药监机构合作,持续监测 120 万份门诊病历,模型自动识别出“阿司匹林-胃肠道出血”的共现关系强度异常升高,触发预警。药监人员复核后发布了用药提醒,将相关不良事件上报量提升 3 倍。

Python 演示

python58 行
import re GOLD = {"氨氯地平", "美托洛尔", "阿司匹林", "华法林", "二甲双胍"}TEXT = """患者因高血压服用氨氯地平和美托洛尔,同时口服阿司匹林;华法林需监测INR,二甲双胍随餐服用。注意:地平的用量要遵医嘱。""" class SimpleModel:    def __init__(self, name, lexicon):        self.name = name        self.lexicon = lexicon     def predict(self, text):        found = set()        for word in self.lexicon:            if word in text:                found.add(word)        return found class Evaluator:    def __init__(self, gold):        self.gold = gold        self.gold_count = len(gold)        self.tp_count = 0        self.fp_count = 0        self.fn_count = 0     def update(self, pred):        self.tp_count += len(self.gold & pred)        self.fp_count += len(pred - self.gold)        self.fn_count += len(self.gold - pred)     def metrics(self):        p = self.tp_count / (self.tp_count + self.fp_count)        r = self.tp_count / (self.tp_count + self.fn_count)        f1 = 2 * p * r / (p + r)        return p, r, f1 def main():    strict_lexicon = {"氨氯地平", "美托洛尔", "阿司匹林", "华法林", "二甲双胍"}    greedy_lexicon = strict_lexicon | {"地平", "洛尔"}     strict_model = SimpleModel("严格词典", strict_lexicon)    greedy_model = SimpleModel("宽松词典", greedy_lexicon)     for model in (strict_model, greedy_model):        evaluator = Evaluator(GOLD)        evaluator.update(model.predict(TEXT))        p, r, f1 = evaluator.metrics()        print(f"{model.name}: P={p:.3f} R={r:.3f} F1={f1:.3f}")     # 宽松词典把"地平线"中的"地平"误判为药物    tricky_text = "患者近期前往地平线旅游一周。"    model = SimpleModel("宽松词典", greedy_lexicon)    print("误报示例:", model.predict(tricky_text)) if __name__ == "__main__":    main()
目的:模拟两个词典模型在“药物实体识别”中的评测对比,演示精确率、召回率、F1 的计算,展示“过度宽松的词典会制造误报”这一经典陷阱。
  1. class SimpleModel:定义一个“考生”模型,构造参数是名称和词典;predict 方法用词典对文本做简单匹配。
  2. class Evaluator:这是“阅卷老师”,维护 TP/FP/FN 三个计数;gold_count 是金标准总数。
  3. self.tp_count += len(self.gold & pred)集合交集计算真正例:金标准与预测同时包含的词。
  4. p = self.tp_count / (self.tp_count + self.fp_count)精确率:模型报出的词中真正是药的比例。
  5. r = self.tp_count / (self.tp_count + self.fn_count)召回率:金标准药物中模型找回来的比例。
  6. strict_lexicon | {"地平", "洛尔"}宽松词典在严格词典基础上增加了“词根”级别条目,看似更全,实则埋下误报隐患。
  7. print(f"{model.name}: ...")逐一打印两个模型的对比成绩,直观看到精确率与召回率的权衡。

常见误区

误区“模型在 i2b2 测试集上 F1 到了 0.95,可以直接部署到医院了!”

正解评测集是“开卷考题”,它经过了清洗、去重、双人标注,分布相对均匀;真实临床环境是“实战战场”,充斥着错别字、口述转录错误、罕见缩写、不同医院的病历风格差异。评测分数高只能说明模型在该数据分布上表现好,跨分布后性能可能大幅下降。医学场景还要考虑错误代价、可解释性和隐私合规,不能只看 F1。正确做法是先在本地小规模回顾性验证,再逐步灰度上线。

为何常见:学术论文总是用排行榜分数说话,人们很容易把“评测分数”等同于“系统质量”,忽略了数据集与现实环境的巨大鸿沟。

误区“严格匹配太苛刻了,实体边界差一个字也算错,这不合理,宽松匹配才算公平。”

正解两种匹配策略“度量”的是不同能力。严格匹配要求模型的边界感知精确,医学上“左心衰竭”与“心衰竭”严重程度和编码都不同,边界差一个字可能就是医疗事故级差错;宽松匹配则更关注“有没有找到核心概念”,适合早期筛选任务。评测社区通常同时报告两种指标,而不是二选一。在医疗场景,严格匹配的高分往往更有业务说服力。

为何常见:人的直觉倾向于“差不多就行”,但医学文本对精确性要求极高,初学者容易从纯 NLP 视角而非临床视角看待边界问题。

误区“现在谁还用条件随机场?直接用 BERT 不就行了?”

正解预训练模型确实大幅提升了效果,但 BiLSTM+CRF、线性 CRF 在小规模标注数据、强约束输出和轻量级推理场景中依然有重要价值。CRF 能对输出序列施加全局约束(如“实体首字必须是 B 标签”),这在大模型输出解码时依然被广泛采用。此外,医院私有化部署对 GPU 资源敏感,轻量级 CRF 模型可能比大模型更实用。

为何常见:排行榜和技术新闻往往放大最新模型的光环,让学习者误以为“新方法取代旧方法”是线性的,忽略了资源约束和任务多样性。

误区“去标识化就是把患者名字改成花名,保证没人认出来就行。”

正解去标识化需要处理的隐私要素多达十八类——姓名、住址、邮政编码、出生日期、年龄、电话号码、证件号、医疗机构名、主治医生姓名等。而且“机器看不出来”不等于“安全”:攻击者可能通过“患者是 92 岁独居老人 + 患罕见病 + 住在某小区”的联合信息重新识别出患者身份,这叫“重识别攻击”。n2c2 的去标识化任务明确要求覆盖全部 HIPAA 安全港要素,并专门设计了重识别风险评估。

为何常见:人们的隐私直觉停留在“名字是最重要的身份标识”,低估了多种非敏感信息组合后的识别威力。

面试题

Q1. i2b2 是哪个领域的经典评测?

单选题 · easy

  • A.通用新闻文本情感分析
  • B.临床电子病历文本挖掘← 正确答案
  • C.跨语言机器翻译质量
  • D.高精度图像语义分割

答案:B。i2b2 是美国国立卫生研究院支持下的临床自然语言处理评测,专门面向电子病历文本。A 是通用 NLP,C 是机器翻译,D 是计算机视觉,都与 i2b2 的医学文本使命不符。

Q2. n2c2 与 i2b2 的关系是?

单选题 · mid

  • A.i2b2 完全取代赛事
  • B.n2c2 是 i2b2 继任← 正确答案
  • C.n2c2 处理文献摘要
  • D.n2c2 与 i2b2 完全无关

答案:B。n2c2(National NLP Clinical Challenges)是 2018 年起 i2b2 更名后的继任赛事,继续举办临床 NLP 挑战。C 更像 BioCreative 的定位,A、D 把两者关系说反或割裂了。

Q3. 精确率高通常意味着什么?

单选题 · mid

  • A.模型找出了很多正例
  • B.模型漏诊了一些病例
  • C.预测正例可信度更高← 正确答案
  • D.召回率也一定更高

答案:C。精确率 = TP / (TP + FP),衡量模型报出的正例中真正的比例,所以精确率高代表“报出来的东西可信度高”。A 是召回率高,B 是漏诊多,D 中精确率与召回率通常是此消彼长的关系。

Q4. 严格匹配与宽松匹配的主要区别?

单选题 · mid

  • A.严格匹配要求边界一致← 正确答案
  • B.宽松匹配只看句子主题
  • C.严格匹配要求字符编码
  • D.宽松匹配不计算召回率

答案:A。严格匹配要求模型预测的实体边界与类型和金标准完全一致;宽松匹配允许边界部分重合。B、D 是对宽松匹配的错误理解,C 与文本编码无关。

Q5. 下列哪项不是 i2b2 常见任务?

单选题 · easy

  • A.去标识化与患者隐私
  • B.吸烟状态的自动分类
  • C.蛋白质功能预测注释← 正确答案
  • D.药物与用药关系抽取

答案:C。去标识化、吸烟状态分类、用药关系抽取都是 i2b2/n2c2 的经典任务。蛋白质功能预测注释属于 BioCreative 文献挖掘赛事的范畴。

Q6. BioCreative 评测涉及哪些内容?

多选题 · easy

  • A.蛋白质与基因实体识别← 正确答案
  • B.化学物质疾病关系抽取← 正确答案
  • C.电子病历文本去标识化
  • D.基因本体功能注释← 正确答案

答案:ABD。BioCreative 面向生物医学文献,涵盖基因/蛋白质实体识别(GN)、化学物质-疾病关系(CDR)、基因本体(GO)注释。C 的去标识化是 i2b2/n2c2 面向真实病历的临床任务。

Q7. F1 分数的含义是?

单选题 · mid

  • A.精确率与召回率算术平均
  • B.精确率与召回率调和平均← 正确答案
  • C.精确率与召回率简单乘积
  • D.真正例占全部样例的比例

答案:B。F1 是精确率与召回率的调和平均,对“偏科”模型惩罚更大。若直接用算术平均,P=1、R=0 时成绩仍有 0.5,而调和平均为 0,更能反映综合能力。

Q8. 临床文本相比普通文本的独特挑战?

多选题 · hard

  • A.缩写术语和错别字多← 正确答案
  • B.口语描述与句法混乱← 正确答案
  • C.结构化段落标题规范
  • D.隐私保护和去标识化← 正确答案

答案:ABD。病历常含不规范缩写、拼写错误、口语化描述,且受 HIPAA 等法规约束必须去标识化。C 反了——病历段落标题格式并不统一,各机构和医生习惯差异很大,因此 C 不是独特挑战。

Q9. 类别不平衡严重时,全预测负例也能拿高分的是?

单选题 · easy

  • A.调和均值 F1 分数
  • B.整体准确率 Accuracy← 正确答案
  • C.正例召回率 Recall
  • D.正例精确率 Precision

答案:B。假设正例只占 5%,全部预测为负例,Accuracy 高达 95%,但 F1、召回率和精确率都会跌到 0。因此评测报告必须给出 P/R/F1,仅看 Accuracy 会被“多数类障眼法”欺骗。

Q10. 关于评测数据集与临床部署,正确的做法是?

多选题 · extreme

  • A.测评集F1高即直接部署
  • B.评估跨机构分布漂移← 正确答案
  • C.主动学习标注难点样本← 正确答案
  • D.训练集和测试集完全重叠

答案:BC。评测集高分不能保证真实部署效果,必须评估跨机构分布漂移;主动学习可以高效利用稀缺的医学标注资源。A 忽略了评测与实战的鸿沟,D 中训练集与测试集重叠会导致分数虚高甚至信息泄漏。