计算机应用   2017, Vol. 37 Issue (10): 2999-3005  DOI: 10.11772/j.issn.1001-9081.2017.10.2999
0

引用本文 

王婷, 王祺, 黄越圻, 殷亦超, 高炬. 基于症状构成成分的上下位关系自动抽取方法[J]. 计算机应用, 2017, 37(10): 2999-3005.DOI: 10.11772/j.issn.1001-9081.2017.10.2999.
WANG Ting, WANG Qi, HUANG Yueqi, YIN Yichao, GAO Ju. Automatic hyponymy extracting method based on symptom components[J]. Journal of Computer Applications, 2017, 37(10): 2999-3005. DOI: 10.11772/j.issn.1001-9081.2017.10.2999.

基金项目

国家863计划项目(2015AA020107);国家科技支撑计划项目(2015BAH12 F01-05)

通信作者

王婷, E-mail:wangting6524@163.com

作者简介

王婷(1993-), 女, 山东潍坊人, 硕士研究生, CCF会员, 主要研究方向:信息抽取、知识图谱;
王祺(1993-), 男, 江苏苏州人, 硕士研究生, CCF会员, 主要研究方向:信息抽取、知识图谱、机器翻译;
黄越圻(1993-), 男, 浙江绍兴人, 硕士研究生, CCF会员, 主要研究方向:知识图谱、自然语言问答;
殷亦超(1983-), 男, 上海人, 工程师, 硕士, 主要研究方向:医院信息化;
高炬(1966-), 男, 上海人, 主任医师, 硕士, 主要研究方向:医院行政管理、中西医结合治疗肝胆病

文章历史

收稿日期:2017-04-25
修回日期:2017-06-12
基于症状构成成分的上下位关系自动抽取方法
王婷1, 王祺1, 黄越圻1, 殷亦超2, 高炬2    
1. 华东理工大学 信息科学与工程学院, 上海 200237;
2. 上海中医药大学 附属曙光医院, 上海 200021
摘要: 针对症状间上下位关系具有较强结构特性的问题,提出一种基于症状构成成分的上下位关系自动抽取方法。首先,通过观察症状实体,发现症状可以切分为原子症状词、修饰词等八种成分,且成分的构成序列满足一定的规则。然后,利用词法分析系统和条件随机场模型对症状进行切分和成分标注。最后,把症状之间的关系抽取看作一个分类问题,选取症状成分的构成特征、词典特征以及通用特征作为分类算法的特征;基于多种分类算法训练模型,将症状间的关系分为上下位关系和非上下位关系。实验结果表明,当选用支持向量机算法,同时选用三类特征时,取得了最好的效果,准确率、召回率和F1值分别达到了82.68%、82.13%和82.40%。在此基础上,使用所提出的关系抽取算法,抽取了20619条上下位关系,构建了具有上下位关系的症状知识库。
关键词: 上下位关系    症状构成成分    条件随机场    关系分类    支持向量机    决策树    朴素贝叶斯    
Automatic hyponymy extracting method based on symptom components
WANG Ting1, WANG Qi1, HUANG Yueqi1, YIN Yichao2, GAO Ju2     
1. School of Information Science and Engineering, East China University of Science and Technology, Shanghai 200237, China;
2. Shuguang Hospital Affiliated to Shanghai University of Traditional Chinese Medicine, Shanghai 200021, China
Abstract: Since the hyponymy between symptoms has strong structural features, an automatic hyponymy extracting method based on symptom components was proposed. Firstly, it was found that symptoms can be divided into eight parts: atomic symptoms, adjunct words, and so on, and the composition of these parts satisfied certain constructed rules. Then, the lexical analysis system and Conditional Random Field (CRF) model were used to segment symptoms and label the parts of speech. Finally, the hyponymy extraction was considered as a classification problem. Symptom constitution features, dictionary features and general features were selected as the features of different classification algorithms to train the models. The relationship between symptoms were divided into hyponymy and non-hyponymy. The experimental results show that when these features are selected simultaneously, precision, recall and F1-measure of Support Vector Machine (SVM) are up to 82.68%, 82.13% and 82.40%, respectively. On this basis, by using the above hyponymy extracting algorithm, 20619 hyponymies were extracted, and the knowledge base of symptom hyponymy was built.
Key words: hyponymy    symptom component    Conditional Random Field (CRF)    relationship classification    Support Vector Machine (SVM)    decision tree    Naive Bayesian (NB)    
0 引言

