CN111274820B - 一种基于神经网络的智能医疗命名实体识别方法和装置 - Google Patents

一种基于神经网络的智能医疗命名实体识别方法和装置 Download PDF

Info

Publication number
CN111274820B
CN111274820B CN202010105826.XA CN202010105826A CN111274820B CN 111274820 B CN111274820 B CN 111274820B CN 202010105826 A CN202010105826 A CN 202010105826A CN 111274820 B CN111274820 B CN 111274820B
Authority
CN
China
Prior art keywords
named entity
word
data set
medical
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010105826.XA
Other languages
English (en)
Other versions
CN111274820A (zh
Inventor
鹿文鹏
张若雨
于瑞
禹继国
贾瑞祥
成金勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qilu University of Technology
Original Assignee
Qilu University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qilu University of Technology filed Critical Qilu University of Technology
Priority to CN202010105826.XA priority Critical patent/CN111274820B/zh
Publication of CN111274820A publication Critical patent/CN111274820A/zh
Application granted granted Critical
Publication of CN111274820B publication Critical patent/CN111274820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records

Abstract

本发明公开了一种基于神经网络的智能医疗命名实体识别方法和装置,属于人工智能、自然语言处理技术领域,本发明要解决的技术问题为如何在有限的标注语料库上,设计出更为理想的机器学习模型,以便更深入地挖掘医疗命名实体的标注特征和规律,从而提高医疗命名实体标注的准确率,采用的技术方案为:该方法是利用三个卷积神经网络构建并行卷积神经网络,对医疗文本进行编码;再利用两个长短时记忆神经网络构建堆叠循环神经网络,对医疗文本进行编码;再分别将并行卷积神经网络输出的编码与堆叠循环神经网络输出的编码进行联接,得到优化后最终的文本编码向量;最后结合条件随机场模型,高效准确地识别医疗命名实体。

Description

一种基于神经网络的智能医疗命名实体识别方法和装置
技术领域
本发明涉及人工智能、自然语言处理技术领域,具体地说是一种基于神经网络的智能医疗命名实体识别方法和装置。
背景技术
医疗命名实体识别是指识别医疗文本中具有特定意义的实体。命名实体识别是自然语言处理领域中一项非常重要的任务,它是信息抽取、问答系统、机器翻译等众多自然语言处理任务的基础工作。
基于统计的命名实体识别方法是目前唯一能够真正应用于大规模医疗命名实体识别任务的方法。其效果主要受到三个因素的影响,具体如下:
一是对语料库的依赖比较大:到目前为止,可以用来建设和评估医疗命名实体识别系统的大规模通用语料库少之又少;
二是对特征选取的要求较高:此方法需要从文本中选择对该项任务有效的各种特征,并将这些特征加入到特征向量中;需要依据特定命名实体识别方法所面临的主要困难和特性,筛选出能有效反映该类实体特性的特征集合;对于医疗方向的文本来说,由于存在大量生僻字词,导致其比传统命名实体识别任务更加困难;
三是训练时间复杂性非常高:此方法有时会导致训练代价高得难以承受;目前,条件随机场是较为流行的一种命名实体识别方法,其提供了一个特征灵活、全局最优的标注框架,但它存在收敛速度慢、训练时间长等问题。
综上所述,由于以上不利因素的影响,导致现有的命名实体识别方法的效果难以继续提升。故如何在有限的标注语料库上,设计出更为理想的机器学习模型,以便更深入地挖掘医疗命名实体的标注特征和规律,从而提高医疗命名实体识别的准确率是目前亟待解决的关键技术问题。
发明内容
本发明的技术任务是提供一种基于神经网络的智能医疗命名实体识别方法和装置,来解决如何在有限的标注语料库上,设计出更为理想的机器学习模型,以便更深入地挖掘医疗命名实体的标注特征和规律,从而提高医疗命名实体识别的准确率的问题。
本发明的技术任务是按以下方式实现的,一种基于神经网络的智能医疗命名实体识别方法,该方法是利用三个卷积神经网络构建并行卷积神经网络,对医疗文本进行编码;再利用两个长短时记忆神经网络构建堆叠循环神经网络,对医疗文本进行编码;再分别将并行卷积神经网络输出的编码与堆叠循环神经网络输出的编码进行联接,得到优化后最终的文本编码向量;最后结合条件随机场(CRF)模型,高效准确地识别医疗命名实体;具体如下:
S1、构建医疗文本数据集;
S2、构建医疗命名实体识别的训练数据集;
S3、构建医疗命名实体识别模型;
S4、训练医疗命名实体识别模型:在步骤S2所得训练数据集上对步骤S3构建的医疗命名实体识别模型进行训练。
作为优选,所述步骤S1中的构建医疗文本数据集具体如下:
S101、获取原始病历数据集,具体如下:
S10101、自行整理标注数据集或者使用医疗命名实体识别评测竞赛的数据集,作为原始病历数据集;
S10102、原始病历数据集对每一条病历均进行人工标注,标出各个医疗命名实体的开始位置、结束位置和命名实体类型标签;
S102、对原始病历数据集进行预处理得到医疗病历文本预处理数据集:根据步骤S101中的人工标注信息,对原始病历数据集进行预处理,为命名实体插入标签,具体为:身份部位名称标为body,疾病名称标为dise,症状名称标为symp,治疗方案名称标为chec,药物名称标为cure;在命名实体与非命名实体之间以及非命名实体字符之间插入空格;
S103、对医疗病历文本预处理数据集进行细化处理,得到医疗病历文本细化处理数据集,具体为:对步骤S102所得的医疗病历文本预处理数据集的每一条记录中的每个字的标签进一步细化标注,标注规则是IOB,即命名实体的首字标为B(Begin)、中间字标为I(Intermediate)、剩余不属于任何命名实体的字标为O(Other);根据命名实体的类型和IOB标注规则,具体为:表示身体部位的两种字分别标为body-B和body-I;表示疾病名称的两种字分别标为dise-B和dise-I;表示独立症状名称的两种字分别标为symp-B和symp-I;表示治疗方案名称的两种字分别标为chec-B和chec-I,表示药物名称的两种字分别标为cure-B和cure-I;
S104、获取医疗病历文本数据集:对于步骤S103所得的医疗病历文本细化处理数据集中的每一条记录,将每个字与其对应的标签进行组合,字和标签之间用空格分隔,每个字彼此之间以换行标记分隔,得到医疗病历文本数据集。
作为优选,所述步骤S2中的构建医疗命名实体识别的训练数据集具体如下:
S201、对于步骤S1所得的医疗病历文本数据集中的每一条记录,分别采集其字序列和标签序列;
S202、对于长度为n的记录,其字序列以x'=[x'1…x'i…x'n]表示,标签序列以y'=[y'1…y'i…y'n]表示;
S203、将每一条字序列与其对应的标签序列组合在一起,即为一条训练样本,记为(x',y');
S204、所有的训练样本共同构成训练数据集(X',Y')。
作为优选,所述步骤S3中的构建医疗命名实体识别模型具体如下:
S301、构建字转换层:自行训练字向量数据或者使用预训练的字向量数据将病历文本的字序列转换为相应的字编号序列;
S302、构建标签转换层:自行定义标签转换表,将命名实体的类别标签O、B-body、I-body、B-chec、I-chec、B-cure、I-cure、B-dise、I-dise、B-symp、I-symp分别映射为0至10之间的11个数字编号;将病历文本的标签序列转换为相应的标签编号序列;
S303、构建输入层:当对医疗命名实体识别模型进行训练时,输入层中包括两个输入,即:对于每一条数据,对其字序列和标签序列分别使用步骤S301字映射转换层和步骤S302标签转换层处理后,得到字编号序列x=[x1…xi…xn]和标签编号序列y=[y1…yi…yn],可形式化为(x,y);
当使用医疗命名实体识别模型针对字序列进行标签预测时,输入只包含字编号序列;
S304、构建字向量嵌入层:根据步骤S301得到的预训练字向量数据,针对输入的字编号序列数据x=[x1…xi…xn],得到其向量表示x=(x1…xi…xn),其中,xi代表第i个字的字向量;
S305、构建多层联接的神经网络层,具体如下:
S30501、利用并行卷积神经网络对字向量序列进行处理;
S30502、利用堆叠循环神经网络对字向量序列进行处理;
S30503、将步骤S30501的并行卷积神经网络的编码输出与步骤S30502的堆叠循环网络的编码输出进行联接,得到多层联接编码初始表示;
S30504、将在步骤S30503得到的多层联接编码初始表示,送入TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示;
S306、构建预测层:将步骤S305所获得的多层联接编码表示送入条件随机场(CRF)层,以预测各个字的标签,即
Figure BDA0002387668380000041
条件随机场(CRF)层根据接收的多层联接编码表示,利用维特比算法自行解码,选择合理的概率转移路径,预测输出标签序列,即
Figure BDA0002387668380000042
更优地,所述步骤S30501中的利用并行卷积神经网络对字向量序列进行处理具体如下:
S3050101、将字向量序列(x1…xi…xn)作为并行卷积神经网络的输入;设置三个卷积神经网络,其维度为32,卷积核大小分别为3、4、5,分别表示为CNN3、CNN4、CNN5;三个卷积网络并行对字向量序列进行编码的过程描述如下:
C1=CNN3(x1…xi…xn);
C2=CNN4(x1…xi…xn);
C3=CNN5(x1…xi…xn);
S3050102、将三个卷积网络并行处理后的输出结果进行联接操作,描述为:C4=concatenate(C1,C2,C3);其中,concatenate表示将各字对应的编码输出进行联接处理;
S3050103、再次使用卷积操作对上述联接操作的输出进行维度调整,描述为:C=CNN(C4);其中,CNN表示维度为128、卷积核大小为5的卷积网络,C表示并行卷积神经网络最终输出的编码向量;
所述步骤S30502中利用堆叠循环神经网络对字向量序列进行处理,具体如下:
S3050201、对字向量序列(x1…xi…xn)使用维度为128的双向长短时记忆网络BiLSTM进行处理,描述为:L1=BiLSTM(x1…xi…xn);
S3050202、将步骤S3050201中维度为128的双向长短时记忆网络BiLSTM的输出结果送入维度为64的双向长短时记忆网络BiLSTM进行进一步地处理,从而得到堆叠循环神经网络最终输出的编码向量,描述为:L=BiLSTM(L1);
S3050203、步骤S3050201中的维度为128的双向长短时记忆网络BiLSTM和步骤S3050202中的维度为64的双向长短时记忆网络BiLSTM均设置dropout为0.5,有效避免过拟合;
所述步骤S30503中将步骤S30501的并行卷积神经网络的编码输出与步骤S30502的堆叠循环网络的编码输出进行联接,得到多层联接编码初始表示具体为:将步骤S30501的并行卷积神经网络的编码输出记作C,将步骤S30502的堆叠循环网络的编码输出记作L,则上述过程可描述为:E'=concatenate(C,L);
所述步骤S30504中将在步骤S30503得到的多层联接编码初始表示,送入TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示具体为:将步骤S30503的多层联接编码初始表示记为E',则该过程表示为:E=TimeDistributed(Dense(m))(E'),其中,m表示转换以后所得的每个字的向量维度。
更优地,所述步骤S4中的训练医疗命名实体识别模型具体如下:
S401、构建损失函数,具体如下:
S40101、由步骤S306可知,
Figure BDA0002387668380000051
为输入文本x=[x1…xi…xn]经过条件随机场(CRF)处理后得到的标签序列,而标签y=[y1…yi…yn]是真实标签;不同的标签序列对应着不同的标签转移路径;
S40102、在条件随机场(CRF)选择转移路径时,设定每一个可能的路径有一个分数值Pi,则对于所有n条可能的路径的总分数值为Pt=P1+P2+...+Pn
S40103、当第i条路径是真实的路径,记为PRealPath,那么PRealPath在所有的路径分数值之和中,应占据最大的比例,故在训练过程中,步骤S3所建立的医疗命名实体识别模型的参数将不断地被更新,以提高真实路径的分值所占的比重;
S40104、选择使用CRF loss function作为模型损失函数,此损失函数的公式为:
Figure BDA0002387668380000052
S402、优化训练模型:经过对多种优化算法进行测试,最终选择使用Adam作为优化算法,超参数均选择Keras中的默认值设置;在训练数据集上,对医疗命名实体识别模型进行优化训练。
一种基于神经网络的智能医疗命名实体识别装置,该装置包括,
医疗病历文本数据集构建单元,用于获得医疗病历文本数据集;
医疗命名实体识别的训练数据集构建单元,用于构建医疗命名实体识别的训练数据集;
医疗命名实体识别模型构建单元,用于完成医疗命名实体识别模型的搭建;医疗命名实体识别模型构建单元包括,
构建字转换层子单元,用于自行训练字向量数据或者使用预训练的字向量数据,将病历文本的字序列转换为相应的字编号序列;
构建标签转换层子单元,用于自行定义标签转换表,将命名实体的类别标签O、B-body、I-body、B-chec、I-chec、B-cure、I-cure、B-dise、I-dise、B-symp、I-symp分别映射为0至10之间的11个数字编号;将病历文本的标签序列转换为相应的标签编号序列;
构建输入层子单元,用于对每一条数据中字序列和标签序列分别使用字映射转换层和标签转换层处理后,得到字编号序列x=[x1…xi…xn]和标签编号序列y=[y1…yi…yn],形式化为(x,y);
构建字向量嵌入层子单元,用于根据预训练的字向量数据,构建字向量嵌入层;针对输入的字编号序列数据x=[x1…xi…xn],得到其向量表示x=(x1…xi…xn),其中,xi代表第i个字的字向量;
构建多层联接的神经网络层子单元,用于以字向量嵌入层子单元所得的字向量序列作为输入,先分别由并行卷积神经网络和堆叠循环神经网络进行编码处理;再对并行卷积神经网络的输出和堆叠循环神经网络的输出进行联接,从而生成待识别文本的多层联接编码初始表示;最后使用TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示;
构建预测层子单元,用于将构建多层联接的神经网络层子单元所获得的多层联接编码表示,送入条件随机场(CRF)层,以预测各个字的标签,即
Figure BDA0002387668380000061
医疗命名实体识别模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练。
作为优选,所述医疗病历文本数据集构建单元包括,
获取原始的病历数据集子单元,用于自行整理标注数据集或者使用医疗命名实体识别评测竞赛的数据集,作为原始的病历数据集;原始的病历数据集对每一条病历均进行人工标注,具体是标出各个医疗命名实体的开始位置、结束位置和命名实体类型标签;
预处理子单元,用于对原始病历数据集进行预处理,为命名实体插入标签,具体是:身份部位名称标为body,疾病名称标为dise,症状名称标为symp,治疗方案名称标为chec,药物名称标为cure;在命名实体与非命名实体之间以及非命名实体字符之间插入空格;
细化处理子单元,用于对医疗病历文本预处理数据集中的每一条记录进行细化处理,得到医疗病历文本细化处理数据集;对于记录中的每个字的标签进一步细化标注,标注规则是IOB,即命名实体的首字标为B(Begin)、中间字标为I(Intermediate)、其他不属于任何命名实体的字标为O(Other);根据命名实体的类型和IOB标注规则,将表示身体部位的两种字分别标为body-B、body-I,表示疾病名称的两种字分别标为dise-B、dise-I,表示独立症状名称的两种字分别标为symp-B、symp-I,表示治疗方案名称的两种字分别标为chec-B、chec-I,表示药物名称的两种字分别标为cure-B、cure-I;
生成医疗病历文本数据集子单元,用于对医疗病历文本细化处理数据集中的每一条记录,将每个字与其对应的标签进行组合,字和标签之间用空格分隔,每个字彼此之间以换行标记分隔,得到医疗病历文本数据集;
所述医疗命名实体识别的训练数据集构建单元包括,
字系列和标签系列采集子单元,用于对于医疗病历文本数据集构建单元所得的医疗病历文本数据集中的每一条记录,分别采集其字序列和标签序列;
字系列和标签系列表示单元,用于对于长度为n的记录,其字序列以x'=[x'1…x'i…x'n]表示,标签序列以y'=[y'1…y'i…y'n]表示;
字系列和标签系列组合子单元,用于将每一条字序列与其对应的标签序列组合在一起,即为一条训练样本,记为(x',y');
训练数据集构建子单元,用于将所有的训练样本共同构成训练数据集(X',Y');
所述医疗命名实体识别模型训练单元包括,
损失函数构建子单元,用于构建损失函数,选择使用CRF loss function作为模型损失函数,此损失函数的公式为:
Figure BDA0002387668380000071
模型优化训练子单元,用于在训练数据集上,训练并优化模型中的参数,从而减小模型的预测误差。
一种存储介质,其中存储有多条指令,所述指令由处理器加载,执行上述的基于神经网络的智能医疗命名实体识别方法的步骤。
一种电子设备,所述电子设备包括:
上述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
本发明的基于神经网络的智能医疗命名实体识别方法和装置具有以下优点:
(一)本发明能够充分发挥深度学习技术的优势,深入挖掘医疗文本中蕴含的编码特征,更为精准地进行医疗命名实体识别,能够在一定程度上解决医疗命名实体识别问题;
(二)本发明利用深度学习神经网络进行医疗领域的命名实体识别,避免了传统的基于统计的命名实体识别方法的局限性,使识别过程更加精简方便;
(三)针对卷积神经网络和循环神经网络各自的优势,本发明构建的模型将两种网络进行融合,更加充分地发挥了两者各自的优势,从而能够精准地识别出命名实体的位置;
(四)为了充分捕获上下文蕴含的局部依赖特征,本发明设置并行卷积神经网络模块,即利用三个卷积核大小不同的卷积神经网络同时对文本进行编码并联接,从而能够更全面地提取文本关键局部依赖特征信息;
(五)为了充分捕获上下文蕴含的长距离依赖特征,本发明设置堆叠循环神经网络模块,即利用两个长短时记忆神经网络依次对文本进行编码,能够更全面地提取文本的关键长距离依赖特征信息;
(六)本发明使用条件随机场(CRF)对文本的标签进行最终预测,避免了神经网络输出标签序列不合理的情况,能够使得标签顺序更为合理;
(七)本发明能够全面提取文本中蕴含的特征信息,并准确地识别医疗命名实体,具有较高的识别正确率,有效提高了医疗命名实体识别效果。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于神经网络的智能医疗命名实体识别方法的流程框图;
附图2为构建医疗病历文本数据集的流程框图;
附图3为构建智能医疗命名实体识别模型的流程框图;
附图4为多层联接的神经网络层的结构框图;
附图5为训练智能医疗命名实体识别模型的流程框图;
附图6为基于神经网络的智能医疗命名实体识别装置的结构框图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于神经网络的智能医疗命名实体识别方法和装置作以下详细地说明。
实施例1:
如附图1所示,本发明的基于神经网络的智能医疗命名实体识别方法,该方法是利用三个卷积神经网络构建并行卷积神经网络,对医疗文本进行编码;再利用两个长短时记忆神经网络构建堆叠循环神经网络,对医疗文本进行编码;再分别将并行卷积神经网络输出的编码与堆叠循环神经网络输出的编码进行联接,得到优化后最终的文本编码向量;最后结合条件随机场(CRF)模型,高效准确地识别医疗命名实体;具体如下:
S1、构建医疗文本数据集;如附图2所示,具体如下:
S101、获取原始病历数据集,具体如下:
S10101、自行整理标注数据集或者使用医疗命名实体识别评测竞赛的数据集,作为原始病历数据集;
S10102、原始病历数据集对每一条病历均进行人工标注,标出各个医疗命名实体的开始位置、结束位置和命名实体类型标签;
举例:本发明下载“全国知识图谱与语义计算大会CCKS 2018”提供的医疗命名实体识别评测竞赛的数据集,将其作为原始的病历数据集,其中包含了600份原始病历文本与相对应的标注文档。某份数据的病历文件和标注文档如表1所示;
表1
Figure BDA0002387668380000091
Figure BDA0002387668380000101
S102、对原始病历数据集进行预处理得到医疗病历文本预处理数据集:根据步骤S101中的人工标注信息,对原始病历数据集进行预处理,为命名实体插入标签,具体为:身份部位名称标为body,疾病名称标为dise,症状名称标为symp,治疗方案名称标为chec,药物名称标为cure;在命名实体与非命名实体之间以及非命名实体字符之间插入空格;
举例:对步骤S101中获得的病历数据进行预处理,得到医疗病历文本预处理数据集。为命名实体插入标签,具体操作是将表示身体部位的标签标记为body,表示疾病名称的标签标记为dise,表示独立症状名称的标签标记为symp,表示治疗方案名称的标签标记为chec,表示药物名称的标签标记为cure。同时,在命名实体与非命名实体之间,以及非命名实体字符之间插入空格。
以表1中的病历文件,进行上述预处理后,可得到:
上腹部(body)闷痛(symp)不适,腹部(body)C T提示肝(body)占位,患者3月前因“直肠(body)癌”于在我院于全麻下行直肠癌根治术(chec)(DIXON术(chec)),手术过程顺利,术后给予抗感染及营养支持治疗,患者恢复好,切口愈合良好。,术后病理示:直肠(body)腺癌(中低度分化),浸润溃疡型,面积3.5*2C M,侵达外膜。两端切线另送“近端”、“远端”及环周底部切除面未查见癌。肠壁(body)一站(1 0个)、中间组(8个)淋巴结(body)未查见癌。,免疫组化染色示:E R C C 1弥漫(+)、T S少部分弱(+)、S Y N(-)、C G A(-)。术后查无化疗禁忌后给予3周期化疗,,方案为:奥沙利铂(cure)1 5 0M G D 1。
S103、对医疗病历文本预处理数据集进行细化处理,得到医疗病历文本细化处理数据集,具体为:对步骤S102所得的医疗病历文本预处理数据集的每一条记录中的每个字的标签进一步细化标注,标注规则是IOB,即命名实体的首字标为B(Begin)、中间字标为I(Intermediate)、剩余不属于任何命名实体的字标为O(Other);根据命名实体的类型和IOB标注规则,具体为:表示身体部位的两种字分别标为body-B和body-I;表示疾病名称的两种字分别标为dise-B和dise-I;表示独立症状名称的两种字分别标为symp-B和symp-I;表示治疗方案名称的两种字分别标为chec-B和chec-I,表示药物名称的两种字分别标为cure-B和cure-I;
举例:对于步骤S102中的示例文本的第一句“上腹部(body)闷痛(symp)不适,腹部(body)C T提示肝(body)占位”,该句以步骤S103的要求进行细化标注处理后,可得:“上(body-B)腹(body-I)部(body-I)闷(symp-B)痛(symp-I)不(O)适(O),(O)腹部(body)C(O)T(O)提(O)示(O)肝(body-B)占(O)位(O)”。
S104、获取医疗病历文本数据集:对于步骤S103所得的医疗病历文本细化处理数据集中的每一条记录,将每个字与其对应的标签进行组合,字和标签之间用空格分隔,每个字彼此之间以换行标记分隔,得到医疗病历文本数据集。
举例:以步骤S103所得的“上(body-B)腹(body-I)部(body-I)闷(symp-B)痛(symp-I)不(O)适(O),(O)腹部(body)C(O)T(O)提(O)示(O)肝(body-B)占(O)位(O)”为例,对其进行步骤S104的处理后,可得如表2所示数据。
表2
Figure BDA0002387668380000111
Figure BDA0002387668380000121
S2、构建医疗命名实体识别的训练数据集;具体如下:
S201、对于步骤S1所得的医疗病历文本数据集中的每一条记录,分别采集其字序列和标签序列;
S202、对于长度为n的记录,其字序列以x'=[x'1…x'i…x'n]表示,标签序列以y'=[y'1…y'i…y'n]表示;
S203、将每一条字序列与其对应的标签序列组合在一起,即为一条训练样本,记为(x',y');
S204、所有的训练样本共同构成训练数据集(X',Y')。
举例:
对于步骤S104中的示例文本,其字序列可表示为:
x’=[‘上’,‘腹’,‘部’,‘闷’,‘痛’,‘不’,‘适’,‘,’,‘腹’,‘部’,‘C’,‘T’,‘提’,‘示’,‘肝’,‘占’,‘位’]
其标签序列可表示为:
y'=[‘body-B’,‘body-I’,‘body-I’,‘symp-B’,‘symp-I’,‘O’,‘O’,‘O’,‘body-B’,‘body-I’,‘O’,‘O’,‘O’,‘O’,‘body-B’,‘O’,‘O’]
S3、构建医疗命名实体识别模型;如附图3所示,具体如下:
S301、构建字转换层:自行训练字向量数据或者使用预训练的字向量数据将病历文本的字序列转换为相应的字编号序列;
举例:本发明使用在互联网上下载的300维预训练字向量数据,下载地址为:https://github.com/liuhuanyong/ChineseEmbedding/blob/master/model/token_vec_300.bin。
然后,根据该字向量数据,将字序列转换为字编号序列,举例:
对于步骤S104中所示的样本数据“上,腹,部,闷,痛,不,适,,,腹,部,C,T,提,示,肝,占,位”,将其进行转换后可得:[8,226,455,132,127,66,35,53,226,455,1036,1200,63,1190,209,61,59]。
S302、构建标签转换层:自行定义标签转换表,将命名实体的类别标签O、B-body、I-body、B-chec、I-chec、B-cure、I-cure、B-dise、I-dise、B-symp、I-symp分别映射为0至10之间的11个数字编号;将病历文本的标签序列转换为相应的标签编号序列;
标签映射转换表如下:
标签 O B-body I-body B-chec I-chec B-cure I-cure B-dise I-dise
映射 0 1 2 3 4 5 6 7 8
标签 B-symp I-symp
映射 9 10  
举例:
对于步骤S104中所示的样本数据“body-B,body-I,body-I,symp-B,symp-I,O,O,O,body-B,body-I,O,O,O,O,body-B,O,O”,其进行转换后可得:[1,2,2,9,10,0,0,0,1,2,0,0,0,0,1,0,0]。
S303、构建输入层:当对医疗命名实体识别模型进行训练时,输入层中包括两个输入,即:对于每一条数据,对其字序列和标签序列分别使用步骤S301字映射转换层和步骤S302标签转换层处理后,得到字编号序列x=[x1…xi…xn]和标签编号序列y=[y1…yi…yn],可形式化为(x,y);
当使用医疗命名实体识别模型针对字序列进行标签预测时,输入只包含字编号序列;
举例:
对于步骤S301和步骤S302所示的例子,当对模型进行训练时,其在输入层中,字编号序列x=[8,226,455,132,127,66,35,53,226,455,1036,1200,63,1190,209,61,59],标签编号序列y=[1,2,2,9,10,0,0,0,1,2,0,0,0,0,1,0,0],两者构成一组输入数据:([8,226,455,132,127,66,35,53,226,455,1036,1200,63,1190,209,61,59],[1,2,2,9,10,0,0,0,1,2,0,0,0,0,1,0,0])。
S304、构建字向量嵌入层:根据步骤S301得到的预训练字向量数据,由针对输入的字编号序列数据x=[x1…xi…xn],得到其向量表示x=(x1…xi…xn),其中,xi代表第i个字的字向量;
举例:在Keras中,对于上面描述的代码实现如下所示:
Figure BDA0002387668380000141
其中,self.VOCAB_SIZE是字表大小;self.EMBEDDING_DIM是字向量的维度大小,即300;weights=[self.embedding_matrix]表示使用预训练的字向量矩阵初始化字向量嵌入层的权重;self.embedding_matrix即步骤3.1中的预训练的字向量;input_length是输入序列的长度;self.TIME_STAMPS定义为150。
S305、构建多层联接的神经网络层,如附图4所示,该层以步骤S304所得的字向量序列作为输入;首先,分别由并行卷积神经网络和堆叠循环神经网络进行编码处理;然后,对并行卷积神经网络的输出和堆叠循环神经网络的输出进行联接,从而生成待识别文本的多层联接编码初始表示;最后,使用TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示;具体如下:
S30501、利用并行卷积神经网络对字向量序列进行处理;本发明设置三个输出维度均为32,卷积核大小分别为3、4、5的卷积神经网络,对字向量序列同时进行编码;然后,将编码结果进行联接;然后,送入输出维度为128,卷积核大小为5的卷积层进行维度调整。每个卷积神经网络进行卷积前均对输入数据做一个padding,padding的补全方式选择same,目的是让对输入数据进行卷积操作之后保持大小不变。具体如下:
S3050101、将字向量序列(x1…xi…xn)作为并行卷积神经网络的输入;设置三个卷积神经网络,其维度为32,卷积核大小分别为3、4、5,分别表示为CNN3、CNN4、CNN5;三个卷积网络并行对字向量序列进行编码的过程描述如下:
C1=CNN3(x1…xi…xn);
C2=CNN4(x1…xi…xn);
C3=CNN5(x1…xi…xn);
S3050102、将三个卷积网络并行处理后的输出结果进行联接操作,描述为:C4=concatenate(C1,C2,C3);其中,concatenate表示将各字对应的编码输出进行联接处理;
S3050103、再次使用卷积操作对上述联接操作的输出进行维度调整,描述为:C=CNN(C4);其中,CNN表示维度为128、卷积核大小为5的卷积网络,C表示并行卷积神经网络最终输出的编码向量;
举例:在Keras2.0.8版本下,具体示例代码如下:
C1=Conv1D(32,3,padding='same',strides=1,activation='relu')(embeder_cnn)C2=Conv1D(32,4,padding='same',strides=1,activation='relu')(embeder_cnn)C3=Conv1D(32,5,padding='same',strides=1,activation='relu')(embeder_cnn)C4=concatenate([C1,C2,C3],axis=-1)
C=Conv1D(128,5,padding='same',strides=1,activation='relu')(C4)
S30502、利用堆叠循环神经网络对字向量序列进行处理;本发明设置一个输出维度为128的双向长短时记忆网络BiLSTM,对字向量序列进行编码处理;然后,将编码后的结果再送入另一个输出维度为64的双向长短时记忆网络,进行编码处理。为避免过拟合,两层网络均设置dropout为0.5;具体如下:
S3050201、对字向量序列(x1…xi…xn)使用维度为128的双向长短时记忆网络BiLSTM进行处理,描述为:L1=BiLSTM(x1…xi…xn);
S3050202、将步骤S3050201中维度为128的双向长短时记忆网络BiLSTM的输出结果送入维度为64的双向长短时记忆网络BiLSTM进行进一步地处理,从而得到堆叠循环神经网络最终输出的编码向量,描述为:L=BiLSTM(L1);
S3050203、步骤S3050201中的维度为128的双向长短时记忆网络BiLSTM和步骤S3050202中的维度为64的双向长短时记忆网络BiLSTM均设置dropout为0.5,有效避免过拟合;
举例:在Keras2.0.8版本下,具体示例代码如下:
L1=Bidirectional(LSTM(128,return_sequences=True))(embeder)
L1=Dropout(0.5)(L1)
L=Bidirectional(LSTM(64,return_sequences=True))(L1)
L=Dropout(0.5)(L)
S30503、将步骤S30501的并行卷积神经网络的编码输出与步骤S30502的堆叠循环网络的编码输出进行联接,得到多层联接编码初始表示;具体为:将步骤S30501的并行卷积神经网络的编码输出记作C,将步骤S30502的堆叠循环网络的编码输出记作L,则上述过程可描述为:E'=concatenate(C,L);
举例:在Keras2.0.8版本下,具体示例实例代码如下:E’=concatenate([C,L],axis=-1)
S30504、将在步骤S30503得到的多层联接编码初始表示,送入TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示;具体为:将步骤S30503的多层联接编码初始表示记为E',则该过程表示为:E=TimeDistributed(Dense(m))(E'),其中,m表示转换以后所得的每个字的向量维度。
举例:在Keras2.0.8版本下,具体示例实例代码如下:E=TimeDistributed(Dense(self.NUM_CLASSES))(E’),其中self.NUM_CLASSES表示类别标签的数量。
S306、构建预测层:将步骤S305所获得的多层联接编码表示送入条件随机场(CRF)层,以预测各个字的标签,即
Figure BDA0002387668380000171
条件随机场(CRF)层根据接收的多层联接编码表示,利用维特比算法自行解码,选择最合理的概率转移路径,预测输出最可能的标签序列,即
Figure BDA0002387668380000172
举例:在Keras2.0.8版本下,具体示例代码如下:
crf_layer=CRF(self.NUM_CLASSES,sparse_target=True)
crf=crf_layer(E)
其中,CRF表示keras中的CRF层;self.NUM_CLASSES表示类别标签的数量;E表示在步骤S305中所获得的多层联接编码表示。
S4、训练医疗命名实体识别模型:在步骤S2所得训练数据集上对步骤S3构建的医疗命名实体识别模型进行训练;如附图5所示,具体如下:
S401、构建损失函数,具体如下:
S40101、由步骤S306可知,
Figure BDA0002387668380000173
为输入文本x=[x1…xi…xn]经过条件随机场CRF处理后得到的最可能标签序列,而最优标签y=[y1…yi…yn]是真实标签;不同的标签序列对应着不同的标签转移路径;
S40102、在CRF选择最优转移路径时,设定每一个可能的路径有一个分数值Pi,则对于所有n条可能的路径的总分数值为Pt=P1+P2+...+Pn
S40103、当第i条路径是真实的路径,记为PRealPath,那么PRealPath在所有的路径分数值之和中,应占据最大的比例,故在训练过程中,步骤S3所建立的医疗命名实体识别模型的参数将不断地被更新,以提高真实路径的分值所占的比重;
S40104、选择使用CRF loss function作为模型损失函数,此损失函数的公式为:
Figure BDA0002387668380000174
S402、优化训练模型:经过对多种优化算法进行测试,最终选择使用Adam作为优化算法,超参数均选择Keras中的默认值设置;在训练数据集上,对医疗命名实体识别模型进行优化训练。
举例说明:上面描述的优化算法及其设置在Keras中使用代码表示为:model.compile('Adma',loss=crf_layer.loss_function,metrics=[crf_layer.Precision]);
本发明与现有技术中的模型在CCKS 2018数据集上的实验结果的如表3所示:
表3
Figure BDA0002387668380000181
表3中的CRF模型是传统的命名实体识别模型,使用条件随机场(CRF)直接求条件概率分布得到最大概率,从而对序列进行标记;BiLSTM-CRF模型将双向长短时记忆网络BiLSTM和CRF结合在一起,先用用BiLSTM先提取特征,然后用CRF层来预测标签;BiGRU-CRF模型与BiLSTM-CRF模型类似,只是将BiLSTM替换为了BiGRU;CNN-BiLSTM-CRF模型利用CNN对BiLSTM-CRF模型进行改进,将CNN的输出作为BiLSTM的输入,再加入CRF以保证预测标签的合法性。
另,对于命名实体识别任务,通常使用查准率(Precision)、查全率(Recall)、F1-score值来评价模型的性能。
故从表3的实验数据可以看出,本发明所提出的神经网络模型在Precision、Recall和F1-score三个指标上均明显优于表3中其它三个基线模型,即本发明取得了优于当前常用模型的结果。
实施例2:
如附图6所示,本发明的基于神经网络的智能医疗命名实体识别装置,该装置包括,
医疗病历文本数据集构建单元,用于获得医疗病历文本数据集;医疗病历文本数据集构建单元包括,
获取原始的病历数据集子单元,用于自行整理标注数据集或者使用医疗命名实体识别评测竞赛的数据集,作为原始的病历数据集;原始的病历数据集对每一条病历均进行人工标注,具体是标出各个医疗命名实体的开始位置、结束位置和命名实体类型标签;
预处理子单元,用于对原始病历数据集进行预处理,为命名实体插入标签,具体是:身份部位名称标为body,疾病名称标为dise,症状名称标为symp,治疗方案名称标为chec,药物名称标为cure;在命名实体与非命名实体之间以及非命名实体字符之间插入空格;
细化处理子单元,用于对医疗病历文本预处理数据集中的每一条记录进行细化处理,得到医疗病历文本细化处理数据集;对于记录中的每个字的标签进一步细化标注,标注规则是IOB,即命名实体的首字标为B(Begin)、中间字标为I(Intermediate)、其他不属于任何命名实体的字标为O(Other);根据命名实体的类型和IOB标注规则,将表示身体部位的两种字分别标为body-B、body-I,表示疾病名称的两种字分别标为dise-B、dise-I,表示独立症状名称的两种字分别标为symp-B、symp-I,表示治疗方案名称的两种字分别标为chec-B、chec-I,表示药物名称的两种字分别标为cure-B、cure-I;
生成医疗病历文本数据集子单元,用于对医疗病历文本细化处理数据集中的每一条记录,将每个字与其对应的标签进行组合,字和标签之间用空格分隔,每个字彼此之间以换行标记分隔,得到医疗病历文本数据集;
医疗命名实体识别的训练数据集构建单元,用于构建医疗命名实体识别的训练数据集;医疗命名实体识别的训练数据集构建单元包括,
字系列和标签系列采集子单元,用于对于医疗病历文本数据集构建单元所得的医疗病历文本数据集中的每一条记录,分别采集其字序列和标签序列;
字系列和标签系列表示单元,用于对于长度为n的记录,其字序列以x'=[x'1…x'i…x'n]表示,标签序列以y'=[y'1…y'i…y'n]表示;
字系列和标签系列组合子单元,用于将每一条字序列与其对应的标签序列组合在一起,即为一条训练样本,记为(x',y');
训练数据集构建子单元,用于将所有的训练样本共同构成训练数据集(X',Y');
医疗命名实体识别模型构建单元,用于完成医疗命名实体识别模型的搭建;医疗命名实体识别模型构建单元包括,
构建字转换层子单元,用于自行训练字向量数据或者使用预训练的字向量数据,将病历文本的字序列转换为相应的字编号序列;
构建标签转换层子单元,用于自行定义标签转换表,将命名实体的类别标签O、B-body、I-body、B-chec、I-chec、B-cure、I-cure、B-dise、I-dise、B-symp、I-symp分别映射为0至10之间的11个数字编号;将病历文本的标签序列转换为相应的标签编号序列;
构建输入层子单元,用于对每一条数据中字序列和标签序列分别使用字映射转换层和标签转换层处理后,得到字编号序列x=[x1…xi…xn]和标签编号序列y=[y1…yi…yn],形式化为(x,y);
构建字向量嵌入层子单元,用于根据预训练的字向量数据,构建字向量嵌入层;针对输入的字编号序列数据x=[x1…xi…xn],得到其向量表示x=(x1…xi…xn),其中,xi代表第i个字的字向量;
构建多层联接的神经网络层子单元,用于以字向量嵌入层子单元所得的字向量序列作为输入,先分别由并行卷积神经网络和堆叠循环神经网络进行编码处理;再对并行卷积神经网络的输出和堆叠循环神经网络的输出进行联接,从而生成待识别文本的多层联接编码初始表示;最后使用TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示;
构建预测层子单元,用于将构建多层联接的神经网络层子单元所获得的多层联接编码表示,送入条件随机场(CRF)层,以预测各个字的标签,即
Figure BDA0002387668380000201
医疗命名实体识别模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;医疗命名实体识别模型训练单元包括,
损失函数构建子单元,用于构建损失函数,选择使用CRF loss function作为模型损失函数,此损失函数的公式为:
Figure BDA0002387668380000202
模型优化训练子单元,用于在训练数据集上,训练并优化模型中的参数,从而减小模型的预测误差。
实施例3:
本发明的存储介质,其中存储有多条指令,指令由处理器加载,执行实施例1的基于神经网络的智能医疗命名实体识别方法的步骤。
实施例4:
本发明的电子设备,所述电子设备包括:
实施例3的存储介质;以及
处理器,用于执行存储介质中的指令。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (7)

