3. 术语映射的认知基础
术语映射之所以困难,根本原因在于:临床世界里“同一个意思”往往有多种说法,而“同一个说法”又可能指向不同意思。要建立可靠的映射,必须先厘清五个层次的对象——概念、术语、编码、同义词关系、上下位关系,再在此基础上做语义等价判定。这一节不讨论具体工具,而是把映射的“判断依据”讲清楚。
一、五个层次:从临床想法到可计算编码
可以把术语映射理解为一条从“临床意图”到“标准编码”的逐层收敛链:
- 概念(Concept):一个独立的医学含义单元,例如“急性心肌梗死”“2型糖尿病伴肾病”。概念是抽象的、唯一的,不依赖某种语言或写法。
- 术语(Term):概念在自然语言中的表达形式,如“心梗”“心肌梗塞”“急性心肌梗死”。同一概念可有多个术语。
- 编码(Code):术语体系为概念分配的唯一标识,如 ICD-10 的 I21.9、SNOMED CT 的 22298006。编码是机器可计算、可交换的形式。
- 同义词关系:多个术语指向同一概念,如“高血压”与“血压高”。
- 上下位关系:概念之间的层级包含,如“糖尿病”是“2型糖尿病”的上位概念。
映射的本质,是把来源系统中的术语,先还原为概念,再定位到目标体系中表达同一概念(或最接近概念)的编码。跳过“概念”直接做字符串匹配,是绝大多数映射错误的来源。
二、同义词:不是“看起来像”,而是“指向同一概念”
同义词判定要区分三种情况。第一种是严格同义,如“心肌梗死”与“心肌梗塞”,两者在任何临床语境下都指同一概念,可直接归并。第二种是语境同义,如“心梗”在心血管科病历中就是“急性心肌梗死”,但在非正式表述中也可能泛指“心肌缺血”,需要结合科室、病历类型判断。第三种是表面相似但概念不同,如“糖尿病”与“糖尿病足”,前者是代谢疾病,后者是并发症,绝不能因为字符串包含就归并。
实操中,同义词归并通常先做规范化:统一全半角、去除标点、统一“征/症”“型/型别”等写法,再比对概念标识。例如来源术语“2型糖尿病伴糖尿病肾病”与标准概念“2型糖尿病伴肾病”在字面上不完全一致,但通过概念分解可判定为同一概念的不同表述。
三、上下位关系:决定“映射到哪一层”
上下位关系(is-a)是映射粒度的核心。来源术语“肺炎”在目标体系中可能对应一个宽泛概念,也可能需要细分到“细菌性肺炎”“病毒性肺炎”。如果来源数据本身没有细分信息,强行映射到过细的下位编码,就会引入虚假精度;反之,若来源已明确“细菌性肺炎”,却只映射到“肺炎”,则丢失了临床信息。
判断原则是:映射结果的信息量不应超过来源信息量,也不应无谓丢失来源已明确的信息。当来源粒度粗于目标最细粒度时,应映射到最近的共同上位概念,并标记“粒度不足”。
四、语义等价判定:四类结果与判断依据
语义等价判定不是二值判断,而是一个分级结果。常用四类:
| 等价类型 | 含义 | 示例 | 处理建议 |
|---|---|---|---|
| 完全等价 | 概念、粒度、语境均一致 | “心肌梗死”→“急性心肌梗死” | 直接映射,置信度高 |
| 近似等价 | 概念一致但粒度或修饰有差异 | “肺炎”→“肺炎(未特指)” | 映射并标记粒度差异 |
| 上下位关系 | 来源是目标的上位或下位 | “糖尿病”→“2型糖尿病” | 映射到最近层级,标记方向 |
| 不匹配 | 概念不同或无法判定 | “糖尿病”→“糖尿病足” | 拒绝映射,转人工审核 |
判定时至少检查四个维度:概念是否相同、粒度是否一致、语境是否改变含义、是否存在否定或修饰词。例如“无心肌梗死”与“心肌梗死”仅差一个否定词,但语义完全相反,必须作为不匹配处理。
五、一个可复用的判定顺序
面对一条来源术语,建议按以下顺序推进:先做字符串规范化,再查同义词表判断是否已有归并概念;若无,则做概念分解,识别核心概念与修饰词;然后判断上下位关系,确定应映射的层级;最后做语义等价判定,输出等价类型与置信度。整个过程的核心不是“找到最像的编码”,而是“先确认概念,再确认层级,最后确认等价程度”。