医疗行业蓬勃发展, 对其研究越来越多。各种医疗知识库逐渐被构建, 如医学主题词表(Medical Subject Headings, MeSH)、医学系统命名法-临床术语(Systematized Nomenclature of Medicine-Clinical Terms, SNOMED-CT)和一体化医学语言系统(Unified Medical Language System, UMLS) (https://www.nlm.nih.gov/research/umls/)等医疗分类体系和标准。更有知识库针对某类医疗实体:疾病有国际疾病分类(International Classification of Diseases, ICD-10), 药品有DrugBank, 临床观测指标有观测指标标识符逻辑命名与编码(Logical Observation Identifiers Names and Codes, LOINC)系统。但目前没有专门的症状知识库, 因此, 作者构建了一个症状知识库[1]。在构建过程中, 发现症状分类体系有重要的意义:在医疗问答和临床决策系统等应用中, 通常需要症状之间的上下位关系。例如, 患者输入问题“流黄鼻涕该吃什么药”, 虽然问答系统中没有“流黄鼻涕”的对症药品, 但可以找到其上位词“流鼻涕”的适用药, 将其作为结果返回给患者。在现有的知识库中, SNOMED-CT中有“临床发现”(Clinical Finding)的上下位关系, 但无中文版本可用。因此, 需要依赖于SNOMED-CT在医学上对“临床发现”上下位关系的认知, 建立中文的症状分类体系。

目前上下位关系的抽取主要有基于模式匹配[2]、词典和统计的方法。基于模式匹配的方法是在大规模语料中进行模式的自动匹配, 从而挖掘出符合模式的上下位概念。Hearst等[3]利用词汇-句法模式(Hearst patterns)在文本中自动获取上下位关系, 例如词汇L0L1满足句法模式“L1{, }including{L0, }{or|and}L0”, 那么L0就是L1的下位词。Cederberg等[4]使用潜在语义分析(Latent Semantic Analysis, LSA)对Hearst提出的方法获取的候选上下位关系集合进行过滤, 计算上下位关系对的相似度, 过滤掉得分较低的候选上下位关系对。中文方面, 刘磊等[5]提出基于“是一个”模式的下位概念获取方法, 利用半自动获取的词典和句型对“是一个”模式进行分析, 然后根据规则获取下位概念。该方法贴近人们的语言使用习惯, 因此准确率较高。但模式的适用性与语料密切相关, 可移植性差; 而且模式的覆盖范围有限, 关系获取的召回率不高。

基于词典的方法通常是根据一些现有的词典中定义的上下位词等知识来获取概念间的关系。WordNet[6]被用来作为上位词发现的基准, 具有很高的准确率。Dong[7]编写的通用领域词典《知网》用义原树来描述词汇之间的关系。该方法准确率高, 但词典的规模和覆盖范围有限。在通用领域词典中有很多专业词汇难以查到, 而且构建过程中需要大量专业知识, 维护和更新的代价过高。

基于统计的方法主要采用聚类、分类等机器学习算法获取上下位关系。Caraballo[8]通过上下文中名词的连接关系和同位关系构造特征向量, 然后通过余弦度量以及组平均策略自底向上聚类名词, 最终得到名词间的上下位关系。Ritter等[9]基于Hearst patterns找到名词短语e的候选上位词集合ci, 统计名词短语对〈e, c〉(cci)在每个Hearst pattern下出现的频率并转换为特征, 训练一个支持向量机(Support Vector Machine, SVM)分类器去识别对的上位词。中文方面, 黄毅等[10]基于条件随机场(Conditional Random Field, CRF)获取上下位关系, 首先利用术语在百科名片中的上下文信息, 总结相关模式;在词和词性的基础之上, 增加了特征词词典和标点信息这两类特征, 用CRF进行训练和学习, 建立分类模型。Fu等[11]基于词汇分布表示(Word Embedding)抽取上下位关系, 利用一个映射矩阵来刻画上下位关系, 即一个词汇的分布表示乘以这个映射矩阵约等于其上位词的分布表示。该方法适合处理大规模数据, 覆盖率高, 但准确率要比基于词典和模式匹配的方法低。

鉴于症状上下位关系抽取的重要性和现有工作的不足, 本文提出了基于症状构成成分的上下位关系抽取方法。症状之间的关系只包含三种:上下位关系、同义关系和无关系, 且这三种关系之间互斥(即两个症状之间只可能是三种关系中的一种)。因此, 本文把症状之间的关系抽取看作一个分类问题。考虑到本文只需抽取上下位关系, 同义关系和无关系统一看作非上下位关系。症状间的上下位关系是下位词E2对于上位词E1在发作程度、发作频率、发作时间以及发作部位等方面的细分。通过观察症状库中的症状名, 发现症状可以切分成原子症状词、修饰词等八种成分。本文将这些成分的构成特征作为分类器的特征, 还增加了成分的上下位词典特征和通用特征这两类特征。本文从医疗健康网站中抽取已有的上下位关系和同义关系, 通过随机负采样得到无关系作为训练集来训练分类算法, 并在测试集上进行测试。实验结果表明, 在同时选用三类特征的情况下, 基于SVM的分类模型取得了最高的准确率、召回率和F1值。此外, 将本文使用所提出的关系抽取方法应用到症状库中, 抽取了20619条上下位关系, 构建了症状上下位关系知识库。

本文的主要工作有:1) 基于SNOMED CT中“临床发现”的分类层级体系和“IS_A”关系, 给出了症状上下位关系的定义和分类; 2) 提出了利用症状构成特征来抽取症状之间的上下位关系, 有利于识别出更多症状间的关系; 3) 抽取了症状之间的上下位关系, 使症状不再是独立存在, 而是具有丰富的层次结构, 扩充已有的医疗知识库, 从而优化医疗问答和临床决策系统。