1.一种基于神经网络的智能医疗命名实体识别方法,其特征在于,该方法是利用三个卷积神经网络构建并行卷积神经网络,对医疗文本进行编码;再利用两个长短时记忆神经网络构建堆叠循环神经网络,对医疗文本进行编码;再分别将并行卷积神经网络输出的编码与堆叠循环神经网络输出的编码进行联接,得到优化后最终的文本编码向量;最后结合条件随机场模型,高效准确地识别医疗命名实体;具体如下:
S1、构建医疗文本数据集;
S2、构建医疗命名实体识别的训练数据集;
S3、构建医疗命名实体识别模型;具体如下:
S301、构建字转换层:自行训练字向量数据或者使用预训练的字向量数据将病历文本的字序列转换为相应的字编号序列;
S302、构建标签转换层:自行定义标签转换表,将命名实体的类别标签O、B-body、I-body、B-chec、I-chec、B-cure、I-cure、B-dise、I-dise、B-symp、I-symp分别映射为0至10之间的11个数字编号;将病历文本的标签序列转换为相应的标签编号序列;
S303、构建输入层:当对医疗命名实体识别模型进行训练时,输入层中包括两个输入,即:对于每一条数据,对其字序列和标签序列分别使用步骤S301字映射转换层和步骤S302标签转换层处理后,得到字编号序列x=[x1…xi…xn]和标签编号序列y=[y1…yi…yn],可形式化为(x,y);
当使用医疗命名实体识别模型针对字序列进行标签预测时,输入只包含字编号序列;
S304、构建字向量嵌入层:根据步骤S301得到的预训练字向量数据,针对输入的字编号序列数据x=[x1…xi…xn],得到其向量表示x=(x1…xi…xn),其中,xi代表第i个字的字向量;
S305、构建多层联接的神经网络层,具体如下:
S30501、利用并行卷积神经网络对字向量序列进行处理;具体如下:
S3050101、将字向量序列(x1…xi…xn)作为并行卷积神经网络的输入;设置三个卷积神经网络,其维度为32,卷积核大小分别为3、4、5,分别表示为CNN3、CNN4、CNN5;三个卷积网络并行对字向量序列进行编码的过程描述如下:
C1=CNN3(x1…xi…xn);
C2=CNN4(x1…xi…xn);
C3=CNN5(x1…xi…xn);
S3050102、将三个卷积网络并行处理后的输出结果进行联接操作,描述为:C4=concatenate(C1,C2,C3);其中,concatenate表示将各字对应的编码输出进行联接处理;
S3050103、再次使用卷积操作对上述联接操作的输出进行维度调整,描述为:C=CNN(C4);其中,CNN表示维度为128、卷积核大小为5的卷积网络,C表示并行卷积神经网络最终输出的编码向量;
S30502、利用堆叠循环神经网络对字向量序列进行处理;具体如下:
S3050201、对字向量序列(x1…xi…xn)使用维度为128的双向长短时记忆网络BiLSTM进行处理,描述为:L1=BiLSTM(x1…xi…xn);
S3050202、将步骤S3050201中维度为128的双向长短时记忆网络BiLSTM的输出结果送入维度为64的双向长短时记忆网络BiLSTM进行进一步地处理,从而得到堆叠循环神经网络最终输出的编码向量,描述为:L=BiLSTM(L1);
S3050203、步骤S3050201中的维度为128的双向长短时记忆网络BiLSTM和步骤S3050202中的维度为64的双向长短时记忆网络BiLSTM均设置dropout为0.5,有效避免过拟合;
S30503、将步骤S30501的并行卷积神经网络的编码输出与步骤S30502的堆叠循环网络的编码输出进行联接,得到多层联接编码初始表示;具体为:将步骤S30501的并行卷积神经网络的编码输出记作C,将步骤S30502的堆叠循环网络的编码输出记作L,则上述过程可描述为:E'=concatenate(C,L);
S30504、将在步骤S30503得到的多层联接编码初始表示,送入TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示;具体为:将步骤S30503的多层联接编码初始表示记为E',则该过程表示为:E=TimeDistributed(Dense(m))(E'),其中,m表示转换以后所得的每个字的向量维度;
S306、构建预测层:将步骤S305所获得的多层联接编码表示送入条件随机场层,以预测各个字的标签,即
条件随机场层根据接收的多层联接编码表示,利用维特比算法自行解码,选择合理的概率转移路径,预测输出标签序列,即
S4、训练医疗命名实体识别模型:在步骤S2所得训练数据集上对步骤S3构建的医疗命名实体识别模型进行训练;具体如下:
S401、构建损失函数,具体如下:
S40101、由步骤S306可知,为输入文本x=[x1…xi…xn]经过条件随机场处理后得到的标签序列,而标签y=[y1…yi…yn]是真实标签;不同的标签序列对应着不同的标签转移路径;
S40102、在条件随机场选择转移路径时,设定每一个可能的路径有一个分数值Pi,则对于所有n条可能的路径的总分数值为Pt=P1+P2+...+Pn
S40103、当第i条路径是真实的路径,记为PRealPath,那么PRealPath在所有的路径分数值之和中,应占据最大的比例,故在训练过程中,步骤S3所建立的医疗命名实体识别模型的参数将不断地被更新,以提高真实路径的分值所占的比重;
S40104、选择使用CRF loss function作为模型损失函数,此损失函数的公式为:
S402、优化训练模型:经过对多种优化算法进行测试,最终选择使用Adam作为优化算法,超参数均选择Keras中的默认值设置;在训练数据集上,对医疗命名实体识别模型进行优化训练。
2.根据权利要求1所述的基于神经网络的智能医疗命名实体识别方法,其特征在于,所述步骤S1中的构建医疗文本数据集具体如下:
S101、获取原始病历数据集,具体如下:
S10101、自行整理标注数据集或者使用医疗命名实体识别评测竞赛的数据集,作为原始病历数据集;
S10102、原始病历数据集对每一条病历均进行人工标注,标出各个医疗命名实体的开始位置、结束位置和命名实体类型标签;
S102、对原始病历数据集进行预处理得到医疗病历文本预处理数据集:根据步骤S101中的人工标注信息,对原始病历数据集进行预处理,为命名实体插入标签,具体为:身份部位名称标为body,疾病名称标为dise,症状名称标为symp,治疗方案名称标为chec,药物名称标为cure;在命名实体与非命名实体之间以及非命名实体字符之间插入空格;
S103、对医疗病历文本预处理数据集进行细化处理,得到医疗病历文本细化处理数据集,具体为:对步骤S102所得的医疗病历文本预处理数据集的每一条记录中的每个字的标签进一步细化标注,标注规则是IOB,即命名实体的首字标为B、中间字标为I、剩余不属于任何命名实体的字标为O;根据命名实体的类型和IOB标注规则,具体为:表示身体部位的两种字分别标为body-B和body-I;表示疾病名称的两种字分别标为dise-B和dise-I;表示独立症状名称的两种字分别标为symp-B和symp-I;表示治疗方案名称的两种字分别标为chec-B和chec-I,表示药物名称的两种字分别标为cure-B和cure-I;
S104、获取医疗病历文本数据集:对于步骤S103所得的医疗病历文本细化处理数据集中的每一条记录,将每个字与其对应的标签进行组合,字和标签之间用空格分隔,每个字彼此之间以换行标记分隔,得到医疗病历文本数据集。
3.根据权利要求1所述的基于神经网络的智能医疗命名实体识别方法,其特征在于,所述步骤S2中的构建医疗命名实体识别的训练数据集具体如下:
S201、对于步骤S1所得的医疗病历文本数据集中的每一条记录,分别采集其字序列和标签序列;
S202、对于长度为n的记录,其字序列以x'=[x'1…x'i…x'n]表示,标签序列以y'=[y'1…y'i…y'n]表示;
S203、将每一条字序列与其对应的标签序列组合在一起,即为一条训练样本,记为(x',y');
S204、所有的训练样本共同构成训练数据集(X',Y')。
4.一种基于神经网络的智能医疗命名实体识别装置,其特征在于,该装置采用如权利要求1-3中任一项的一种基于神经网络的智能医疗命名实体识别方法,该装置包括,
医疗病历文本数据集构建单元,用于获得医疗病历文本数据集;
医疗命名实体识别的训练数据集构建单元,用于构建医疗命名实体识别的训练数据集;
医疗命名实体识别模型构建单元,用于完成医疗命名实体识别模型的搭建;医疗命名实体识别模型构建单元包括,
构建字转换层子单元,用于自行训练字向量数据或者使用预训练的字向量数据,将病历文本的字序列转换为相应的字编号序列;
构建标签转换层子单元,用于自行定义标签转换表,将命名实体的类别标签O、B-body、I-body、B-chec、I-chec、B-cure、I-cure、B-dise、I-dise、B-symp、I-symp分别映射为0至10之间的11个数字编号;将病历文本的标签序列转换为相应的标签编号序列;
构建输入层子单元,用于对每一条数据中字序列和标签序列分别使用字映射转换层和标签转换层处理后,得到字编号序列x=[x1…xi…xn]和标签编号序列y=[y1…yi…yn],形式化为(x,y);
构建字向量嵌入层子单元,用于根据预训练的字向量数据,构建字向量嵌入层;针对输入的字编号序列数据x=[x1…xi…xn],得到其向量表示x=(x1…xi…xn),其中,xi代表第i个字的字向量;
构建多层联接的神经网络层子单元,用于以字向量嵌入层子单元所得的字向量序列作为输入,先分别由并行卷积神经网络和堆叠循环神经网络进行编码处理;再对并行卷积神经网络的输出和堆叠循环神经网络的输出进行联接,从而生成待识别文本的多层联接编码初始表示;最后使用TimeDistributed包装器和Dense全连接层进行转换,得到最终的多层联接编码表示;
构建预测层子单元,用于将构建多层联接的神经网络层子单元所获得的多层联接编码表示,送入条件随机场层,以预测各个字的标签,即医疗命名实体识别模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练。
5.根据权利要求4所述的基于神经网络的智能医疗命名实体识别装置,其特征在于,所述医疗病历文本数据集构建单元包括,
获取原始的病历数据集子单元,用于自行整理标注数据集或者使用医疗命名实体识别评测竞赛的数据集,作为原始的病历数据集;原始的病历数据集对每一条病历均进行人工标注,具体是标出各个医疗命名实体的开始位置、结束位置和命名实体类型标签;
预处理子单元,用于对原始病历数据集进行预处理,为命名实体插入标签,具体是:身份部位名称标为body,疾病名称标为dise,症状名称标为symp,治疗方案名称标为chec,药物名称标为cure;在命名实体与非命名实体之间以及非命名实体字符之间插入空格;
细化处理子单元,用于对医疗病历文本预处理数据集中的每一条记录进行细化处理,得到医疗病历文本细化处理数据集;对于记录中的每个字的标签进一步细化标注,标注规则是IOB,即命名实体的首字标为B、中间字标为I、其他不属于任何命名实体的字标为O;根据命名实体的类型和IOB标注规则,将表示身体部位的两种字分别标为body-B、body-I,表示疾病名称的两种字分别标为dise-B、dise-I,表示独立症状名称的两种字分别标为symp-B、symp-I,表示治疗方案名称的两种字分别标为chec-B、chec-I,表示药物名称的两种字分别标为cure-B、cure-I;
生成医疗病历文本数据集子单元,用于对医疗病历文本细化处理数据集中的每一条记录,将每个字与其对应的标签进行组合,字和标签之间用空格分隔,每个字彼此之间以换行标记分隔,得到医疗病历文本数据集;
所述医疗命名实体识别的训练数据集构建单元包括,
字系列和标签系列采集子单元,用于对于医疗病历文本数据集构建单元所得的医疗病历文本数据集中的每一条记录,分别采集其字序列和标签序列;
字系列和标签系列表示单元,用于对于长度为n的记录,其字序列以x'=[x'1…x'i…x'n]表示,标签序列以y'=[y'1…y'i…y'n]表示;
字系列和标签系列组合子单元,用于将每一条字序列与其对应的标签序列组合在一起,即为一条训练样本,记为(x',y');
训练数据集构建子单元,用于将所有的训练样本共同构成训练数据集(X',Y');
所述医疗命名实体识别模型训练单元包括,
损失函数构建子单元,用于构建损失函数,选择使用CRF loss function作为模型损失函数,此损失函数的公式为:
模型优化训练子单元,用于在训练数据集上,训练并优化模型中的参数,从而减小模型的预测误差。
6.一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行权利要求1-3中任一项所述的基于神经网络的智能医疗命名实体识别方法的步骤。
7.一种电子设备,其特征在于,所述电子设备包括:
权利要求6所述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
CN202010105826.XA 2020-02-20 2020-02-20 一种基于神经网络的智能医疗命名实体识别方法和装置 Active CN111274820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010105826.XA CN111274820B (zh) 2020-02-20 2020-02-20 一种基于神经网络的智能医疗命名实体识别方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010105826.XA CN111274820B (zh) 2020-02-20 2020-02-20 一种基于神经网络的智能医疗命名实体识别方法和装置

