CN110459282A - 序列标注模型训练方法、电子病历处理方法及相关装置 - Google Patents
序列标注模型训练方法、电子病历处理方法及相关装置 Download PDFInfo
- Publication number
- CN110459282A CN110459282A CN201910625236.7A CN201910625236A CN110459282A CN 110459282 A CN110459282 A CN 110459282A CN 201910625236 A CN201910625236 A CN 201910625236A CN 110459282 A CN110459282 A CN 110459282A
- Authority
- CN
- China
- Prior art keywords
- sequence
- training sample
- labelling model
- semantic
- layer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Epidemiology (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Machine Translation (AREA)
Abstract
本发明实施例涉及自然语言处理技术领域,提供一种序列标注模型训练方法、电子病历处理方法及相关装置,在训练预先建立的序列标注模型时,通过初始特征层输出训练样本的特征向量序列后,先将特征向量序列输入第一循环神经网络层得到特征序列,再将特征序列输入注意力层得到语义序列。也就是,先采用第一循环神经网络层捕捉序列的上下文信息,再引入注意力层进一步学习序列中的长距离特征信息,这样在利用训练得到的序列标注模型进行序列标注时,能够有效提高准确度。
Description
技术领域
本发明实施例涉及自然语言处理技术领域,具体而言,涉及一种序列标注模型训练方法、电子病历处理方法及相关装置。
背景技术
自然语言处理是一门集语言学、计算机科学、数学于一体的科学,主要研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。序列标注是自然语言处理中的一项基本任务,绝大多数的自然语言处理任务都能转换为序列标注任务,序列标注任务包括分词任务、词性标注、命名实体识别,关键词抽取,词义角色标注等等。
传统技术中,通常采用隐马尔可夫模型(Hidden Markov Model,HMM)、最大熵隐马尔科夫模型、条件随机场(Conditional random field,CRF)等来将解决序列标注问题,这些模型均需要人工寻找特征,故序列标注的准确度不足。
发明内容
本发明实施例的目的在于提供一种序列标注模型训练方法、电子病历处理方法及相关装置,用以解决现有的序列标注准确度低的问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种序列标注模型训练方法,所述方法包括:获取训练样本及所述训练样本对应的标注结果;将所述训练样本输入预先建立的序列标注模型,利用所述序列标注模型的初始特征层输出所述训练样本的特征向量序列,所述特征向量序列包括所述训练样本中每个元素的特征表示,所述特征表示包括字嵌入和/或词嵌入;将所述特征向量序列输入所述序列标注模型的第一循环神经网络层,得到特征序列;将所述特征序列输入所述序列标注模型的注意力层,得到语义序列;将所述语义序列输入所述序列标注模型的标签预测层,得到所述训练样本的预测结果;依据所述标注结果和所述预测结果对所述序列标注模型进行参数更新,得到训练后的序列标注模型。
第二方面,本发明实施例还提供了一种电子病历处理方法,所述方法包括:获取电子病历文本;对所述电子病历文本进行预处理,得到表征训练样本的多个待识别序列,所述待识别序列包括表征训练样本中每个元素的多个词;将每一所述待识别序列输入利用上述的序列标注模型训练方法训练后的序列标注模型,得到表征预测结果的所有预测实体修饰序列及每个预测实体修饰序列的序列得分;将序列得分最高的预测实体修饰序列作为每一所述待识别序列的实体修饰序列,所述实体修饰序列包括所述待识别序列中每个词的实体修饰信息;依据所有待识别序列的实体修饰序列,得到所述电子病历文本对应的辅助诊断结果。
第三方面,本发明实施例还提供了一种序列标注模型训练装置,所述装置包括样本获取模块、处理模块、特征序列获得模块、语义序列获得模块、预测结果获得模块及参数更新模块。其中,样本获取模块用于获取训练样本及所述训练样本对应的标注结果;处理模块用于将所述训练样本输入预先建立的序列标注模型,利用所述序列标注模型的初始特征层输出所述训练样本的特征向量序列,所述特征向量序列包括所述训练样本中每个元素的特征表示,所述特征表示包括字嵌入和/或词嵌入;特征序列获得模块用于将所述特征向量序列输入所述序列标注模型的第一循环神经网络层,得到特征序列;语义序列获得模块用于将所述特征序列输入所述序列标注模型的注意力层,基于注意力机制得到语义序列;预测结果获得模块用于将所述语义序列输入所述序列标注模型的标签预测层,得到所述训练样本的预测结果;参数更新模块用于依据所述标注结果和所述预测结果对所述序列标注模型进行参数更新,得到训练后的序列标注模型。
第四方面,本发明实施例还提供了一种电子病历处理装置,所述装置包括文本获取模块、预处理模块、第一执行模块、第二执行模块及结果获得模块。其中,文本获取模块用于获取电子病历文本;预处理模块用于对所述电子病历文本进行预处理,得到表征训练样本的多个待识别序列,所述待识别序列包括表征训练样本中每个元素的多个词;第一执行模块,用于将每一所述待识别序列输入利用上述的序列标注模型训练方法训练后的序列标注模型,得到表征预测结果的所有预测实体修饰序列及每个预测实体修饰序列的序列得分;第二执行模块用于将序列得分最高的预测实体修饰序列作为每一所述待识别序列的实体修饰序列,所述实体修饰序列包括所述待识别序列中每个词的实体修饰信息;结果获得模块用于依据所有待识别序列的实体修饰序列,得到所述电子病历文本对应的辅助诊断结果。
第五方面,本发明实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器上述的序列标注模型训练方法或者电子病历处理方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的序列标注模型训练方法或者电子病历处理方法。
相对现有技术,本发明实施例提供的一种序列标注模型训练方法、电子病历处理方法及相关装置,在训练预先建立的序列标注模型时,通过初始特征层输出训练样本的特征向量序列后,先将特征向量序列输入第一循环神经网络层得到特征序列,再将特征序列输入注意力层得到语义序列。也就是,先采用第一循环神经网络层捕捉序列的上下文信息,再引入注意力层进一步学习序列中的长距离特征信息,这样在利用训练得到的序列标注模型进行序列标注时,能够有效提高准确度。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的序列标注模型训练方法的流程图。
图2示出了本发明实施例提供的序列标注模型的结构示意图。
图3示出了LSTM的结构示意图。
图4示出了本发明实施例提供的电子病历处理的流程图。
图5示出了本发明实施例提供的序列标注模型训练装置的方框示意图。
图6示出了本发明实施例提供的电子病历处理装置的方框示意图。
图7示出了本发明实施例提供的电子设备的方框示意图。
图标:100-序列标注模型训练装置;101-样本获取模块;102-第一处理模块;103-特征序列获得模块;104-语义序列获得模块;105-第二处理模块;106-预测结果获得模块;107-参数更新模块;200-电子病历处理装置;201-文本获取模块;202-预处理模块;203-第一执行模块;204-第二执行模块;205-结果获得模块;20-电子设备;21-处理器;22-存储器;23-总线。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
分词标注、词性标注、命名实体识别、依存句法分析、时间序列分析等序列标注任务是自然语言处理领域的基础任务。以命名实体识别为例,其旨在识别文本中的人名、地名、组织机构名称等专有名词和有意义的时间、日期等短语。序列标注任务作为信息抽取中的基础任务,其识别效果对于后续任务有很大影响。
目前在序列标注任务中常用的模型主要分为传统机器学习模型和深度学习模型两类。传统机器学习模型主要有HMM模型、最大熵隐马尔科夫模型、CRF模型等,其中CRF模型的应用最为广泛。但是,传统机器学习模型都是基于概率统计学建立的算法,在序列标注任务中需要人工寻找特征并添加重要的外部特征,导致准确度低,同时,传统机器学习模型无法学习到序列的长距离特征信息。
深度学习模型主要有卷积神经网络(Convolutional Neural Networks,CNN)、空洞卷积神经网络(Dilated Convolutions Neural Network,DCNN)、迭代空洞卷积神经网络(Iteration Dilated Convolutions Neural Network,IDCNN)、循环神经网络(RecurrentNeural Networks,RNN)、长短期记忆网络(Long Short-Term Memory,LSTM)、双向长短期记忆网络(Bi-directional Long Short-Term Memory,BiLSTM)等。
与传统机器学习模型相比,深度学习模型是端到端的,不需要人工寻找特征,在序列标注中能取得更好的效果,但是,CNN及CNN变体(例如,DCNN、IDCNN等)的感受野有限,感受野指的是CNN及改进的CNN中每一层输出的特征图上的一个点在输入图片上映射的区域大小,例如,CNN包括2层卷积核为3*3的卷积层,CNN的输入图片大小为5×5、输出图片大小为1×1,第一层卷积层输出的特征图为3×3,该特征图上一个点在输入图片上映射的区域大小为3×3,则第一层卷积层的感受野为3;第二层卷积层输出的特征图为1×1,该特征图上一个点在输入图片上映射的区域大小为5×5,则第二层卷积层的感受野为5。当序列长度较长时,CNN及CNN变体不能很好的学习序列的长距离特征信息;RNN及RNN变体(例如,LSTM、BiLSTM等)能够处理可变长度的输入向量,并在处理过程中能够有长时期的记忆,故被广泛用于序列标注任务,但对于长距离依赖的序列,序列标注的准确度依然不足。
为了解决上述问题,本实施例构建序列标注模型,该序列标注模型在RNN及RNN变体的基础上,增加了注意力层,注意力层能够学习到序列中的长距离特征信息,可以有效提高序列标注的准确度。
本实施例可以用于解决分词标注、词性标注、命名实体识别、关键词抽取、词义角色标注、实体修饰识别、实体关系抽取等序列标注任务,下面以命名实体识别为例进行详细说明。
请参照图1,图1示出了本发明实施例提供的序列标注模型训练方法的流程图。序列标注模型训练方法可以应用于电子设备20,该序列标注模型训练方法包括以下步骤:
步骤S101,获取训练样本及训练样本对应的标注结果。
在本实施例中,首先建立训练样本集,训练样本集包括多个训练样本、以及每个训练样本的标注结果,训练样本及训练样本对应的标注结果可以用(xi,yi)表示,xi表示训练样本,xi的长度可以为n,即,xi=(xi1,xi2,…,xin);yi表示标注结果,yi的类别个数为n-classes,yi∈{y1,y2,…,yn_classes}。训练样本是用于进行模型训练的线性输入序列,例如,小明在北京大学的燕园看了中国男篮的一场比赛;标注结果是针对具体的序列标注任务,人工为训练样本中的每个词打上标签集合中的某个标签,标签集合Y={y1,y2,…,yn _classes}。以命名实体识别为例,定义标签集合为:
LabelSet={BA,MA,EA,BO,MO,EO,BP,MP,EP,SA,SO,SP,O}
其中,BA代表地址(Address)的首部,MA代表地址的中部,EA代表地址的尾部;BO代表机构名(Org)的首部,MO代表机构名的中部,EO代表机构名的尾部;BP代表人名(PersonName)的首部,MP代表人名的中部,EP代表人名的尾部;SA代表单个的地址;SO代表单个的机构名;SP代表单个的人名;O代表非实体。
例如,针对训练样本“小明在北京大学的燕园看了中国男篮的一场比赛”,该序列中“小明”为人名,“北京大学”和“中国男篮”为机构名,“燕园”为地名,则得到标注结果为“小/BP明/EP在/O北/BO京/MO大/MO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O”。
作为一种实施方式,训练样本可以从用户实时传输的文本数据中获取,例如,用户通过电子设备20的输入界面输入的文本数据,或者用户通过与电子设备20通信连接的其他终端设备(例如,手机、平板、笔记本电脑等)发送的文本数据;训练样本也可以从网络下载的文本数据中获取,例如,通过网络下载的论文、教材、小说等的文本数据;训练样本还可以是接入各个电子化的系统获取到的文本数据,例如,接入电子医疗系统获取到的电子病历文本等。
在本实施例中,在获取到训练样本及训练样本对应的标注结果后,开始对预先建立的序列标注模型进行训练,请参照图2,本实施例提供的序列标注模型包括初始特征层、第一循环神经网络层、注意力层、第二循环神经网络层及标签预测层,初始特征层用于输出训练样本中每个元素的特征表示,第一循环神经网络层用于学习序列的上下文信息得到特征序列,注意力层用于基于注意力机制得到包含训练样本中每个元素的语义信息的语义序列,第二循环神经网络层用于学习语义序列的上下文信息,标签预测层用于输出训练样本的预测结果,下面通过步骤S102~S106进行详细介绍。
需要指出的是,上述序列标注模型中的第二循环神经网络层不是必需的,也就是,在通过注意力层学习到语义序列后,可以直接将语义序列输入标签预测层得到训练样本的预测结果。
步骤S102,将训练样本输入预先建立的序列标注模型,利用序列标注模型的初始特征层输出训练样本的特征向量序列,特征向量序列包括训练样本中每个元素的特征表示,特征表示包括字嵌入和/或词嵌入。
在本实施例中,特征向量序列包括训练样本中每个元素的特征表示,如果训练样本为中文,则训练样本中的每个元素可以是训练样本中的每个字或者词语;如果训练样本为英文,则训练样本中的每个元素可以是训练样本中的每个单词。特征向量序列可以表示为e1、e2、…、en,其中,et∈Rn_dim,t=1,2,…,n,n_dim表示每个元素的特征表示的长度。
在自然语言处理中,得到序列中每个元素的特征表示的方法,一般有字嵌入、词嵌入、字嵌入和词嵌入的结合等。针对不同的序列标注任务,可以选择不同的嵌入方法,例如,在分词任务中,由于目标是对序列进行分词,故不能采用词嵌入;在命名实体识别中,可以采用字嵌入、词嵌入、字嵌入和词嵌入的结合等。
因此,将训练样本输入预先建立的序列标注模型之后,序列标注模型的初始特征层可以输出训练样本的特征向量序列,具体过程为:将训练样本输入初始特征层,得到训练样本中每个元素的字嵌入和/或词嵌入,并将每个元素的字嵌入和/或词嵌入作为每个元素的特征表示,即,每个元素的特征表示可以包括每个元素的字嵌入和/或词嵌入。
也就是说,将训练样本输入初始特征层后,初始特征层先对训练样本进行分词处理,得到训练样本中各个独立的元素,这些元素按照各自在训练样本中出现的先后顺序排列,例如,训练样本为“小明在北京大学的燕园看了中国男篮的一场比赛”,将其分词得到“小/明/在/北/京/大/学/的/燕/园/看/了/中/国/男/篮/的/一/场/比/赛/”;然后,初始特征层根据各个独立的元素的内容,将每个元素向量化,得到每个元素的字嵌入和/或词嵌入,每个元素的字嵌入和/或词嵌入即为每个元素的特征表示,例如,“燕”的字嵌入为[0 00 0 ...],“园”的字嵌入为[0 0 0 1 ...],即,“燕”的特征表示为[0 0 0 0 ...],“园”的特征表示为[0 0 0 1 ...]。
对每个元素进行向量化的方法主要有两种:一种是随机初始化,即随机的产生一组数据作为每个元素的字嵌入和/或词嵌入;另一种是采用预训练的嵌入初始化,即通过已经训练好的语言模型得到每个元素的字嵌入和/或词嵌入,一般情况下,随机初始化的效果不如预训练的嵌入初始化,语言模型可以是Word2Vec、GloVe等。
步骤S103,将特征向量序列输入序列标注模型的第一循环神经网络层,得到特征序列。
在本实施例中,通过初始特征层输出训练样本的特征向量序列之后,将特征向量序列输入第一循环神经网络层,利用第一循环神经网络层学习特征向量序列的上下文信息,得到训练样本中每个元素的序列向量,所有元素的序列向量构成特征序列。第一循环神经网络层可以包括RNN及RNN变体,RNN变体可以包括LSTM、BiLSTM、门控循环单元(GatedRecurrent Unit,GRU)、双向门控循环单元(Bi-directional Gated Recurrent Unit,BiGRU),或其它RNN变体等,由于RNN会出现梯度消失问题,即,无法正常的进行模型训练,故通常采用LSTM、BiLSTM、GRU、BiGRU或其它RNN变体。
作为一种实施方式,第一循环神经网络层可以包括第一BiLSTM,请参照图2,第一BiLSTM包括第一前向LSTM、第一后向LSTM和第一合并网络,此时,将特征向量序列输入序列标注模型的第一循环神经网络层,得到特征序列的过程,可以包括:
首先,将特征向量序列输入第一BiLSTM,利用第一前向LSTM和第一后向LSTM分别学习特征向量序列的上文信息和下文信息,得到训练样本中每个元素的前向序列特征和后向序列特征。也就是,第一BiLSTM的输入为特征向量序列e1、e2、…、en,假设第一BiLSTM的输出的特征序列为u1、u2、…、un,第一前向LSTM的输出向量序列为第一后向LSTM的输出向量序列为第一前向LSTM和第一后向LSTM的输出维度均为h。
也就是,第一前向LSTM按照顺序从前向后对输入的特征向量序列进行学习,得到每个元素的前向序列特征,即,
其中,f表示前向,t=1,2,…,n,表示当前元素的前向序列特征,表示第一前向LSTM学习到的前一元素的前向序列特征,it表示特征序列向量。
第一后向LSTM按照顺序从后向前对输入的特征向量序列进行学习,得到每个元素的后向序列特征,即,
其中,b表示后向,t=1,2,…,n,表示当前元素的后向序列特征,表示第一后向LSTM学习到的前一个元素的后向序列特征。
然后,通过第一合并网络将同一元素的前向序列特征和后向序列特征进行合并,得到每个元素的序列向量,即,
其中,t=1,2,…,n,ut∈R2h。
一般地,上述(1)~(3)式,可以合并为:
ut=BiLSTM(ut-1,it) (4)
下面对LSTM进行简单介绍,LSTM的结构如图3所示,假设LSTM的输入序列向量为x=(x1,x2,…,xn),则对于xt,具体的计算过程如下:
其中,ht表示输入序列向量中经过LSTM计算后序列的第t个元素的输出向量表示,ht-1表示输入序列向量中经过LSTM计算后序列的第t-1个元素的输出向量表示;W和b表示待学习的参数;符号[]表示向量的合并,如向量a=(1,2,3),向量b=(4,5,6),则[a,b]=(1,2,3,4,5,6);符号·表示矩阵的点乘,即对应位置数字相乘;σ代表的是sigmod函数,即f(x)=1/((1+e(-x)));tanh表示的是双曲正切函数,即f(x)=((ex-e(-x)))/((ex+e(-x)))。
一般来说,上述公式(5)可以简化为:
ht=LSTM(ht-1,xt) (6)
步骤S104,将特征序列输入序列标注模型的注意力层,得到语义序列。
在本实施例中,语义信息是反映对应元素的语义的向量,这里的语义是对应元素在训练样本中表达的语义,也就是说,每个元素的语义信息是该元素在训练样本的语境中结合上下文信息反映的语义。例如,“火龙果在北方是稀罕东西”和“不给玩就算了,我才不稀罕那个玩具”这两个序列中均包含“稀罕”这一元素,但是这两个“稀罕”有着不同的语义,第一个的语义是稀奇,第二个的语义是喜爱。
而对于长距离依赖的序列,同一元素可能会出现多次,如上述举例中的“稀罕”,每次出现时的语义可能不同,这就需要结合上下文信息确定出每次出现时的语义,并根据语义进行正确的序列标注。为了解决这一问题,本实施例在深度学习模型的基础上,增加注意力层,注意力层能够学习到序列中的长距离特征信息,可以有效提高序列标注的准确度。
采用注意力层对第一循环神经网络层输出的特征序列进一步学习,得到包含训练样本中每个元素的语义信息,所有元素的语义信息构成语义序列。假设注意力层输出的语义序列为v=(v1,v2,…,vn),则将第一BiLSTM输出的特征序列u1、u2、…、un输入序列标注模型的注意力层,基于注意力机制得到语义序列的过程,可以包括:
首先,将特征序列输入注意力层,得到训练样本中当前元素与每个元素的注意力权重,即,
αtk=ut TWauk (7)
其中,Wa为注意力层的参数且Wa∈Rh×h,vt∈Rh,t=1,2,…,n,k=1,2,…,n;αtk为训练样本中当前元素t与每个元素k的注意力权重,ut为当前元素t的序列向量,uk为每个元素k的序列向量,例如,当前元素为待训练样本中的第1个元素,则得到该第1个元素与每个元素的注意力权重依次为α11、α12、…、α1n;当前元素为待训练样本中的第2个元素,则得到该第2个元素与每个元素的注意力权重依次为α21、α22、…、α2n等。
然后,依据当前元素与每个元素的注意力权重,对特征序列进行加权,得到当前元素的语义信息,即,
其中,vt为当前元素的语义信息,uk为特征序列中每个元素k的序列向量。
在本实施例中,为了进一步提高序列标注的准确度,还可以在序列标注模型中设置第二循环神经网络层,第二循环神经网络层用于对注意力层输出的语义序列v=(v1,v2,…,vn)进行学习,因此,本实施例提供的序列标注模型训练方法还可以包括步骤S104。
步骤S105,将语义序列输入第二循环神经网络层,利用第二循环神经网络层学习语义序列的上下文信息。
在本实施例中,通过注意力层得到语义序列之后,还可以将语义序列输入第二循环神经网络层,利用第二循环神经网络层进一步学习语义序列的上下文信息,第二循环神经网络层可以包括RNN及RNN变体,RNN变体可以包括LSTM、BiLSTM、GRU、BiGRU,或其它RNN变体等,由于RNN会出现梯度消失问题,即,无法正常的进行模型训练,故通常采用LSTM、BiLSTM、GRU、BiGRU或其它RNN变体。
作为一种实施方式,第二循环神经网络层包括第二BiLSTM,第二BiLSTM包括第二前向LSTM、第二后向LSTM和第二合并网络,此时,将语义序列输入第二循环神经网络层,利用第二循环神经网络层学习语义序列的上下文信息的过程,可以包括:将语义序列输入第二BiLSTM,利用第二前向LSTM和第二后向LSTM分别学习语义序列的上文信息和下文信息,并通过第二合并网络合并学习到的上文信息和下文信息。
也就是,第二BiLSTM的输入为语义序列v=(v1,v2,…,vn),假设第二BiLSTM的输出向量序列为l1、l2、…、ln,第二前向LSTM的输出向量序列为第二后向LSTM的输出向量序列为第二前向LSTM和第二后向LSTM的输出维度均为h。
具体来说,第二前向LSTM按照顺序从前向后对输入的语义序列进行学习,得到输出向量序列第二后向LSTM按照顺序从后向前对输入的语义序列进行学习,得到输出向量序列第二合并网络对第二前向LSTM的输出向量序列和第二后向LSTM的输出向量序列进行合并,得到第二BiLSTM的输出向量序列l1、l2、…、ln,即,
其中,f表示前向,t=1,2,…,n,表示当前元素的前向序列特征,表示第二前向LSTM学习到的前一元素的前向序列特征,it表示语义序列;b表示后向,表示当前元素的后向序列特征,表示第二后向LSTM学习到的前二个元素的后向序列特征,lt∈R2h。
本领域技术人员能够理解,上述关于第二循环神经网络层的描述是示例性的而非限制性的,在另一些实施例中,序列标注模型可以不包含第二循环神经网络层,也就是,本实施例提供的序列标注模型训练方法可以跳过步骤S105。
步骤S106,将语义序列输入序列标注模型的标签预测层,得到训练样本的预测结果。
在本实施例中,如果序列标注模型不包含第二循环神经网络层,则利用注意力层得到语义序列v=(v1,v2,…,vn)之后,将语义序列v=(v1,v2,…,vn)输入标签预测层,利用标签预测层得到训练样本的预测结果;如果序列标注模型包含第二循环神经网络层,则利用第二循环神经网络层学习语义序列的上下文信息,得到输出向量序列l1、l2、…、ln之后,将输出向量序列l1、l2、…、ln输入标签预测层,利用标签预测层得到训练样本的预测结果,下述实施例以序列标注模型不包含第二循环神经网络层为例进行描述。
此时,标签预测层可以包括前馈神经网络层(feed-forward)、或者包括前馈神经网络层+CRF层,预测结果包括所有预测序列和每个预测序列的序列得分,预测序列包括训练样本中每个元素的预测标签,序列得分包括训练样本中每个元素被预测为一个预设标签的概率之和。
作为一种实施方式,标签预测层包括前馈神经网络层+CRF层,此时,将语义序列输入序列标注模型的标签预测层,得到训练样本的预测结果的过程,可以包括:
首先,利用前馈神经网络层对语义序列进行学习,得到所有预测序列及每个预测序列的序列得分。以命名实体识别为例,预测序列包括每个元素的预测标签BA/MA/EA/BO/MO/EO/BP/MP/EP/SA/SO/SP/O,输出得分包括待训练序列中的每个词被预测为标签集合LabelSet={BA,MA,EA,BO,MO,EO,BP,MP,EP,SA,SO,SP,O}中一个预设标签的概率之和。
假设前馈神经网络层的输出向量序列为o1、o2、…、on,则
ot=softmax(Wtvt+bt) (10)
其中,Wt和bt是需要学习的参数,Wt∈R2h×n_classes,bt∈Rn_classes,ot∈Rn_classes,t=1,2,…,n。
ot的向量长度为n-classes,记作otk表示训练样本xi的第t个元素xit被预测为预设标签yk的概率,即p(yit=yk)=otk。因此,对于训练样本xi,其预测序列可以用yi=(yi1,yi2,…,yin)表示,同时,前馈神经网络层得到的预测序列yi=(yi1,yi2,…,yin)的序列得分为:
其中,式(11)的隐含假设为:预测序列中任意两个预测标签是相互独立的,即,yil与yik是相互独立的,l=1,2,…,n,k=1,2,…,n,n≠k。
以命名实体识别为例,针对训练样本“小明在北京大学的燕园看了中国男篮的一场比赛”,前馈神经网络层得到的部分预测序列及其序列得分如下:
y1={小/BP明/BP在/O北/BO京/MO大/MO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S1=6.5;
y2={小/BP明/EP在/O北/BO京/BO大/BO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S1=5.5;
y3={小/BP明/BP在/O北/BO京/BO大/MO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S1=4.5。
然后,将每个预测序列的序列得分输入CRF层,通过CRF层引入概率转移矩阵对每个预测序列的序列得分进行修正,其中,概率转移矩阵表征由一个预设标签转移到另一个预设标签的概率。以命名实体识别为例,概率转移矩阵可以用于确定训练样本中前一个词的预测标签为BA、MA、EA、BO、MO、EO、BP、MP、EP、SA、SO、SP、O时,后一个词的预测标签为BA/MA/EA/BO/MO/EO/BP/MP/EP/SA/SO/SP/O的概率,例如,当前一个词的预测标签为BO时,后一个词的预测标签不可能为BO,即,由BO转移到BO的概率为0。
在CRF层需要学习标签的概率转移矩阵A,Aij表示由标签yi转移到标签yj的转移概率,即
Aij=p(yit=yj|yit-1=yi) (12)
故,对于训练样本xi,其预测序列yi=(yi1,yi2,…,yin)的转移得分为:
其中,y0和yin+1分别代表训练样本的起始(start)和结束(end),式(13)的隐含条件为:当前元素的标签yit只与其前一个元素的标签yit-1有关,即p(yit|yi1,yi2,…,yit-1)=p(yit|yit-1)。
因此,对于训练样本xi,CRF层引入概率转移矩阵修正后的序列得分为:
以命名实体识别为例,针对训练样本“小明在北京大学的燕园看了中国男篮的一场比赛”,CRF层引入概率转移矩阵A后的部分预测序列及其转移得分如下:
y1={小/BP明/BP在/O北/BO京/MO大/MO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S2=3;
y2={小/BP明/EP在/O北/BO京/BO大/BO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S2=2;
y3={小/BP明/EP在/O北/BO京/BO大/BO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S2=1。
因此,对于训练样本“小明在北京大学的燕园看了中国男篮的一场比赛”,CRF层引入概率转移矩阵修正后的部分预测序列及其序列得分如下:
y1={小/BP明/BP在/O北/BO京/MO大/MO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S=9.5;
y2={小/BP明/EP在/O北/BO京/BO大/BO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S=7.5;
y3={小/BP明/EP在/O北/BO京/BO大/BO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O},S=5.5。
步骤S107,依据标注结果和预测结果对序列标注模型进行参数更新,得到训练后的序列标注模型。
在本实施例中,将训练样本输入序列标注模型得到预测结果后,依据标注结果和预测结果,按照梯度下降算法对序列标注模型进行参数更新,得到训练后的序列标注模型,具体过程可以包括:
首先,依据预测结果和标注结果,获取损失函数;
在本实施例中,损失函数用于衡量序列标注模型得到的预测序列与标注结果的不一致程度,损失函数越小,表明序列标注模型的性能越好,可以定义损失函数为:
其中,yi表示训练样本xi的标注结果,S(xi,yi)表示标注结果yi的总得分,以命名实体识别为例,对于训练样本“小明在北京大学的燕园看了中国男篮的一场比赛”,假设其标注结果“小/BP明/EP在/O北/BO京/MO大/MO学/EO的/O燕/BA园/EA看/O了/O中/BO国/MO男/MO篮/EO的/O一/O场/O比/O赛/O”的总得分为10;表示训练样本xi的所有预测序列,表示对每个预测序列的序列得分进行求和。
然后,计算所述损失函数的梯度,并依据所述损失函数的梯度更新所述序列标注模型的参数;
在本实施例中,可以通过梯度下降法来计算损失函数的梯度,确定是否需要更新序列标注模型中第一循环神经网络层的参数W和b、注意力层的参数Wa、以及CRF层的概率转移矩阵A=[Aij],如果序列标注模型包括第二循环神经网络层,则需要更新的参数还包括二循环神经网络层的参数W和b;若需要更新序列标注模型中各个网络层的参数,则循环获取预测结果并计算损失函数,直到损失函数达到最小值。
最后,当所述损失函数满足预设收敛条件时,停止参数更新,得到训练后的序列标注模型。
在本实施例中,预设收敛条件可以是根据经验设定的迭代次数(例如,1500次)或者最小值(例如,0.05),当损失函数满足预设收敛条件时,停止序列标注模型的参数更新,得到训练后的序列标注模型。
完成序列标注模型的训练之后,可以利用训练后的序列标注模型进行序列标注任务,例如,进行分词、词性标注、命名实体识别、实体修饰识别、实体关系抽取等任务,序列标注任务可以应用在机器翻译、智能客服、医疗、农业等领域,下面以序列标注任务在电子病历领域的应用为例进行描述。
随着社会的发展,电子医疗系统得到了迅速普及,大量医疗相关的信息以电子病历(Electronic Medical Records,EMR)的形式存储下来。电子病历是指医务人员在医疗活动过程中,使用医疗机构的信息系统生成的面向患者个体的数字化医疗记录,包含了关于病人个体健康信息的全面、详实、专业、即时、准确的描述。电子病历通常由结构化数据和非结构化数据组成,结构化数据包括医院名称、就诊时间、科室、医生姓名等能够自动生成的数据;非结构化数据主要是医务人员以自由文本形式记载的病理信息,可以包括主诉、现病史、病程记录、病历小结等。
采用序列标注模型对电子病历进行分析和挖掘,可以从中获得大量的医疗知识,且这些知识可应用于临床决策支持和个性化医疗健康信息服务等方面,例如,某患者的电子病历中记录着“自带胸片示左下肺症病变”,对该电子病历进行命名实体识别,可以得到实体“胸片”和“左下肺症病变”,二者的实体类别分别为检查手段和疾病;对该电子病历进行关系抽取,可以得到“胸片”和“左下肺症病变”的关系为:“胸片”这种检查手段证实了“左下肺症病变”这种疾病的发生;对该电子病历进行实体修饰识别,可以得到“左下肺症病变”这一疾病的发生是确定的等。
下面以利用序列标注模型进行电子病历实体修饰识别为例进行描述。请参照图4,图4示出了本发明实施例提供的电子病历处理方法的流程图。电子病历处理方法可以应用于电子设备20,该电子病历处理方法包括以下步骤:
步骤S201,获取电子病历文本。
在电子病历文本中,医生在描述患者的疾病和症状时,通常都表达出不同的确定程度,比如肯定发生的、肯定不发生的(否认的)、可能发生的等,例如,从电子病历中记录的“自带胸片示左下肺症病变”中可以知道,“左下肺症病变”这一疾病是“肯定发生的”,“肯定发生的”是表达“左下肺症病变”这个实体的实体修饰信息。从电子病历文本中提取出每个实体的实体修饰信息的过程,就是电子病历实体修饰识别。
步骤S202,对电子病历文本进行预处理,得到表征训练样本的多个待识别序列,待识别序列包括表征训练样本中每个元素的多个词。
在本实施例中,获取到电子病历文本后,需要对电子病历文本进行预处理,预处理包括分句处理和分词处理,也就是说,对于一份电子病历文本,首先进行分句处理,可以以标点符号为基准进行分句,例如,出现句号或分号则进行分句;然后,对每个句子进行分词处理,分词处理需要保证句子中的每个实体不被分开,这样就能得到多个待识别序列,待识别序列包括多个词,该多个词包括实体的词和非实体的词。
例如,假设电子病历文本为“各瓣膜区未闻及病理性杂音,右肺中下叶考虑创伤性湿肺;有多年心脏病史,不排除缺血性疾病。”,则分句处理为“各瓣膜区未闻及病理性杂音,右肺中下叶考虑创伤性湿肺;”和“有多年心脏病史,不排除缺血性疾病。”;再进行分词处理,就能得到2个待识别序列“各瓣膜区/未闻/及/病理性杂音/,/右肺中下叶/考虑/创伤性湿肺/;”和“有/多年/心脏病/史/,/不排除/缺血性疾病/。”,其中,“病理性杂音”、“创伤性湿肺”、“心脏病”和“缺血性疾病”为实体的词,其余均为非实体的词。
另外,在实体修饰识别任务中,需要给定实体的实体类别,对于电子病历文本,实体类别可以是疾病(disease)、症状(symptom)、治疗(treatment)或者非实体类别(o),例如,上例中“病理性杂音”、“创伤性湿肺”、“心脏病”和“缺血性疾病”的实体类别均为“symptom”;实体修饰信息可以是否认的(absent)、非患者本人的(family)、当前的(present)、有条件的(conditional)、可能的(possible)、待证实的(hypothetical)、偶有的(occasional)、既往的(history)、或者无修饰类别(O),其中无修饰类别(O)表示没有修饰信息的词,如用于表示非实体的词。
因此,将电子病理文本处理为多个待识别序列之后,还需要给定待识别序列的实体类别信息,实体类别信息包括待识别序列中每个词的实体类别,例如,“各瓣膜区/未闻/及/病理性杂音/,/右肺中下叶/考虑/创伤性湿肺/;”的实体类别信息为“o/o/o/symptom/o/o/o/symptom/o”;“有/多年/心脏病/史/,/不排除/缺血性疾病/。”的实体类别信息为“o/o/symptom/o/o/o/symptom/o”。
步骤S203,将每一待识别序列输入利用上述的序列标注模型训练方法训练后的序列标注模型,得到表征预测结果的所有预测实体修饰序列及每个预测实体修饰序列的序列得分。
在本实施例中,待识别序列可以表示为xnew,例如,xnew=“各瓣膜区/未闻/及/病理性杂音/,/右肺中下叶/考虑/创伤性湿肺/;”,或者xnew=“有/多年/心脏病/史/,/不排除/缺血性疾病/。”,每一待识别序列均相当于序列标注模型训练方法中的训练样本,将电子病历文本处理为多个待识别序列后,可以利用训练后的序列标注模型,输出每一待识别序列的表征预测结果的所有预测实体修饰序列及每个预测实体修饰序列的序列得分。
将待识别序列xnew输入训练后的序列标注模型后,具体的处理过程可以包括:
1、利用序列标注模型的初始特征层得到待识别序列xnew的特征向量序列,特征向量序列包括待识别序列xnew中每个词的特征向量表示,特征向量表示包括词嵌入及实体类别表示,假设词嵌入的维度为n_dim1、实体类别表示的维度为n_dim2,则特征向量表示的维度n_dim=n_dim1+n_dim2。可选地,疾病(disease)、症状(symptom)、治疗(treatment)、非实体类别(o)这4种实体类别的实体类别表示可以预先设置为(1,0,0,0)、(0,1,0,0)、(0,0,1,0)、(0,0,0,1)。
2、将待识别序列xnew的特征向量序列输入第一循环神经网络层,得到特征序列;
3、将待识别序列xnew的特征序列输入注意力层,得到语义序列;
4、如果包含第二循环神经网络层,则将待识别序列xnew的语义序列输入第二循环神经网络层,得到输出向量序列后输入序列标注模型的标签预测层;如果不包含第二循环神经网络层,则直接将语义序列输入标签预测层;
5、通过前馈神经网络层的输出向量序列onew_1、onew_2、…,确定出待识别序列xnew的所有预测实体修饰序列ynew_i及每个预测实体修饰序列ynew_i的序列得分,再根据CRF层已经学习到的概率转移矩阵A=[Aij]对每个预测实体修饰序列ynew_i的序列得分进行修正,得到修正后的序列得分S。
例如,xnew=“各瓣膜区/未闻/及/病理性杂音/,/右肺中下叶/考虑/创伤性湿肺/;”,得到的部分预测实体修饰序列ynew_i及其序列得分如下:
ynew_1={各瓣膜区/O未闻/O及/O病理性杂音/absent,/O右肺中下叶/O考虑/O创伤性湿肺/possible;/O},S=9;
ynew_2={各瓣膜区/O未闻/O及/O病理性杂音/absent,/O右肺中下叶/O考虑/O创伤性湿肺/occasional;/O},S=7;
ynew_3={各瓣膜区/O未闻/O及/O病理性杂音/O,/O右肺中下叶/O考虑/O创伤性湿肺/O;/O},S=5。
步骤S204,将序列得分最高的预测实体修饰序列作为每一待识别序列的实体修饰序列,实体修饰序列包括待识别序列中每个词的实体修饰信息。
在本实施例中,得到所有预测实体修饰序列ynew_i及每个预测实体修饰序列的序列得分S之后,将序列得分Smax最高的预测实体修饰序列作为每一待识别序列的实体修饰序列。例如,xnew=“各瓣膜区/未闻/及/病理性杂音/,/右肺中下叶/考虑/创伤性湿肺/;”,假设最高的序列得分S=9,则对应的实体修饰序列为:{各瓣膜区/O未闻/O及/O病理性杂音/absent,/O右肺中下叶/O考虑/O创伤性湿肺/possible;/O}。
步骤S205,依据所有待识别序列的实体修饰序列,得到电子病历文本对应的辅助诊断结果。
在本实施例中,得到每一待识别序列的实体修饰序列之后,可以将每一待识别序列的实体修饰序列合并到一起得到电子病历文本对应的实体修饰文本,例如,电子病历文本为“各瓣膜区未闻及病理性杂音,右肺中下叶考虑创伤性湿肺;有多年心脏病史,不排除缺血性疾病。”,得到的实体修饰文本为“各瓣膜区/O未闻/O及/O病理性杂音/absent,/O右肺中下叶/O考虑/O创伤性湿肺/possible;/O有/O多年/O心脏病/history史/O,/O不排除/O缺血性疾病/possible。/O”。
再对实体修饰文本进行处理,得到辅助诊断结果,辅助诊断结果可以是结构化数据且只包含电子病历文本中的所有实体及每个实体的修饰信息,例如,如下表1所示:
表1辅助诊断结果示例
病理性杂音 | absent |
创伤性湿肺 | possible |
心脏病 | history |
缺血性疾病 | possible |
辅助诊断结果还可以是依据实体修饰文本,对电子病历文本中的所有实体进行标识(例如,加粗、改变字体颜色等),并标记出每个实体的修饰信息,例如,“各瓣膜区未闻及病理性杂音(absent),右肺中下叶考虑创伤性湿肺(possible);有多年心脏病(history)史,不排除缺血性疾病(possible)。”。
目前,医生在拿到患者的电子病历时,需要阅读电子病历来了解患者疾病和症状的确定程度,利用本实施例提供的电子病历处理方法,可以将电子病历中患者疾病和症状的确定程度以辅助诊断信息的形式展示给医生,医生通过辅助诊断信息就能快速了解到患者疾病和症状的确定程度,从而为医生提供辅助,减少医生的诊断时间。
与现有技术相比,本发明实施例具有以下有益效果:
首先,采用循环神经网络层学习序列中的上下文信息,不需要人工寻找特征,能够提高序列标注的准确度;
其次,在循环神经网络层的基础上,增加了注意力层,注意力层能够学习到序列中的长距离特征信息,能够有效解决序列的长距离依赖问题,从而使得序列标注的准确度得到进一步提升;
最后,利用训练后的序列标注模型进行电子病历实体修饰识别,能够生成电子病历文本对应的辅助诊断结果,医生通过辅助诊断信息就能快速了解到患者疾病和症状的确定程度,从而为医生提供辅助,减少医生的诊断时间。
请参照图5,图5示出了本发明实施例提供的序列标注模型训练装置100的方框示意图。序列标注模型训练装置100包括样本获取模块101、第一处理模块102、特征序列获得模块103、语义序列获得模块104、第二处理模块105、预测结果获得模块106及参数更新模块107。
样本获取模块101,用于获取训练样本及训练样本对应的标注结果。
第一处理模块102,用于将训练样本输入预先建立的序列标注模型,利用序列标注模型的初始特征层输出训练样本的特征向量序列,所述特征向量序列包括所述训练样本中每个元素的特征表示,所述特征表示包括字嵌入和/或词嵌入。
特征序列获得模块103,用于将特征向量序列输入序列标注模型的第一循环神经网络层,得到特征序列。
在本实施例中,第一循环神经网络层包括第一双向长短期记忆网络BiLSTM,第一BiLSTM包括第一前向长短期记忆网络LSTM、第一后向长短期记忆网络LSTM和第一合并网络;特征序列获得模块103,具体用于将特征向量序列输入第一BiLSTM,利用第一前向LSTM和第一后向LSTM分别学习特征向量序列的上文信息和下文信息,得到训练样本中每个元素的前向序列特征和后向序列特征;通过第一合并网络将同一元素的前向序列特征和后向序列特征进行合并,得到每个元素的序列向量,所有元素的序列向量构成特征序列。
语义序列获得模块104,用于将特征序列输入序列标注模型的注意力层,得到语义序列。
在本实施例中,语义序列获得模块104,具体用于将特征序列输入注意力层,得到训练样本中当前元素与每个元素的注意力权重;依据当前元素与每个元素的注意力权重,对特征序列进行加权,得到当前元素的语义信息,所有元素的语义信息构成语义序列。
第二处理模块105,用于将语义序列输入第二循环神经网络层,利用第二循环神经网络层学习语义序列的上下文信息。
在本实施例中,第二循环神经网络层包括第二BiLSTM,第二BiLSTM包括第二前向LSTM、第二后向LSTM和第二合并网络;第二处理模块105,具体用于将语义序列输入第二BiLSTM,利用第二前向LSTM和第二后向LSTM分别学习语义序列的上文信息和下文信息,并通过第二合并网络合并学习到的上文信息和下文信息。
预测结果获得模块106,用于将语义序列输入序列标注模型的标签预测层,得到训练样本的预测结果。
在本实施例中,标签预测层包括前馈神经网络层和条件随机场CRF层,预测结果包括所有预测序列和每个预测序列的序列得分,序列得分包括训练样本中每个元素被预测为一个预设标签的概率之和;预测结果获得模块106,具体用于利用前馈神经网络层对语义序列进行学习,得到所有预测序列及每个预测序列的序列得分;将每个预测序列的序列得分输入CRF层,通过CRF层引入概率转移矩阵对每个预测序列的序列得分进行修正,其中,概率转移矩阵表征由一个预设标签转移到另一个预设标签的概率。
参数更新模块107,用于依据标注结果和预测结果对序列标注模型进行参数更新,得到训练后的序列标注模型。
在本实施例中,参数更新模块107,具体用于依据预测结果和标注结果,获取损失函数;计算损失函数的梯度,并依据损失函数的梯度更新序列标注模型的参数;当损失函数满足预设收敛条件时,停止参数更新,得到训练后的序列标注模型。
请参照图6,图6示出了本发明实施例提供的电子病历处理装置200的方框示意图。电子病历处理装置200包括文本获取模块201、预处理模块202、第一执行模块203、第二执行模块204及结果获得模块205。
文本获取模块201,用于获取电子病历文本。
预处理模块202,用于对电子病历文本进行预处理,得到表征训练样本的多个待识别序列,待识别序列包括表征训练样本中每个元素的多个词。
第一执行模块203,用于将每一待识别序列输入上述的序列标注模型训练方法训练后的序列标注模型,得到表征预测结果的所有预测实体修饰序列及每个预测实体修饰序列的序列得分。
第二执行模块204,用于将序列得分最高的预测实体修饰序列作为每一待识别序列的实体修饰序列,实体修饰序列包括待识别序列中每个词的实体修饰信息。
结果获得模块205,用于依据所有待识别序列的实体修饰序列,得到电子病历文本对应的辅助诊断结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的序列标注模型训练装置100和电子病历处理装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参照图7,图7示出了本发明实施例提供的电子设备20的方框示意图。电子设备20包括处理器21、存储器22及总线23,处理器21和存储器22通过总线23连接。
存储器22用于存储程序,例如图5所示的序列标注模型训练装置100和/或图6所示的和电子病历处理装置200,序列标注模型训练装置100和/或和电子病历处理装置200包括至少一个可以软件或固件(firmware)的形式存储于存储器22中或固化在电子设备20的操作系统(operating system,OS)中的软件功能模块,处理器21在接收到执行指令后,执行所述程序以实现发明上述实施例揭示的序列标注模型训练方法或电子病历处理方法。
电子设备20可以是通用计算机或特殊用途的计算机,两者都可以用于实现本发明实施例的序列标注模型训练方法或电子病历处理方法。本发明实施例尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请描述的功能,以均衡处理负载。
存储器22可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器21可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器21可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器21执行时实现上述实施例揭示的序列标注模型训练方法或电子病历处理。
综上所述,本发明实施例提供的一种序列标注模型训练方法、电子病历处理方法及相关装置,所述序列标注模型训练方法包括:获取训练样本及训练样本对应的标注结果;将训练样本输入预先建立的序列标注模型,利用序列标注模型的初始特征层输出训练样本的特征向量序列,特征向量序列包括训练样本中每个元素的特征表示,特征表示包括字嵌入和/或词嵌入;将特征向量序列输入序列标注模型的第一循环神经网络层,得到特征序列;将特征序列输入序列标注模型的注意力层,得到语义序列;将语义序列输入序列标注模型的标签预测层,得到训练样本的预测结果;依据标注结果和预测结果对序列标注模型进行参数更新,得到训练后的序列标注模型。本实施例先采用第一循环神经网络层捕捉序列的上下文信息,再引入注意力层进一步学习序列中的长距离特征信息,这样在利用训练得到的序列标注模型进行序列标注时,能够有效提高准确度。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (12)
1.一种序列标注模型训练方法,其特征在于,所述方法包括:
获取训练样本及所述训练样本对应的标注结果;
将所述训练样本输入预先建立的序列标注模型,利用所述序列标注模型的初始特征层输出所述训练样本的特征向量序列,所述特征向量序列包括所述训练样本中每个元素的特征表示,所述特征表示包括字嵌入和/或词嵌入;
将所述特征向量序列输入所述序列标注模型的第一循环神经网络层,得到特征序列;
将所述特征序列输入所述序列标注模型的注意力层,得到语义序列;
将所述语义序列输入所述序列标注模型的标签预测层,得到所述训练样本的预测结果;
依据所述标注结果和所述预测结果对所述序列标注模型进行参数更新,得到训练后的序列标注模型。
2.如权利要求1所述的方法,其特征在于,所述第一循环神经网络层包括第一双向长短期记忆网络BiLSTM,第一BiLSTM包括第一前向长短期记忆网络LSTM、第一后向长短期记忆网络LSTM和第一合并网络;
所述将所述特征向量序列输入所述序列标注模型的第一循环神经网络层,得到特征序列的步骤,包括:
将所述特征向量序列输入所述第一BiLSTM,利用第一前向LSTM和第一后向LSTM分别学习所述特征向量序列的上文信息和下文信息,得到所述训练样本中每个元素的前向序列特征和后向序列特征;
通过所述第一合并网络将同一元素的前向序列特征和后向序列特征进行合并,得到每个元素的序列向量,所有元素的序列向量构成所述特征序列。
3.如权利要求1所述的方法,其特征在于,所述将所述特征序列输入所述序列标注模型的注意力层,得到语义序列的步骤,包括:
将所述特征序列输入所述注意力层,得到所述训练样本中当前元素与每个元素的注意力权重;
依据当前元素与每个元素的注意力权重,对所述特征序列进行加权,得到当前元素的语义信息,所有元素的语义信息构成所述语义序列。
4.如权利要求1所述的方法,其特征在于,所述序列标注模型还包括第二循环神经网络层:
所述将所述语义序列输入所述序列标注模型的标签预测层,得到所述训练样本的预测结果的步骤之前,所述方法还包括:
将所述语义序列输入所述第二循环神经网络层,利用所述第二循环神经网络层学习所述语义序列的上下文信息。
5.如权利要求4所述的方法,其特征在于,所述第二循环神经网络层包括第二BiLSTM,所述第二BiLSTM包括第二前向LSTM、第二后向LSTM和第二合并网络;
所述将所述语义序列输入所述第二循环神经网络层,利用所述第二循环神经网络层学习所述语义序列的上下文信息的步骤,包括:
将所述语义序列输入所述第二BiLSTM,利用第二前向LSTM和第二后向LSTM分别学习所述语义序列的上文信息和下文信息,并通过所述第二合并网络合并学习到的上文信息和下文信息。
6.如权利要求1或4所述的方法,其特征在于,所述标签预测层包括前馈神经网络层和条件随机场CRF层,所述预测结果包括所有预测序列和每个预测序列的序列得分,所述序列得分包括所述训练样本中每个元素被预测为一个预设标签的概率之和;
所述将所述语义序列输入所述序列标注模型的标签预测层,得到所述训练样本的预测结果的步骤,包括:
利用所述前馈神经网络层对所述语义序列进行学习,得到所有预测序列及每个预测序列的序列得分;
将每个预测序列的序列得分输入CRF层,通过所述CRF层引入概率转移矩阵对每个预测序列的序列得分进行修正,其中,所述概率转移矩阵表征由一个预设标签转移到另一个预设标签的概率。
7.如权利要求1所述的方法,其特征在于,所述依据所述标注结果和所述预测结果对所述序列标注模型进行参数更新,得到训练后的序列标注模型的步骤,包括:
依据所述预测结果和所述标注结果,获取损失函数;
计算所述损失函数的梯度,并依据所述损失函数的梯度更新所述序列标注模型的参数;
当所述损失函数满足预设收敛条件时,停止参数更新,得到训练后的序列标注模型。
8.一种电子病历处理方法,其特征在于,所述方法包括:
获取电子病历文本;
对所述电子病历文本进行预处理,得到表征训练样本的多个待识别序列,所述待识别序列包括表征训练样本中每个元素的多个词;
将每一所述待识别序列输入利用权利要求1-7任一项所述的方法训练后的序列标注模型,得到表征预测结果的所有预测实体修饰序列及每个预测实体修饰序列的序列得分;
将序列得分最高的预测实体修饰序列作为每一所述待识别序列的实体修饰序列,所述实体修饰序列包括所述待识别序列中每个词的实体修饰信息;
依据所有待识别序列的实体修饰序列,得到所述电子病历文本对应的辅助诊断结果。
9.一种序列标注模型训练装置,其特征在于,所述装置包括:
样本获取模块,用于获取训练样本及所述训练样本对应的标注结果;
第一处理模块,用于将所述训练样本输入预先建立的序列标注模型,利用所述序列标注模型的初始特征层输出所述训练样本的特征向量序列,所述特征向量序列包括所述训练样本中每个元素的特征表示,所述特征表示包括字嵌入和/或词嵌入;
特征序列获得模块,用于将所述特征向量序列输入所述序列标注模型的第一循环神经网络层,得到特征序列;
语义序列获得模块,用于将所述特征序列输入所述序列标注模型的注意力层,基于注意力机制得到语义序列;
预测结果获得模块,用于将所述语义序列输入所述序列标注模型的标签预测层,得到所述训练样本的预测结果;
参数更新模块,用于依据所述标注结果和所述预测结果对所述序列标注模型进行参数更新,得到训练后的序列标注模型。
10.一种电子病历处理装置,其特征在于,所述装置包括:
文本获取模块,用于获取电子病历文本;
预处理模块,用于对所述电子病历文本进行预处理,得到表征训练样本的多个待识别序列,所述待识别序列包括表征训练样本中每个元素的多个词;
第一执行模块,用于将每一所述待识别序列输入利用权利要求1-7任一项所述的方法训练后的序列标注模型,得到表征预测结果的所有预测实体修饰序列及每个预测实体修饰序列的序列得分;
第二执行模块,用于将序列得分最高的预测实体修饰序列作为每一所述待识别序列的实体修饰序列,所述实体修饰序列包括所述待识别序列中每个词的实体修饰信息;
结果获得模块,用于依据所有待识别序列的实体修饰序列,得到所述电子病历文本对应的辅助诊断结果。
11.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的序列标注模型训练方法,或者,如权利要求8所述的电子病历处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的序列标注模型训练方法,或者,如权利要求8所述的电子病历处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625236.7A CN110459282B (zh) | 2019-07-11 | 2019-07-11 | 序列标注模型训练方法、电子病历处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625236.7A CN110459282B (zh) | 2019-07-11 | 2019-07-11 | 序列标注模型训练方法、电子病历处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110459282A true CN110459282A (zh) | 2019-11-15 |
CN110459282B CN110459282B (zh) | 2021-03-09 |
Family
ID=68482689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910625236.7A Active CN110459282B (zh) | 2019-07-11 | 2019-07-11 | 序列标注模型训练方法、电子病历处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110459282B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111091004A (zh) * | 2019-12-18 | 2020-05-01 | 上海风秩科技有限公司 | 一种语句实体标注模型的训练方法、训练装置及电子设备 |
CN111192680A (zh) * | 2019-12-25 | 2020-05-22 | 山东众阳健康科技集团有限公司 | 一种基于深度学习和集成分类的智能辅助诊断方法 |
CN111199152A (zh) * | 2019-12-20 | 2020-05-26 | 西安交通大学 | 一种基于标签注意力机制的命名实体识别方法 |
CN111209362A (zh) * | 2020-01-07 | 2020-05-29 | 苏州城方信息技术有限公司 | 基于深度学习的地址数据解析方法 |
CN111476024A (zh) * | 2020-02-29 | 2020-07-31 | 新华三大数据技术有限公司 | 一种文本分词方法、装置及模型训练方法 |
CN111540424A (zh) * | 2020-04-26 | 2020-08-14 | 吴九云 | 基于人工智能的智慧医疗病历管理方法及电子病历云平台 |
CN111639500A (zh) * | 2020-04-23 | 2020-09-08 | 平安国际智慧城市科技股份有限公司 | 语义角色标注方法、装置、计算机设备及存储介质 |
CN111723583A (zh) * | 2020-06-23 | 2020-09-29 | 中国平安人寿保险股份有限公司 | 基于意图角色的语句处理方法、装置、设备及存储介质 |
CN112530534A (zh) * | 2020-12-04 | 2021-03-19 | 平安科技(深圳)有限公司 | 一种基于电子病历的主题癌症分期的判别方法及系统 |
CN112766347A (zh) * | 2021-01-12 | 2021-05-07 | 合肥黎曼信息科技有限公司 | 一种结合标注质量控制的主动学习方法 |
CN112863683A (zh) * | 2021-02-19 | 2021-05-28 | 平安科技(深圳)有限公司 | 基于人工智能的病历质控方法、装置、计算机设备及存储介质 |
CN112860842A (zh) * | 2021-03-05 | 2021-05-28 | 联仁健康医疗大数据科技股份有限公司 | 病历标注方法、装置及存储介质 |
WO2021139274A1 (zh) * | 2020-06-09 | 2021-07-15 | 平安科技(深圳)有限公司 | 基于深度学习模型的文献分类方法、装置和计算机设备 |
CN113220836A (zh) * | 2021-05-08 | 2021-08-06 | 北京百度网讯科技有限公司 | 序列标注模型的训练方法、装置、电子设备和存储介质 |
CN113761918A (zh) * | 2020-06-04 | 2021-12-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
WO2021258914A1 (zh) * | 2020-06-24 | 2021-12-30 | 深圳前海微众银行股份有限公司 | 一种序列标注模型的训练方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977361A (zh) * | 2017-12-06 | 2018-05-01 | 哈尔滨工业大学深圳研究生院 | 基于深度语义信息表示的中文临床医疗实体识别方法 |
CN108538395A (zh) * | 2018-04-02 | 2018-09-14 | 上海市儿童医院 | 一种通用的医疗专病数据系统的构建方法 |
CN109062893A (zh) * | 2018-07-13 | 2018-12-21 | 华南理工大学 | 一种基于全文注意力机制的商品名称识别方法 |
-
2019
- 2019-07-11 CN CN201910625236.7A patent/CN110459282B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977361A (zh) * | 2017-12-06 | 2018-05-01 | 哈尔滨工业大学深圳研究生院 | 基于深度语义信息表示的中文临床医疗实体识别方法 |
CN108538395A (zh) * | 2018-04-02 | 2018-09-14 | 上海市儿童医院 | 一种通用的医疗专病数据系统的构建方法 |
CN109062893A (zh) * | 2018-07-13 | 2018-12-21 | 华南理工大学 | 一种基于全文注意力机制的商品名称识别方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111091004B (zh) * | 2019-12-18 | 2023-08-25 | 上海风秩科技有限公司 | 一种语句实体标注模型的训练方法、训练装置及电子设备 |
CN111091004A (zh) * | 2019-12-18 | 2020-05-01 | 上海风秩科技有限公司 | 一种语句实体标注模型的训练方法、训练装置及电子设备 |
CN111199152A (zh) * | 2019-12-20 | 2020-05-26 | 西安交通大学 | 一种基于标签注意力机制的命名实体识别方法 |
CN111192680A (zh) * | 2019-12-25 | 2020-05-22 | 山东众阳健康科技集团有限公司 | 一种基于深度学习和集成分类的智能辅助诊断方法 |
CN111209362A (zh) * | 2020-01-07 | 2020-05-29 | 苏州城方信息技术有限公司 | 基于深度学习的地址数据解析方法 |
CN111476024A (zh) * | 2020-02-29 | 2020-07-31 | 新华三大数据技术有限公司 | 一种文本分词方法、装置及模型训练方法 |
WO2021212681A1 (zh) * | 2020-04-23 | 2021-10-28 | 平安国际智慧城市科技股份有限公司 | 语义角色标注方法、装置、计算机设备及存储介质 |
CN111639500A (zh) * | 2020-04-23 | 2020-09-08 | 平安国际智慧城市科技股份有限公司 | 语义角色标注方法、装置、计算机设备及存储介质 |
CN111540424A (zh) * | 2020-04-26 | 2020-08-14 | 吴九云 | 基于人工智能的智慧医疗病历管理方法及电子病历云平台 |
CN113761918A (zh) * | 2020-06-04 | 2021-12-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
WO2021139274A1 (zh) * | 2020-06-09 | 2021-07-15 | 平安科技(深圳)有限公司 | 基于深度学习模型的文献分类方法、装置和计算机设备 |
CN111723583B (zh) * | 2020-06-23 | 2023-02-10 | 中国平安人寿保险股份有限公司 | 基于意图角色的语句处理方法、装置、设备及存储介质 |
CN111723583A (zh) * | 2020-06-23 | 2020-09-29 | 中国平安人寿保险股份有限公司 | 基于意图角色的语句处理方法、装置、设备及存储介质 |
WO2021258914A1 (zh) * | 2020-06-24 | 2021-12-30 | 深圳前海微众银行股份有限公司 | 一种序列标注模型的训练方法及装置 |
CN112530534A (zh) * | 2020-12-04 | 2021-03-19 | 平安科技(深圳)有限公司 | 一种基于电子病历的主题癌症分期的判别方法及系统 |
CN112530534B (zh) * | 2020-12-04 | 2023-02-07 | 平安科技(深圳)有限公司 | 一种基于电子病历的主题癌症分期的判别方法及系统 |
CN112766347A (zh) * | 2021-01-12 | 2021-05-07 | 合肥黎曼信息科技有限公司 | 一种结合标注质量控制的主动学习方法 |
CN112863683A (zh) * | 2021-02-19 | 2021-05-28 | 平安科技(深圳)有限公司 | 基于人工智能的病历质控方法、装置、计算机设备及存储介质 |
WO2022174491A1 (zh) * | 2021-02-19 | 2022-08-25 | 平安科技(深圳)有限公司 | 基于人工智能的病历质控方法、装置、计算机设备及存储介质 |
CN112863683B (zh) * | 2021-02-19 | 2023-07-25 | 平安科技(深圳)有限公司 | 基于人工智能的病历质控方法、装置、计算机设备及存储介质 |
CN112860842A (zh) * | 2021-03-05 | 2021-05-28 | 联仁健康医疗大数据科技股份有限公司 | 病历标注方法、装置及存储介质 |
CN113220836A (zh) * | 2021-05-08 | 2021-08-06 | 北京百度网讯科技有限公司 | 序列标注模型的训练方法、装置、电子设备和存储介质 |
CN113220836B (zh) * | 2021-05-08 | 2024-04-09 | 北京百度网讯科技有限公司 | 序列标注模型的训练方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110459282B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110459282A (zh) | 序列标注模型训练方法、电子病历处理方法及相关装置 | |
CN111125331B (zh) | 语义识别方法、装置、电子设备及计算机可读存储介质 | |
CN110032648B (zh) | 一种基于医学领域实体的病历结构化解析方法 | |
CN106980683B (zh) | 基于深度学习的博客文本摘要生成方法 | |
CN110750959B (zh) | 文本信息处理的方法、模型训练的方法以及相关装置 | |
CN109192300A (zh) | 智能问诊方法、系统、计算机设备和存储介质 | |
CN109388807B (zh) | 电子病历命名实体识别的方法、装置及存储介质 | |
CN109871538A (zh) | 一种中文电子病历命名实体识别方法 | |
CN107943784B (zh) | 基于生成对抗网络的关系抽取方法 | |
CN105404632B (zh) | 基于深度神经网络对生物医学文本序列化标注的系统和方法 | |
CN109522546A (zh) | 基于上下文相关的医学命名实体识别方法 | |
CN110472229A (zh) | 序列标注模型训练方法、电子病历处理方法及相关装置 | |
CN108062388A (zh) | 人机对话的回复生成方法和装置 | |
CN107133220A (zh) | 一种地理学科领域命名实体识别方法 | |
CN111985239A (zh) | 实体识别方法、装置、电子设备及存储介质 | |
CN109559799A (zh) | 医学图像语义描述方法、描述模型的构建方法及该模型 | |
CN110457682A (zh) | 电子病历词性标注方法、模型训练方法及相关装置 | |
CN114972823A (zh) | 数据处理方法、装置、设备及计算机介质 | |
CN110222330B (zh) | 语义识别方法及装置、存储介质、计算机设备 | |
CN109002436A (zh) | 基于长短期记忆网络的医疗文本术语自动识别方法及系统 | |
CN109960728A (zh) | 一种开放域会议信息命名实体识别方法及系统 | |
CN110335653A (zh) | 基于openEHR病历格式的非标准病历解析方法 | |
CN111695354A (zh) | 基于命名实体的文本问答方法、装置及可读存储介质 | |
CN110555084A (zh) | 基于pcnn和多层注意力的远程监督关系分类方法 | |
CN112071429A (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 |