1 问题定义

本文参考并扩展了SNOMED CT中“临床发现”的分类层级体系和“IS_A”关系, 将上下位关系定义为:

定义1  下位词E2对于上位词E1在严重程度、发作频率、发作时间等方面的细分, 记为Hyponymy(E1, E2)。

关系的划分依据主要有以下几类:严重程度、症状频率、发作时间、发现部位、症状性质、发展趋势、偏侧方位和诱因。例如, 下位词“运动后头痛”是上位词“头痛”在发作时间方面的细分, 表明“头痛”是在运动后发作的。另外, 上位词的多个下位词之间也可以存在上下位关系, 这就构成了上下位关系中的语义层次。以“全身疾病所致牙龈严重出血”为例, 其上位词和划分类别如图 1所示。

图 1 “全身疾病所致牙龈严重出血”上位词及划分类别 Figure 1 Hypernym and classification of "Serious bleeding gums caused by systemic illness"

上下位关系具有非对称性和传递性, 即:

1) $x\mathop \to \limits^{\rm{H}} y \Rightarrow \neg \left( {y\mathop \to \limits^{\rm{H}} x} \right)$

2) $ \left( {x\mathop \to \limits^{\rm{H}} y} \right) \cap \left( {y\mathop \to \limits^{\rm{H}} z} \right) \Rightarrow x\mathop \to \limits^{\rm{H}} z$

其中:xyz为症状实体; $\mathop \to \limits^{\rm{H}} $表示上下位关系。

2 上下位关系识别算法 2.1 上下位关系识别流程

症状之间上下位关系抽取的流程如图 2所示。首先利用分词工具和CRF对症状进行切分和成分标注, 将症状切分为自定义的八种构成成分; 然后将这些成分的构成特征作为分类器的特征, 还增加了成分的上下位词典和通用特征这两类特征; 最后训练了朴素贝叶斯(Naive Bayesian)、决策树(Decision Tree)和支持向量机等六类分类模型, 将症状两两组合形成的症状对分为上下位关系和非上下位关系。分类器的正例来自于从医疗健康网站的半结构化和非结构化数据中抽取的部分症状间的上下位关系, 负例来自于医疗网站中的同义关系。另外, 本文采用随机负采样[13]将正例中的上位词进行随机替换, 生成无关系也作为负例。例如, 对于症状“发作性咳嗽”, “咳嗽”是从网站中抽取的已知上位词, 本文从症状库中选择“头痛”进行替换, 就得到负例〈头痛, other, 发作性咳嗽〉。

图 2 症状上下位关系抽取流程 Figure 2 Workflow of extracting hyponymy of symptoms
2.2 训练数据获取 2.2.1 半结构化信息抽取