Publications (2)

Publication Number Publication Date
CN111274820A CN111274820A (zh) 2020-06-12
CN111274820B true CN111274820B (zh) 2023-04-07

Family

ID=70997895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010105826.XA Active CN111274820B (zh) 2020-02-20 2020-02-20 一种基于神经网络的智能医疗命名实体识别方法和装置

Country Status (1)

Country Link
CN (1) CN111274820B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797629B (zh) * 2020-06-23 2022-07-29 平安医疗健康管理股份有限公司 医疗文本数据的处理方法、装置、计算机设备和存储介质
CN112257449B (zh) * 2020-11-13 2023-01-03 腾讯科技(深圳)有限公司 命名实体识别方法、装置、计算机设备和存储介质
CN113239703B (zh) * 2021-05-24 2023-05-02 清华大学深圳国际研究生院 基于多元因素融合的深层逻辑推理金融文本分析方法及系统
CN113886602B (zh) * 2021-10-19 2023-08-01 四川大学 一种基于多粒度认知的领域知识库实体识别方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569998A (zh) * 2016-10-27 2017-04-19 浙江大学 一种基于Bi‑LSTM、CNN和CRF的文本命名实体识别方法
CN109918644A (zh) * 2019-01-26 2019-06-21 华南理工大学 一种基于迁移学习的中医健康咨询文本命名实体识别方法
CN110196967A (zh) * 2019-06-05 2019-09-03 腾讯科技(深圳)有限公司 基于深度转换架构的序列标注方法和装置
CN110348008A (zh) * 2019-06-17 2019-10-18 五邑大学 基于预训练模型和微调技术的医疗文本命名实体识别方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3454260A1 (en) * 2017-09-11 2019-03-13 Tata Consultancy Services Limited Bilstm-siamese network based classifier for identifying target class of queries and providing responses thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569998A (zh) * 2016-10-27 2017-04-19 浙江大学 一种基于Bi‑LSTM、CNN和CRF的文本命名实体识别方法
CN109918644A (zh) * 2019-01-26 2019-06-21 华南理工大学 一种基于迁移学习的中医健康咨询文本命名实体识别方法
CN110196967A (zh) * 2019-06-05 2019-09-03 腾讯科技(深圳)有限公司 基于深度转换架构的序列标注方法和装置
CN110348008A (zh) * 2019-06-17 2019-10-18 五邑大学 基于预训练模型和微调技术的医疗文本命名实体识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Long S, Yua R, Yi L, et al.A Method of Chinese Named Entity Recognition Based on CNN-BILSTM-CRF Model.International Conference of Pioneering Computer Scientists, Engineers and Educators.2018,161-175. *
Xu Zhang, Wenpeng Lu, Fangfang Li, Xueping Peng, Ruoyu Zhang.Deep Feature Fusion Model for Sentence Semantic Matching.Computers, Materials &amp Continua.2019,601-616. *

