基于预训练语言模型的电子病历文本命名实体识别方法与流程

文档序号:19739710发布日期:2020-01-18 05:02阅读:326来源:国知局
基于预训练语言模型的电子病历文本命名实体识别方法与流程
本发明属于医疗信息数据处理
技术领域
,具体涉及一种基于预训练语言模型的电子病历文本命名实体识别方法。
背景技术
:病历(casehistory)是医务人员对患者疾病的发生、发展、转归进行检查、诊断、治疗等医疗活动过程的记录,也是对采集到的资料加以归纳、整理、综合分析并按规定的格式和要求书写的患者医疗健康档案。随着计算机及互联网技术的发展,大部分医院已实现临床病历的电子化,电子病历是利用电子设备来记录、保存、管理、传输和重现数字化的医疗记录,具有安全可靠以及方便记录、存储、共享等优点。电子病历的应用不但能够为卫生事业管理、医学诊疗与科研提供最实际、最丰富的数据资料,还将是评价医疗质量、管理水平和处理医疗纠纷的重要判定责任依据。目前电子病历多是以自然语言方式录入,然后经计算机转化为结构化数据以供日后数据分析和搜索。自然语言处理是计算机与人工智能领域的一个交叉方向,命名实体识别(namedentityrecognition,简称ner)是自然语言处理的一个基本任务,旨在识别出自然语言文本中有特定意义的实体,如人名、地名、机构名、专有名词等。作为舆情分析、信息检索、查询分类、自动问答、机器翻译等自然语言处理的重要组成部分,命名实体识别结果的好坏直接影响自然语言处理的效果。现有的命名实体识别方法一般包括三种:基于词典的方法、基于启发式规则的方法和基于机器学习的方法。基于词典的方法是先构造大规模实体词典,然后通过匹配语句和词典来实现实体识别,但该方法严重依赖于词典,无法识别未登录词,且无法识别实体配套情形,准确率不高;基于启发式规则的方法是根据实体特有的上下文特征来构建规则,然后将文本与规则进行匹配来实现实体识别,但该方法在构建规则时需要语言学背景知识,由于中文表达具有多样性,规则难以枚举且容易冲突,从而导致查全率和准确率有限;基于机器学习的方法是将命名实体识别任务形式化序列标注任务,通过预测每个字或每个词的标签,联合预测实体边界和实体类型,但该方法需要大量的人工标注。技术实现要素:因此,本发明要解决的技术问题在于克服现有的命名实体识别方法准确率和查全率有限以及繁琐复杂的缺陷,从而提供一种准确率和查全率高且快速简单的基于预训练语言模型的电子病历文本命名实体识别方法。为解决上述技术问题,本发明采用的技术方案是:本发明提供一种基于预训练语言模型的电子病历文本命名实体识别方法,包括以下步骤:步骤1,从公开的数据集收集电子病历文本作为原始文本,对所述原始文本进行数据预处理;步骤2,基于规范的医疗术语集对步骤1中经数据预处理的所述原始文本进行实体标注,得到标注文本;步骤3,将所述标注文本输入预训练语言模型中,得到字向量表示的训练文本;步骤4,构建bilstm-crf序列标注模型,对所述训练文本进行训练,得到训练的标注模型;步骤5,以所述训练的标注模型作为实体识别模型,输入测试文本即可输出标注的类别标签序列。优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤1中,统计数据集中所有所述原始文本中的字,去除停用词、无用符号,并生成字典文件。优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤2中,基于snomedct医疗术语集并采用bio标注模式标注出步骤1中经数据预处理的所述原始文本中出现的疾病和诊断、检查、检验、手术、药物、解剖部位六个实体。进一步优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤3中,采用ernie预训练语言模型。进一步优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤3中,采用半监督的并行方式对ernie预训练语言模型进行训练。进一步优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤4中,所述bilstm-crf序列标注模型包括look-up层、双向lstm层和crf层。进一步优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤4中,以所述训练文本的字向量输入至所述bilstm-crf序列标注模型中并迭代训练。进一步优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤4中,通过构建损失函数计算损失值以确定迭代训练次数,直至所述损失值小于设定阈值。进一步优选地,该基于预训练语言模型的电子病历文本命名实体识别方法,步骤4中,将所述训练文本的类别标签序列和带标签数据输入至所述损失函数中以计算所述损失值。本发明技术方案,具有如下优点:1.本发明提供的基于预训练语言模型的电子病历文本命名实体识别方法,包括:步骤1,从公开的数据集收集电子病历文本作为原始文本,对原始文本进行数据预处理;步骤2,基于规范的医疗术语集对步骤1中经数据预处理的原始文本进行实体标注,得到标注文本;步骤3,将标注文本输入预训练语言模型中,得到字向量表示的训练文本;步骤4,构建bilstm-crf序列标注模型,对训练文本进行学习,得到标注模型;步骤5,以标注模型作为实体识别模型,输入测试文本即可输出标注的类别标签序列。本发明提供的基于预训练语言模型的电子病历文本命名实体识别方法,利用在超大规模中文语料中训练得到深层语言模型中的文本特征和语义信息,提供更好的语义压缩效果,避免了人工标注繁琐复杂的问题,且不依赖词典和规则,提高了命名实体识别的查全率和准确率,提升了命名实体的识别效果。2.本发明提供的基于预训练语言模型的电子病历文本命名实体识别方法,可以保证从公开的数据集中学习到的关键信息更加全面,提高了查全率,也更加方便排查电子病历文本中的错误。3.本发明提供的基于预训练语言模型的电子病历文本命名实体识别方法,采用ernie预训练语言模型代替常规的bert预训练语言模型,通过建模海量数据中的实体概念学习完整的实体语义表示,能够更好地表示实体的语义信息。附图说明为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例1提供的基于预训练语言模型的电子病历文本命名实体识别方法流程示意图;图2为bilstm-crf序列标注模型示意图。具体实施方式为了便于理解本发明的目的、技术方案和要点,下面将对本发明的实施方式作进一步详细描述。本发明可以多种不同的形式实施,而不应该被理解为仅限于在此阐述的实施例。相反,提供此实施例,使得本发明将是彻底的和完整的,并且将把本发明的构思充分传达给本领域技术人员,本发明将仅由权利要求来限定。实施例1本实施例提供一种基于预训练语言模型的电子病历文本命名实体识别方法,如图1所示,包括以下步骤:步骤1,从公开的数据集收集电子病历文本作为原始文本,对原始文本进行数据预处理;具体地,本实施例中,原始文本所采用的语料来源于公开的数据集所收集的电子病历文本,统计数据集中所有原始文本中出现的字,并去除停用字、无关符号等,生成字典文件。步骤2:基于规范的医疗术语集对步骤1中经数据预处理的原始文本进行实体标注,得到标注文本;具体地,基于snomedct医疗术语集并采用bio标注模式对步骤1中经数据预处理的原始文本中的语料进行标注,得到标注文本。该标注文本中,语料实体分为六类:疾病和诊断:医学上所定义的疾病以及医生在临床工作中对病因、病生理、分型分期等所作的判断;检查:影像检查(如x线、ct、mr、petct等)、造影、超声、心电图等,为避免检查操作与手术操作过多冲突,不包含此外其它的诊断性操作(如胃镜、肠镜等);检验:在实验室进行的物理或化学检查,本实施例特指临床工作中检验科进行的化验,不含免疫组化等广义实验室检查;手术:医生在患者身体局部进行的切除、缝合等治疗,属外科的主要治疗方法;药物:用于疾病治疗的具体化学物质;解剖部位:指疾病、症状和体征发生的人体解剖学部位。在经过实体标注的标注文本抽取了1000条作为标注集,该标注集统计的情况如表1所示:表1实体个数统计情况原始文本疾病和诊断检查检验手术药物解剖部位总数标注集1000211622231876545614865363。步骤3:将标注文本输入预训练语言模型中,得到字向量表示的训练文本;具体地,获取百度的ernie预训练语言模型和若干电子病历文本语料,根据电子病历文本语料采用半监督的并行双向方式训练ernie模型,得到新的语言模型,将步骤2中标注文本的标注集输入至新的训练模型中,得到字向量表示的训练文本的训练集。步骤4,构建bilstm-crf序列标注模型,对训练文本进行训练,得到训练的标注模型;bilstm-crf序列标注模型属双向的循环神经网络,能够根据上下文信息对输入的字给以预测标签的概率。该模型分为三层:第一层为look-up层,第二层为双向lstm层(即bilstm层),第三层为crf层。如图2所示,向该模型中输入步骤3中训练文本的字的one-hot向量,即以句子为单位,将一个含有n个字的句子(字的序列)记作x=(x1,x2,...,xn),其中xi表示该句子的第i个字在字典文件中的id,继而得到字的one-hot向量,向量的维度为字典文件大小。look-up层作为该模型的第一层,利用预训练或随机初始化的embedding矩阵将句子中的每个字xi由one-hot向量映射为低维稠密的字向量(characterembedding),其中,xi∈rd,d为embedding的维度。在输入下一层之前,设置dropout以缓解过拟合。双向lstm层作为该模型的第二层,用于自动提取句子特征。将一个句子各个字的characterembedding序列(x1,x2,...,xn)作为双向lstm模型各个时间步的输入,再将正向lstm输出的隐状态序列与反向lstm的序列在各个位置输出的隐状态进行按位置拼接得到完整的隐状态序列(h1,h2,...,hn)∈rn×m。在设置dropout后,接入一个线性层,将隐状态向量从m维映射到k维,k是训练集的标签数,从而得到自动提取的句子特征,记作矩阵p=(p1,p2,...,pn)∈rn×k。将pi∈rk的每一维pij都视作将字xi分类到第j个标签的打分值,如果再对p进行softmax的话,就相当于对各个位置独立进行k类分类,但这样对各个位置进行标注时无法利用已经标注过的信息,因此须接入crf层来进行标注。crf层作为该模型的第三层,用于句子级的序列标注。crf层的参数是一个(k+2)×(k+2)的转移矩阵a,aij表示的是从第i个标签到第j个标签的转移得分,继而在为一个位置进行标注时可利用此前已经标注过的标签。由于需要在句子首部添加一个起始状态以及在句子尾部添加一个终止状态,在k上加2。如果记一个长度等于句子长度的标签序列y=(y1,y2,...,yn),那么模型对于句子x的标签等于y的打分为:由公式(1),整个序列的打分等于各个位置的打分之和,而每个位置的打分由两部分得到,一部分由lstm的pi决定,另一部分则由crf层的转移矩阵a决定,继而可以利用softmax得到归一化后的概率:模型训练时通过最大化对数似然函数,公式(3)给出了对一个训练样本(x,yx)的对数似然:模型在预测过程(解码)时使用动态规划的viterbi算法求解最优路径:将步骤3中训练文本的训练集的字向量输入至上述bilstm-crf序列标注模型中得到类别标签序列,所输入训练样本的训练集中每个字向量都对应一个标签,以bio三元标记法标注上述六类实体,则有'disease-i':1,'disease-b':2,'check-b':3,'check-i':4,'examine-i':5,'examine-b':6,'operation-b':7,'operation-i':8,'medicine-i':9,'medicine-b':10,'body-b':11,'body-i':12及o共13个类别,而测试集中无标签。为确保该训练过程每一轮输出的类别标签序列更正确,构建损失函数,将训练文本的训练集的类别标签序列和标签数据输入至损失函数中,计算损失值,并设定一个标准值作为设定阈值。通过每次的损失值与设定阈值比较,若损失值大于等于设定阈值,就迭代训练下一轮,直至损失值小于设定阈值,即认为标注模型crf层输出的序列是最优解。步骤5:以训练的标注模型作为实体识别模型,输入测试文本即可输出标注的类别标签序列;具体地,保存学习好的标注模型作为实体识别模型,以新的电子病历文本作为测试文本,选取300条作为测试集,输入至实体识别模型即可输出标注的类别标签序列,训练集和测试集的文本条数和准确率统计分别如表2所示:表2训练集和测试集的文本条数和准确率统计情况训练集测试集文本条数62921573准确率0.94870.8196由表2得知,经训练文本训练得到的标注模型识别的准确率较高,由此标注模型作为实体标注模型对测试集中实体识别的准确率也较高。显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1