同一医疗健康网站对于症状实体的描述都有固定的格式和内容,因此本文从医疗健康网站的症状详情页面中抽取了上下位和同义关系。详情页面有以下几部分组成:实体名、别名、描述、分类、可能疾病以及对症药品。其中, “分类”下的实体为当前实体的下位词, “别名”为同义词。例如, 在“腹痛”的页面下, 存在“腹痛”的别名“肚子疼”, 以及“腹痛”的分类:“左上腹压痛”“急性腹痛”等, 可以得到关于“腹痛”的同义关系和上下位关系:〈腹痛, sameAs, 肚子疼〉, 〈腹痛, Hyponymy, 左上腹压痛〉, 〈腹痛, Hyponymy, 急性腹痛〉等。

2.2.2 非结构化信息抽取

除上述半结构化信息以外, 医疗健康网站对于实体的描述文本中包含了丰富的上下位关系和同义关系, 而且对于两种关系的表述又有固定格式,因此本文定义了句法模式(如表 1所示)来抽取描述中的上下位和同义关系。例如, 在“胃痛”的描述文本中, 有“胃部隐痛是胃痛的一种”, 满足上下位中第一个模式, 因此可以得到上下位关系〈胃痛, Hyponymy, 胃部隐痛〉。

表 1 同义关系和上下位关系发现的句法模式 Table 1 Syntactic patterns of synonymy and hyponymy discovery
2.3 特征选择 2.3.1 通用特征

Jaccard相似特征:通过分析医疗健康网站中已有的上下位关系, 发现存在上下位关系的症状对在字形上具有相似性, 因此, 本文用Jaccard相似系数来表示两个症状实体E1E2之间的相似度, 系数值越大, 实体相似度越高, 其计算公式为:

$ Jaccard\left( {{E_1}, {E_2}} \right) = \frac{{|{E_1} \cap {E_2}|}}{{|{E_1} \cup {E_2}|}} $

其中:|E1E2|表示E1E2相同文字的个数;|E1E2|表示E1E2并集文字的个数。例如:症状“头痛劳累后加重”和“晨起头痛加重”之间的Jaccard相似系数为4/9。

实体长度特征:实体E1E2的长度, 例如:症状“嗳气时有腐败鸡蛋的气味”的长度为11。

2.3.2 症状构成特征

1) 症状构成成分定义。

症状可以切分为原子症状词(AtomSymptom, AS)、中心词(HeadWord, HW)、性质词(NatureWord, NW)、时间词(TimeWord, TW)、修饰词(AdjWord, AW)、存在词(ExistWord, EW)、方位词(PosWord, PW)、连接词(Conjunction, Conj)八个类别。即令E为症状的构成成分集合, E={EAS, EHW, ENW, ETW, EAW, EEW, EPW, EConj}, 那么对于症状X, 可以被形式化地表述为:

X=〈x1, x2, …, xn

其中:xiE(i=1, 2, …, n)。

下面给出各成分类别的定义和示例。

原子症状词:症状名中描述患者异常感觉或体征的关键词语。它是症状名的一部分, 可以独立表示某一症状的具体含义, 且不可分成更细粒度。例如, “耳鸣”是一个独立的症状词, 不可以细分为“耳”和“鸣”, 因此“耳鸣”是一个原子症状词。

中心词:症状发生的部位或主体, 包括人体的部位、器官(如心脏、腰部)以及生理指标(如血压)等。

性质词:反映原子症状词或中心词的特征和性质。例如, “急性背痛”中, “急性”反映了发病急、变化快的性质。

时间词:症状发生或依赖的时间。例如“服药后头痛”中, “服药后”说明“头痛”是在患者服药后产生的症状。

修饰词:症状发作的频率、严重程度及发展趋势。例如, 对于“背痛加剧”, “加剧”表明“背痛”正在恶化。

存在词:表示症状的出现和存在。例如, 有、可闻及、可触及等。

方位词:表示症状发生在某一部位的具体方位。例如, “小腿后侧感觉障碍”中, “后侧”就是方位词。

连接词:连接并列出现的多个中心词或原子症状词。例如, “发热伴咳嗽”中, “伴”连接了两个原子症状词“发热”和“咳嗽”。

2) 症状成分标注。

症状成分标注的流程如图 3所示。本文从《现代汉语八百词》[14]中收集了19连接词和11个单音节方位词(用Smpos表示), 从《人体解剖学名词》[15]中收集身体部位相关词汇加入中心词词典中, 并通过启发式规则构建了症状成分词典。然后基于成分词典, 使用分词工具和CRF模型[16]对症状进行切分和成分标注。

图 3 症状成分标注流程 Figure 3 Workflow of symptom component labeling