Also Published As

Publication number Publication date
CN111274820A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111274820B (zh) 一种基于神经网络的智能医疗命名实体识别方法和装置
CN110032648B (zh) 一种基于医学领域实体的病历结构化解析方法
CN109522546B (zh) 基于上下文相关的医学命名实体识别方法
CN108959252B (zh) 基于深度学习的半监督中文命名实体识别方法
CN110032739B (zh) 中文电子病历命名实体抽取方法及系统
CN110969020B (zh) 基于cnn和注意力机制的中文命名实体识别方法、系统及介质
CN113853606A (zh) 采用深度学习的名称实体识别
CN113597611A (zh) 命名实体识别系统的实体类型识别
CN109871538A (zh) 一种中文电子病历命名实体识别方法
CN107004140B (zh) 文本识别方法和计算机程序产品
US11288324B2 (en) Chart question answering
CN111753081A (zh) 基于深度skip-gram网络的文本分类的系统和方法
CN108804423B (zh) 医疗文本特征提取与自动匹配方法和系统
CN110909549B (zh) 对古汉语进行断句的方法、装置以及存储介质
CN111222318B (zh) 基于双通道双向lstm-crf网络的触发词识别方法
CN111506709B (zh) 实体链接方法、装置、电子设备和存储介质
CN108427717A (zh) 一种基于逐步扩展的字母类语系医疗文本关系抽取方法
CN110276052A (zh) 一种古汉语自动分词及词性标注一体化方法及装置
CN112949308A (zh) 基于功能结构的中文电子病历命名实体识别方法及系统
CN113160917B (zh) 一种电子病历实体关系抽取方法
CN114841167A (zh) 一种基于图神经网络多嵌入联合的临床命名实体识别方法
CN110390001A (zh) 一种观点型机器阅读理解的实现方法、装置
CN113469163A (zh) 一种基于智能纸笔的医疗信息记录方法和装置
US20220318506A1 (en) Method and apparatus for event extraction and extraction model training, device and medium
CN117194616A (zh) 一种垂域知识图谱的知识查询方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant