Page 197 - 《软件学报》2020年第10期
P. 197
陈德彦 等:基于领域语义知识库的疾病辅助诊断方法 3173
一化到其对应的标准症状实例(下文所指症状实例均指标准症状实例)中.
5) 包含从标准疾病实例指向标准症状实例的语义关系 6 028 个.
在 SKB medicine 中,疾病实例通过属性 med:medicine.disease.icd_9 和 med:medicine.disease.icd_10 分别指向了
ICD-9 和 ICD-10 国际疾病分类 [54] .同样,症状实例也通过属性 med:medicine.symptom.icd_9 和 med:medicine.
symptom.icd_10 分别指向了 ICD-9 和 ICD-10 国际疾病分类.在 ICD-10 中,以 R 开头的编码是关于症状和体征
的分类.这里,med 为 medicine 主题域的名称空间前缀.
在 Freebase 中,所有主题域中的概念只有顶层概念.例如,在 medicine 主题域中,疾病和症状只有一个顶层概
念,疾病之间的分类关系通过属性 med:medicine.disease.parent_disease 和 med:medicine.disease.includes_diseases
来实现.即对于疾病来说,除了顶层概念,都是实例,实例间通过属性来表达分类关系.同样,症状实例之间的分类
关系通过属性 med:medicine.symptom.parent_symptom 和 med:medicine.symptom.includes_symptoms 来实现.这
与 SNOMED CT [55] 不同,在 SNOMED CT 本体(最新版本为 ontology-2018-12-26_09-14-08.owl)中,所有疾病都为
概念,概念之间通过 owl:subClassOf 属性建立分类关系.在 Freebase 中,所有实例只有 MID.例如,ns:m.0c58k 为糖
尿病实例的 MID,ns 为 Freebase 的默认名称空间.在 SNOMED CT 本体中,所有概念 ID 采用 SNOMED CT 的约
定编码.对于语义上相同的疾病,其在 Freebase 和 SNOMED CT 本体中的 rdfs:label 标注属性值并不完全相同.
所以,Freebase 的 medicine 主题域中的知识和 SNOMED CT 本体之间并未建立联系.
3 疾病辅助诊断方法
3.1 症状权重的计算
SKB medicine 中症状 s 于疾病诊断权重 w s 的计算,依赖于当前知识库中包含此症状 s 的疾病的数量(即与症状
s 具有语义关系的疾病的数量)和知识库中当前的疾病总数,一旦这两个数量中的任何一个发生变化,即应对 w s
进行重新计算.
假定 SKB medicine 中包含的疾病总数为 N,对于每一个症状 s,我们定义 N s 为与症状 s 具有语义关系的疾病的
数量,w s 是症状于疾病诊断的权重.那么 w s 的计算方法如下: 2
w = ⎛ ⎜ N − N s ⎞ ⎟ (1)
s
⎝ N − 1 ⎠
其中, N ≥ s 1,w ≤ s 1. 从公式(1)可见,与症状 s 具有语义关联的疾病的数量 N s 越大,那么症状 s 于疾病的诊断权重
越小.对方程取平方的目的是为了强调随着关联疾病数量的增加,所表现出来的症状权重之间的差异性.分母取
N−1 是因为当与症状 s 具有语义关联的疾病的数量 N s 为 1 时,确保 w s 为 1,即基于该症状,s 可唯一确定一种疾
病.w s 与 N s 的关系如图 2 所示.
Fig.2 The relation between the weight of a symptom and the number of the diseases related to the symptom
图 2 症状于疾病诊断的权重和与该症状具有语义关联的疾病数量的关系
基于公式(1)可以为知识库中的每个症状 s 计算出一个 w s ,如图 3 所示.