本文将症状实体集(Symptom Set, SS)分成两类:一类是字符串长度不大于2或以“症”“证”“征”“综合征”结尾的专有症状, 不适合继续切分, 因此作为原子症状词, 构成原子症状集合(Atom Symptom Set), 用SSatom表示, 并将它们加入用户自定义词典。剩下的症状是需要用分词工具和CRF进行分词的症状, 用SSseg表示。最终的分词结果用〈s1, s2, …, sm〉表示。

本文设计了一组启发式规则对分词产生的短语si(1 < i < m)进行分类, 并将收集到的词汇扩充到用户自定义词典。这些规则主要依据词性、依存关系和后缀词等信息。例如, 短语“轻度”因其词性为形容词而被划分为修饰词, “单纯性”因其词性为形容词, 且具有后缀“性”而被划分为性质词。最终, 本文收集到了2003个原子症状词、3893个中心词、1197个性质词、414个时间词、327个修饰词、83个存在词、100个方位词和11个连接词。本文用到的启发式规则如表 2所示。

表 2 构建症状成分词典的启发式规则 Table 2 Heuristic rules for constructing component dictionary

用分词工具进行成分标注能保证高准确率, 但不能覆盖所有症状。因此, 对于未能被完全标注成分的症状, 本文使用CRF模型进行后处理, 保证所有症状都被划分为预定义的成分。用于成分标注的特征包括字面特征和词性特征。

字面特征:出现在上下文的词语是序列标注模型可用的最明显且信息丰富的特征。由于症状实体的描述语言精练, 文献[17]以汉字为单元, 使用Unigram、Bigram和Trigram三种字面特征。它们可以覆盖症状实体中大部分有意义的短语, 如症状名的前缀、后缀信息。本文也采用这三种字面特征。

词性特征:根据症状成分词典可知, 构成成分与词性紧密相关。基于此, 本文为成分标注模型增加了词性特征。与字面特征相对应, 词性特征同样包含Unigram、Bigram和Trigram三种特征。本文以字作为标注单元时, 特征值PiXi所在短语对应的词性。

3) 成分构成特征。

本文观察症状的构成成分和语法结构, 定义了症状构成特征用于上下位关系的发现。

成分特征:症状实体中各构成成分的个数。例如症状“脾肾两虚/NW, 夜间/TM, 多尿/AS, ”中, 特征词、时间词和原子症状词的个数为1, 其余成分的个数为0。

位置特征:判断症状E1E2的公共成分在症状实体中的位置。例如对于症状对“剧烈的腹部持续疼痛”和“腹部疼痛”, 分别被切分为“剧烈的/AW, 腹部/HW, 持续/AW, 疼痛/AS”和“腹部/HW, 疼痛/AS”, 公共成分为“腹部”和“疼痛”, 在E1中的位置分别为2和4, 在E2中的位置分别为1和2。

类别特征:类别特征分为两类, 第一类是公共成分所属类别, 在上例中, 公共成分“腹部”和“疼痛”的类别分别是中心词和原子症状词; 第二类是公共成分的前后两个成分所属类别, 在上例中, 公共成分“腹部”在E1中的前两个成分的类别是修饰词和“Null”, 后两个成分的类别为修饰词和原子症状词。

2.3.3 词典特征

现有的词典中蕴含成分的上下位关系, 本文抽取了《知网》[18]中已有的上下位信息构成上下位词典Dhyp, 对于症状对〈E1, E2〉, 基于Dhyp得到的特征为:

1) 是否E1中的其他成分数与E2中的其他成分数相同, 且在Dhyp中存在对应上下位关系,是则该特征值为1;否则为0。例如, 症状“小腹/痛”和“腹/痛”在去掉公共成分后都只剩一个成分, 且“腹”和“小腹”在Dhyp中存在上下位关系, 则特征值为1。

2) 是否E1的其他成分数少于E2, 且E1的其他成分都是E2其他成分在Dhyp中的上位词,是则该特征值为1;否则为0。例如“上腹/疼痛”和“腹部/轻微/疼痛”去掉公共成分后还剩“上腹”和“上腹, 轻微”, 且“上腹”是“腹部”的上位词, 则特征值为1。

3) E2的其他成分数少于E1, 且E2的其他成分都是E1其他成分在Dhyp中的上位词。

3 实验与分析 3.1 CRF标注结果及分析 3.1.1 实验设置

