基于SimBERT的中医医案实体间关系抽取

2023-01-02 12:06龚庆悦李铁军王红云
软件导刊 2022年11期
关键词:医案实体向量

刘 逍,龚庆悦,李铁军,王红云

(1.南京中医药大学人工智能与信息技术学院,江苏南京 210046;2.南京中医药大学第二附属医院(江苏省第二中医院),江苏南京 210017)

0 引言

中医作为一门学科,在传承过程中,往往需要大量医案经验作为学习材料。中医的发展以如今的眼光看来可以算作大数据分析的一种,即通过海量的同证候相似患者的四诊信息,总结出适用于此证候的通用及更细化的治疗手段。如果有充足的同一证候的不同患者医案,提取其中的症状三元组,通过深度学习方法抽取其中的实体及关系,有助于构建中医医案知识图谱,更有利于四诊信息与治疗手段的实体关系预测。

实体关系抽取是自然语言处理中读取文本获得重要信息的核心任务之一,其目的是发现和识别隐含在实体之间的关系。其定义如下:给定一个句子S,其中包含实体A(EntityA)和实体B(EntityB),预测两个实体间的关系r ∈R(R 代表数据集中所有关系的集合)。或者说,抽取实体之间的关系是将非结构化的文本信息转化为结构化的信息,最终以关系三元组〈S,P,O〉的形式来描述。其中,S和O为主、客实体,P为预测出的两个实体之间的关系。实体关系抽取研究成果对命名体识别和关系抽取[1]、推荐系统[2]、机器翻译[3]和知识图谱[4]等相关领域的研究都有重要意义。

根据给定句子中实体是否已被明确标注,可作如下分类:若原始文本中已标记出实体,则称该任务为实体关系分类,或者称其为流水线式关系抽取;若原始文本中未标记出实体,关系抽取任务既要完成实体识别,又要完成关系抽取,则该任务被称为联合关系抽取。

1 相关工作

在中医领域的关系抽取任务中,有学者采用流水线式关系抽取模型对中医文本进行关系抽取。Xie 等[6]使用长短期记忆网络(Long-Short Term Memory,LSTM)对已标注好的数据进行实体识别,再对提取的实体进行关系分类以完成整个三元组的提取。在分类过程中,通过卷积神经网络(Convolutional Neural Network,CNN)对一词多义的实体关系进行知识融合。Zhang 等[7]使用条件随机场(Conditional Random Field,CRF)进行实体识别和抽取,采用爬虫爬取实体属性,并使用带注意力机制的BiLSTM 进行关系抽取,通过实体属性实现对一词多义的处理。Wang 等[8]采用综合交叉熵损失函数与分段注意力机制的SEGATT层进行关系分类,并使用CNN 进行知识融合。2018 年,Google 公司发布预训练模型BERT(Bi-directional Encoder Representations from Transformers),此模型在自然语言处理的分类、命名体识别、关系抽取等任务中相较以往可获得更好的效果。Liu 等[9]采用BERT+BiLSTM+CRF 进行实体识别和关系抽取。

也有学者采用联合模型进行关系抽取。Lu 等[10]提出一个基于分层二进制标注框架(Hierarchical Binary Tagging Framework,HBT)的中医文本联合抽取方法;Tan 等[11]构建基于Bert-wwm-ext 与损失优化的多头选择中医知识联合抽取模型;Yang 等[12]提出一种融合数据增强和注意力机制的实体关系联合抽取方法;Pang 等[13]提出一种基于三元组信息抽取策略的新型实体抽取模型,以解决传统命名实体识别方法应用于高血压中医电子病历医疗实体识别时出现的实体离散问题。

本文将改进后的BERT 模型应用于中医关系抽取任务,利用SimBERT 模型获取中医文本中汉字的向量表示,从而降低中医文本连续字符串分词界限不明确对实体关系抽取造成的影响。该模型首先利用SimBERT 模型作为嵌入层获得中医文本的语义表示,再经过相似检索模块获取相似句,与原句共同传入关系抽取模块,最终通过Softmax函数输出实体关系类型。本文提出的半监督学习框架下基于SimBERT 的中医实体关系分类方法在李铁军医案数据集上取得了较好效果。本文贡献如下:①构建李铁军医案数据集;②构建半监督学习框架下基于SimBERT 的中医实体关系抽取模型,并获得较好的F1 值,证明了模型的有效性;③实验结果表明,半监督学习框架下基于Sim-BERT 的中医实体关系抽取模型能较好地解决样本不均衡和多词一义的问题。

2 总体设计

半监督学习[14]是用一部分有标签样本和更多无标签样本训练模型,通过半监督学习,利用有标签样本提供的监督信息给无标签样本打上伪标签,在一定程度上缓解了样本的不均衡问题,最终提升模型的分类效果。

415 份医案根据诊断结果划分疾病类型,其中176 份肝阳亢,89 份乙肝大三阳,45 份胸痹,44 份乙肝小三阳,20份房颤。其他41 份医案中每类医案少于5 份,不进入类型统计。由统计结果可知,本医案数据集存在样本数量分布不均衡的问题,这也是现实数据集中的常见问题。同时,数据集中存在多词一义现象,如“上盛下虚,肝阳上亢,肾气虚弱”与“肝阳上亢,肾水虚亏,上实下虚”是同一证候的不同描述形式。针对如上问题,本文设计了半监督学习框架下基于SimBERT 的关系抽取模型,模型整体流程如图1所示。

Fig.1 Flow of relation extraction model based on SimBERT in semisupervised learning framework图1 半监督学习框架下基于SimBERT的关系抽取模型流程

首先,使用改进后的SimBERT 对不均衡文本进行相似文本生成,以解决样本不均衡问题。生成的相似文本通过3 个在原始数据集上预训练后的关系抽取模型(BERT、Chinese-base-BERT、BERT-wwm)进行抽取,将3 个模型中两个及以上预测为正例的样本作为伪标签正例。然后将得到的伪标签样本都加入到候选数据集中,将伪标签样本和真实标签样本输入关系抽取模型中进行训练,并将训练后F1 值大于0.90 的伪标签样本加入到真实数据集中,F1值不足0.90 的伪标签样本则舍去,构建文本增强后的中医文本数据集。接下来将增强后的数据集放入4 个模型(BERT、Chinese-base-BERT、BERT-wwm、SimBERT)中进行关系抽取。最后的实验结果表明,通过SimBERT 的相似句检索功能计算文本相似度,将相似度较高的句子进行匹配后再进行关系抽取,可获得更好的关系抽取效果。

本实验采用的SimBERT 模型是以目前流行的BERT模型为基础,以UniLM 思想为核心,兼具相似句生成和检索能力的关系抽取模型。

2.1 SimBERT文本增强原理

SimBERT 属于有监督训练,其文本增强[15]能力通过特殊的Attention Mask 来实现。Attention Mask 使模型具有Seq2Seq 的能力,Seq2Seq 任务是输入一段文本,模型会输出另外一段文本。利用编码器加上解码器的结构,编码器会将输入的一段文本编码成固定大小的向量hn,然后解码器会根据该向量hn,通过自回归的方式解码生成对应文本。以本文的医案数据集为例,输入是“肝阳上亢”,目标句子是“肝阳偏亢”,SimBERT 会将两个句子拼成:[CLS]肝阳上亢[SEP]肝阳偏亢[SEP],然后接如图2 所示的Attention Mask。

SimBERT 做Seq2Seq 任务模型图如图3 所示,“[CLS]肝阳上亢[SEP]”这几个token 之间是双向的Attention,而“肝阳偏亢[SEP]”这几个token 是单向Attention,从而允许递归地预测“肝阳偏亢[SEP]”这几个token。

Fig.2 Attention Mask of SimBERT图2 SimBERT的Attention Mask