词性标注使用的语料是从医疗健康网站和百科网站中抽取的症状实体[1], 选用中国科学院计算技术研究所汉语词法分析系统ICTCLAS 2014对症状进行分词和词性标注等预处理。从能够由ICTCLAS完全标注的症状中, 随机选取3000条作为CRF标注的训练数据;从未能进行完全标注的症状中, 选取1000条进行人工标注, 作为测试数据。在人工标注时, 每条症状都由2个人分别标注, 结果不一致的标注由第三个人来决定。实验使用了CRF + +工具进行成分标注的后处理, 选取的特征为字面特征和词性特征。用BIE标记法进行标注, 这里B表示词的第一个字, I代表一个词中间的所有字, E代表词的最后一个字。上下文窗口为左右1~3个字(分别对应窗口大小为3、5、7)。

3.1.2 评价指标

对于CRF的标注结果, 可采用准确率accuracy作为评价指标, 以构成成分为单位进行评价:

accuracy=(Ncorrect/Nsum)×100%

其中:Ncorrect表示正确切分和标注的成分的数目; Nsum表示CRF标注的成分的总数目。

3.1.3 实验结果

CRF模型在不同特征模板和不同上下文窗口下的标注准确率如表 3所示。从实验结果可以看出:当CRF模型仅使用字面特征时, 窗口越大accuracy越高。当加入了词性特征后, accuracy与窗口大小不再正相关, 且accuracy比只用字面特征要高, 可见词性特征对于CRF模型的准确率有极大的贡献。最后可以得出结论:当窗口大小为5, 同时采用字面特征和词性特征时, accuracy最高, 达到了90.06%。因此在后续实验时, 将窗口大小取为5, 此时Unigram、Bigram和Trigram分别对应5、4和3个特征, 共生成12个特征。

表 3 不同特征模板的CRF标注准确率比较 Table 3 Accuracy comparison of CRF labeling based on different features
3.1.4 错误分析

对错误数据进行分析后, 得到了两类错误原因:

1) 症状的表述形式多样, 训练数据中很难包含所有的症状构成序列。对于未在训练数据中出现的序列, CRF难以对其进行正确标注。例如“皮肤硬结冷时疼痛热时瘙痒”的正确切分为“皮肤/HW, 硬结/AS, 冷时/TW, 疼痛/AS, 热时/TW, 瘙痒/AS”, 训练语句中没有这种构成序列, CRF标注为“皮肤/ HW, 硬结冷时疼痛热时/NW, 瘙痒/AS”。

2) 医疗领域有大量专业术语, 如果不加入外部字典, 仅依靠CRF训练得到的模型很难对其识别。例如对于“尿道口痛”, CRF无法将“尿道口”识别为HW, 而导致将症状成分标注为“尿道/HW, 口痛/AS”。

3.2 关系分类结果及分析 3.2.1 实验设置