2.2 SimBERT实体关系抽取模型结构图

基于SimBERT 的中医实体关系抽取模型结构如图4所示。该模型分为2 个模块:相似检索模块和关系抽取模块。句子S1 通过相似检索模块获取与之相似度最高的句子S2,然后S1 与S2 共同传入到关系抽取模块中,最终获取关系类型。输入的数据在预处理过程中,通过在文本序列首位加入特殊标记“[CLS]”来表示一条文本或一个句子对,并且在句子的分隔处加上“[SEP]”来表示句子的衔接。将标注后的中医文本输入模型后,经过词嵌入层将文本中的单词标记化,其中包含标记词的嵌入向量、句子词的嵌入向量以及位置词的嵌入向量。Toki表示句子的第i个标记,并且在训练过程中,会随机地遮挡部分,Ei表示第i个标记的嵌入向量,Hi表示第i个标记在经过模型处理后最终得到的特征向量。

Fig.3 Diagram of Seq2Seq's task on SimBERT图3 SimBERT做Seq2Seq任务模型图

2.3 SimBERT相似检索模块

如图4 所示,SimBERT 把整个batch 内的[CLS]向量都拿出来,得到一个句向量矩阵V∈Rb×d(b 是batch_size,d是hidden_size),然后对d 维度作L2 归一化。L2 归一化公式如式(1)所示:

得到,然后两两作内积。内积公式如式(2)所示:

Fig.4 Structure of TCM entity relation extraction model based on SimBERT图4 基于SimBERT的中医实体关系抽取模型结构

2.4 SimBERT关系抽取模块

如图5 所示,将S1 与相似检索获得的S2 传入到关系抽取模块,并为句子中每个实体添加标签。第一个实体前后加特殊符号“$”,第二个实体前后加特殊符号“#”。如S1:“$舌$淡红而#晦#”,S2:“$舌$#晦暗#淡红”。输出包括3 部分:第1 部分为[CLS]标签,第2 部分为第一个实体的向量,第3 部分为第二个实体的向量。第一部分可以保存整个句子的语义内容,后两部分则是保存实体信息。

(1)[CLS]表征。该部分为单一向量,直接将其传入前馈神经网络中,公式如式(3)所示:

Fig.5 SimBERT relation extraction module structure图5 SimBERT关系抽取模块结构

(2)实体信息。将每个实体内部全部向量进行平均后,传入前馈神经网络中,公式如式(4)、式(5)所示:

其中i、j、k、m 分别为第一个实体的首字符位置、第一个实体的末字符位置、第二个实体的首字符位置、第二个实体的末字符位置。同时,权重系数为共享参数W0=W1=W2,偏向也为共享参数b0=b1=b2。

3 实验与分析

3.1 实验数据

本文以名老中医李铁军的心血管医案为实验对象,研究中医医案的实体关系抽取。首先通过正则表达式对400多个医案进行数据清洗,去除不相关字母、数字和字符。处理结束后以句子为单位,按照《中医诊断学》[16]中对四诊信息的划分方式,参考中医古籍分词规范标准[17]对医案中的脉诊、舌诊表现等全部四诊信息进行拆分并标注,得到5 400多个句子,构建中医心血管医案数据集。

3.2 数据标注内容

3.2.1 概述

根据《中医诊断学》对四诊信息的设定,定义了22 类细粒度实体类型,8 类关系类型,对划分的细粒度实体进行重组,共产生19 类三元组。具体三元组类型有:(感受,表现,部位)、(浮脉,脉象,脉位置)、(沉脉,脉象,脉位置)、(迟脉,脉象,脉位置)、(数脉,脉象,脉位置)、(虚脉,脉象,脉位置)、(实脉,脉象,脉位置)、(相兼脉,脉象,脉位置)、(舌神,舌象,舌质)、(舌色,舌象,舌质)、(舌形,舌象,舌质)、(舌态,舌象,舌质)、(苔质,舌象,舌苔)、(苔色,舌象,舌苔)、(证候,对应,症状)、(治法,选取,症状)、(治法,应选,证候)、(处方,选择,治法)和(处方,决定,证候)。

3.2.2 实体类型

按照《中医诊断学》的划分方法,根据症状类别所在部位的不同,将医案中的关系类型大致分为脉诊、舌诊和其他。其中脉诊实体类型有:浮脉、沉脉、迟脉、数脉、虚脉、实脉、相兼脉。舌诊实体类型有:舌神、舌色、舌形、舌态、苔质、苔色。其他实体类型有:证候、治法、处方、症状、感受、部位。依据前文对实验数据的定义进行实体类型统计,如表1-表3所示。

Table 1 Statistics of pulse diagnosis entity types表1 脉诊实体类型统计

Table 2 Statistics of tongue diagnosis entity types表2 舌诊实体类型统计

Table 3 Statistics of other entity types表3 其他实体类型统计

3.2.3 关系类型

为确保设定实体能相互对应,根据设定的目标设置为<位置,关系,表现>的三元组形式,其中关系类型有表现、脉象、舌象、对应、选取、应选、选择、决定。依据前文对实验数据的定义进行关系类型统计,如表4所示。

Table 4 Statistics of relationship types表4 关系类型统计

3.2.4 数据标注方案

采取单人标注与监督校对相结合的方式进行数据标注,如图6 所示。以肝阳亢疾病类型中某一医案标注为例,此医案原句为:“全身乏力,耳鸣,头晕。寸关沉取细弦而涩,两尺微。舌两边暗,舌心裂。肝肾阴虚,肝阳上亢。治当滋补肾阴,平肝潜阳。方用地黄饮子进退。”将此医案按照脉诊、舌诊和其他划分后进行标注,再将标注后的句子与原文本一同放入模型中训练,用此模型抽取实体和关系。

Fig.6 Example map of medical case annotation图6 医案标注示例图

3.3 实验结果

3.3.1 文本增强效果分析

本文主要采用基于相似句生成的SimBERT 模型进行文本增强。在进行数据预处理,划分训练集、验证集和测试集之后,通过文本数据增强技术将医案数据集的数据量扩充至原来的2.5 倍,重新进行模型训练,并与未进行数据增强的模型进行比较与分析。增强前数据与增强后数据对比如表5所示。

Table 5 Text enhanced data comparison display表5 文本增强数据对比展示

3.3.2 关系抽取模型效果对比分析

为对比原始数据集和增强后数据集中中医文本关系抽取任务的效果,本文设计了4 种对比模型,并在训练集上进行训练。通过验证集优化模型参数,在测试集上使用F1 指标进行模型效果评价。具体实验结果如表6、表7 所示。由表7 可见,使用SimBERT 进行文本增强后,关系抽取效果更佳,这是因为SimBERT 通过相似句检索功能在关系抽取过程中对相似度较高的句子进行匹配分类,从而获得比其他模型更好的关系抽取效果。

Table 6 Experimental results of different models on the original data sets表6 不同模型在原始数据集上的实验结果

Table 7 Experimental results of different models on enhanced data sets表7 不同模型在增强后数据集上的实验结果

4 结语

本文构建了半监督学习框架下基于SimBERT 的关系抽取模型,对中医心血管医案的语义特征和句法结构等进行分析。针对中医医案数据集样本数量不均衡和中医文本关系抽取过程中的多词一义问题,通过SimBERT 的相似文本生成功能进行文本增强,以解决数据集样本数量不均衡问题,并通过相似句检索功能对中医文本中相似度较高的句子进行匹配,以解决多词一义问题,从而获得更好的关系抽取效果。

猜你喜欢
医案实体向量
向量的分解
聚焦“向量与三角”创新题
前海自贸区:金融服务实体
医案聊斋续篇 吐泻案
医案聊斋续篇 晨泄案
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线