本文选取六个医疗健康网站抽取实验数据, 分别是:寻医问药网(http://www.xywy.com/)、快速问医生(http://www.120ask.com/)、39健康网(http://www.39.net/)、99健康网(http://www.99.com.cn/)、家庭医生在线(http://www.familydoctor.com.cn/)和飞华健康网(http://www.fh21.com.cn/)。从每个网站的“分类”中抽取实体的下位词, 并基于2.2.2节提出的启发式规则从实体的描述文本中抽取上下位关系作为正例。从“别名”中抽取实体的同义词, 并基于启发式规则从“描述”中抽取同义关系作为负例, 另外, 通过随机负采样得到症状间的无关系, 同样作为负例。最终, 本文抽取了6400条关系, 其中3300条为正例, 3100条为负例。

分类器使用Weka3.8.0版本, 选取了通用特征Fc、症状构成特征Fz和词典特征Fd三大类特征,分别基于朴素贝叶斯、决策树、AdaBoost、随机森林、Bagging和支持向量机六类模型进行关系分类, 然后比较不同分类模型的分类结果。所有测试结果都是通过十折交叉验证[19]得到, 即实验数据被随机分成大小相同的10份, 训练集和测试集的比例为9: 1, 最终取10次实验的平均值作为最终结果。

3.2.2 评价指标

对于上下位关系的分类结果, 本文采用准确率Precision、召回率RecallF1值F1-measure作为评价指标, 分类结果的混淆矩阵如表 4所示。

表 4 分类结果混淆矩阵 Table 4 Confusion matrix of classification results

表 1中:TP表示分类器将实际为正例(即上下位关系)的样本识别为正例的数目, FP表示分类器将实际为负例(即非上下位关系)的样本识别为正例的数目, FN表示分类器将实际为正例的样本识别为负例的数目, TN表示分类器将实际为负例的样本识别为负例的数目。根据混淆矩阵, 准确率、召回率和F1值分别定义如下:

$ \begin{array}{l} Precision = \frac{{TP}}{{TP + FP}}\\ Recall = \frac{{TP}}{{TP + FN}}\\ F1-measure = \frac{{2 \times Precision \times Recall}}{{Precision + Recall}} \end{array} $
3.2.3 实验结果

不同分类模型使用不同特征时的PrecisionRecallF1值如表 5所示。从实验结果可以看出, 分类模型同时选用症状构成特征和通用特征的准确率和召回率要远远高于只选用通用特征, 说明症状构成对上下位关系的发现有极大贡献。另外, 进一步加入词典特征后, 分类模型的准确率和召回率也都有明显提升, 说明词典中成分的上下位信息有利于发现更多症状之间的上下位关系。例如对于症状“腹部/HW, 疼痛/AS”和“上腹/HW, 疼痛/AS”, 通过构成特征和通用特征很难找到两者之间的上下位关系, 需要依靠词典特征。朴素贝叶斯模型的结果最差, 因为朴素贝叶斯模型假设特征之间相互独立, 而这个假设在本文方法中是不成立的。在同时选取三类特征的情况下, 基于支持向量机的分类模型取得了最高的准确率为82.68%,召回率为82.13%,F1值为82.40%。

表 5 不同分类模型使用不同特征的结果比较 % Table 5 Result comparison of different classification model based on different features %
3.2.4 错误分析

关系抽取错误的主要原因有:

1) 上位词原本是原子症状词, 但在下位词中, 其变成了修饰词或加上“性”变成了性质词, 下位词的原子症状词并不是上位词的原子症状词。例如, “瘙痒”是一个原子症状, 但在“无瘙痒、无肝胆疾病的皮肤黄染”中, “瘙痒”是修饰词, 用来修饰原子症状词“皮肤黄染”。

2) 用分词工具和CRF进行分词和词性标注时出现错误, 导致分类结果错误。例如, “咳嗽变异性哮喘”的分词结果是“咳嗽/AS, 变异性/NW, 哮喘/AS”, 找到了上下位关系〈咳嗽, Hyponymy, 咳嗽变异性哮喘〉, 但正确的分词结果应为“咳嗽变异性/NW, 哮喘/AS”, 因此找到的上下位关系是错误的。

4 结语

症状之间关系的识别, 可以丰富已有的医疗知识库, 使实体之间的关系更加丰富。基于扩充的医疗知识库, 实现医疗问答系统和临床决策系统的优化, 对辅助诊疗有重要意义。本文通过观察症状实体名, 发现症状可以切分成原子症状词、中心词、修饰词等八种成分, 另外, 症状构成满足一定的规则和模式。因此, 本文把症状成分的构成特征作为分类器的特征, 还增加了成分的上下位词典和通用特征这两类特征。本文把症状关系抽取问题看作分类问题, 基于不同的分类算法训练分类模型。最终, 本文获取了20619条关系, 得到了很好的准确率, 并构建了具有上下位关系的症状知识库。

参考文献(References)
[1] RUAN T, WANG M, SUN J, et al. An automatic approach for constructing a knowledge base of symptoms in Chinese[C]//Proceedings of the 2016 IEEE International Conference on Bioinformatics and Biomedicine. Washington, DC: IEEE Computer Society, 2016: 1657-1662. http://ieeexplore.ieee.org/document/7822767/
[2] FU R, QIN B, LIU T. Exploiting multiple sources for open-domain hypernym discovery [EB/OL]. [2017-01-10]. http://www.aclweb.org/anthology/D13-1122.pdf.
[3] HEARST, MARTI A. Automatic acquisition of hyponyms from large text corpora[C]//COLING 1992: Proceedings of the 14th Conference on Computational Linguistics. Stroudsburg, PA, USA: Association for Computational Linguistics, 1992, 2: 539-545. http://portal.acm.org/citation.cfm?id=992133.992154
[4] CEDERBERG S, WIDDOWS D. Using LSA and noun coordination information to improve the precision and recall of automatic hyponymy extraction[C]//CONLL 2003: Proceedings of the Seventh Conference on Natural Language Learning at HLT-NAACL 2003. Stroudsburg, PA, USA: Association for Computational Linguistics, 2003, 4: 111-118. http://dl.acm.org/citation.cfm?id=1119191
[5] 刘磊, 曹存根, 王海涛, 等. 一种基于"是一个"模式的下位概念获取方法[J]. 计算机科学, 2006, 33(9): 146-151. (LIU L, CAO C G, WANG H T, et al. A method of hyponym acquisition based on "isa" pattern[J]. Computer Science, 2006, 33(9): 146-151.)
[6] GEORGE A, MILLER, RICHARD B, et al. Introduction to WordNet: an on-line lexical database[J]. International Journal of Lexicography, 1990, 3(4): 235-244. DOI:10.1093/ijl/3.4.235
[7] DONG Z, DONG Q. HowNet-a hybrid language and knowledge resource[C]//Proceedings of the 2003 International Conference on Natural Language Processing and Knowledge Engineering. Piscataway, NJ: IEEE, 2003: 820-824. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1276017
[8] CARABALLO S A. Automatic construction of a hypernym-labeled noun hierarchy from text[C]//ACL 1999: Proceedings of the 37th Annual Meeting of the Association for Computational Linguistics on Computational Linguistics. Stroudsburg, PA, USA: Association for Computational Linguistics, 1999: 120-126. http://dblp.uni-trier.de/db/conf/acl/acl1999.html#Caraballo99
[9] RITTER A, SODERLAND S, ETZIONI O. What is this, anyway: automatic hypernym discovery[C]//Proceedings of the 2009 AAAI Spring Symposium: Learning by Reading and Learning to Read. Menlo Park: AAAI Press, 2009: 88-93. http://www.mendeley.com/catalog/anyway-automatic-hypernym-discovery/
[10] 黄毅, 王庆林, 刘禹. 一种基于条件随机场的领域术语上下位关系获取方法[J]. 中南大学学报(自然科学版), 2013, 44(2): 355-359. (HUANG Y, WANG Q L, LIU Y. An acquisition method of domain-specific terminological hyponymy based on CRF[J]. Journal of Central South University (Science and Technology), 2013, 44(2): 355-359.)
[11] FU R, GUO J, QIN B, et al. Learning semantic hierarchies via word embeddings[EB/OL]. [2017-01-10]. https://www.aclweb.org/anthology/P/P14/P14-1113.xhtml.
[12] 郭玉峰, 刘保延, 周雪忠. SNOMED CT的语义关系与连接概念[J]. 中华中医药学刊, 2008, 26(10): 2206-2209. (GUO Y F, LIU B Y, ZHOU X Z. Semantic relationship and linkage concept of SNPMED CT[J]. Chinese Archives of Traditional Chinese Medicine, 2008, 26(10): 2206-2209.)
[13] MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality[C]//NIPS 2013: Proceedings of the 26th International Conference on Neural Information Processing Systems. New York: Curran Associates, 2013: 3111-3119. http://dl.acm.org/citation.cfm?id=2999959
[14] 吕叔湘. 现代汉语八百词[M]. 北京: 商务印书馆, 2005. (LYU S X. Modern Chinese Eight Hundred Words[M]. Beijing: Commercial Press, 2005.)
[15] 人体解剖学与组织胚胎学名词审定委员会. 人体解剖学名词[M]. 北京: 科学出版社, 2014. (Committee for the Examination of the Terms of Human Anatomy and Histology and Embryology. Human Anatomy Terms[M]. Beijing: Science Press, 2014.)
[16] LAFFERTY J D, MCCALLUM A, PEREIRA F. Conditional random fields: probabilistic models for segmenting and labeling sequence data[C]//ICML 2001: Proceedings of the Eighteenth International Conference on Machine Learning. San Francisco, CA, USA: Morgan Kaufmann Publishers, 2001: 282-289. http://dl.acm.org/citation.cfm?id=655813&dl=
[17] WANG Y, LIU Y, YU Z, et al. A preliminary work on symptom name recognition from free-text clinical records of traditional Chinese medicine using conditional random fields and reasonable features[EB/OL]. [2017-01-10]. http://www.aclweb.org/anthology/W12-2428.
[18] 董强, 董振东. 知网简介[EB/OL]. [2016-01-29]. http://www.keenage.com/. (DONG Q, DONG Z D. Introduction of HowNet[EB/OL]. [2016-01-29]. http://www.keenage.com/html/c_index.html.)
[19] ARLOT S, CELISSE A. A survey of cross-validation procedures for model selection[J]. Statistics Surveys, 2010, 4: 40-79. DOI:10.1214/09-SS054