CN110444261B - 序列标注网络训练方法、电子病历处理方法及相关装置 - Google Patents
序列标注网络训练方法、电子病历处理方法及相关装置 Download PDFInfo
- Publication number
- CN110444261B CN110444261B CN201910625947.4A CN201910625947A CN110444261B CN 110444261 B CN110444261 B CN 110444261B CN 201910625947 A CN201910625947 A CN 201910625947A CN 110444261 B CN110444261 B CN 110444261B
- Authority
- CN
- China
- Prior art keywords
- sequence
- layer
- bilstm
- trained
- word
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
-
- 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)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Machine Translation (AREA)
Abstract
本发明实施例涉及自然语言处理技术领域,提供一种序列标注网络训练方法、电子病历处理方法及相关装置,预先建立包括特征表示层、语义连接层及前馈神经网络层的序列标注网络,在对该序列标注网络进行参数更新时,先利用特征表示层获得待训练序列的特征表示序列,然后将特征表示序列输入语义连接层得到语义序列,再将语义序列输入前馈神经网络层得到预测结果,并依据预测结果更新序列标注网络的参数。与现有技术相比,本发明实施例通过语义连接层学习序列的语义信息,能够有效提高序列标注的准确度。
Description
技术领域
本发明实施例涉及自然语言处理技术领域,具体而言,涉及一种序列标注网络训练方法、电子病历处理方法及相关装置。
背景技术
分词标注、词性标注、命名实体识别、依存句法分析、时间序列分析等序列标注任务是自然语言处理领域的基础任务。以命名实体识别为例,其旨在识别文本中的人名、地名、组织机构名称等专有名词和有意义的时间、日期等短语。序列标注任务作为信息抽取中的基础任务,其识别效果对于后续任务有很大影响。
目前序列标注任务中,常见的模型主要有隐马尔可夫模型(Hidden MarkovModel,HMM)、条件随机场(Conditional random field,CRF)等,这些模型均需要人工寻找特征,导致序列标注的准确度不足。
发明内容
本发明实施例的目的在于提供一种序列标注网络训练方法、电子病历处理方法及相关装置,用以解决现有的序列标注准确度低的问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种序列标注网络训练方法,所述方法包括:获取待训练序列和待训练序列的标注结果;将待训练序列输入预先建立的序列标注网络,利用序列标注网络的特征表示层获得待训练序列的特征表示序列,所述特征表示序列包括待训练序列中每个词的特征表示,所述特征表示包括字特征表示和/或词特征表示;将特征表示序列输入序列标注网络的语义连接层,得到语义序列;将语义序列输入序列标注网络的前馈神经网络层,得到预测结果;依据预测结果和标注结果对序列标注网络进行参数更新,得到训练后的序列标注网络。
第二方面,本发明实施例还提供了一种电子病历处理方法,所述方法包括:获取电子病历文本;对所述电子病历文本进行预处理,得到表征待训练序列的多个待识别序列;将每一所述待识别序列输入利用上述的序列标注网络训练方法训练后的序列标注网络,得到表征预测结果的所有预测实体序列及每个预测实体序列的序列得分;将序列得分最高的预测实体序列作为每一所述待识别序列的实体序列;依据所有待识别序列的实体序列,生成所述电子病历文本对应的医学科普结果,并将所述医学科普结果添加至预先建立的医学知识库中,所述医学科普结果包括所述电子病历文本中的所有实体及每个实体的医学科普知识。
第三方面,本发明实施例还提供了一种序列标注网络训练装置,所述装置包括获取模块、第一执行模块、第二执行模块、第三执行模块及参数更新模块。其中,获取模块用于获取待训练序列和待训练序列的标注结果;第一执行模块用于将待训练序列输入预先建立的序列标注网络,利用序列标注网络的特征表示层获得待训练序列的特征表示序列,所述特征表示序列包括待训练序列中每个词的特征表示,所述特征表示包括字特征表示和/或词特征表示;第二执行模块用于将特征表示序列输入序列标注网络的语义连接层,得到语义序列;第三执行模块用于将语义序列输入序列标注网络的前馈神经网络层,得到预测结果;参数更新模块用于依据预测结果和标注结果对序列标注网络进行参数更新,得到训练后的序列标注网络。
第四方面,本发明实施例还提供了一种电子病历处理装置,所述装置包括文本获取模块、预处理模块、第四执行模块、第五执行模块及第六执行模块。其中,文本获取模块用于获取电子病历文本;预处理模块用于对所述电子病历文本进行预处理,得到表征待训练序列的多个待识别序列;第四执行模块用于将每一所述待识别序列输入利用上述的序列标注网络训练方法训练后的序列标注网络,得到表征预测结果的所有预测实体序列及每个预测实体序列的序列得分;第五执行模块用于将序列得分最高的预测实体序列作为每一所述待识别序列的实体序列;第六执行模块用于依据所有待识别序列的实体序列,生成所述电子病历文本对应的医学科普结果,并将所述医学科普结果添加至预先建立的医学知识库中,所述医学科普结果包括所述电子病历文本中的所有实体及每个实体的医学科普知识。
第五方面,本发明实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的序列标注网络训练方法或者电子病历处理方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的序列标注网络训练方法或者电子病历处理方法。
相对现有技术,本发明实施例提供的一种序列标注网络训练方法、电子病历处理方法及相关装置,预先建立包括特征表示层、语义连接层及前馈神经网络层的序列标注网络,在对该序列标注网络进行参数更新时,先利用特征表示层获得待训练序列的特征表示序列,然后将特征表示序列输入语义连接层得到语义序列,再将语义序列输入前馈神经网络层得到预测结果,并依据预测结果更新序列标注网络的参数。与现有技术相比,本发明实施例通过语义连接层学习序列的语义信息,能够有效提高序列标注的准确度。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的序列标注网络训练方法的流程图。
图2示出了本发明实施例提供的序列标注网络的结构示意图。
图3示出了本发明实施例提供的语义连接层的结构示意图。
图4示出了LSTM的结构示意图。
图5示出了本发明实施例提供的电子病历处理方法的流程图。
图6示出了本发明实施例提供的序列标注网络训练装置的方框示意图。
图7示出了本发明实施例提供的电子病历处理装置的方框示意图。
图8示出了本发明实施例提供的电子设备的方框示意图。
图标:100-序列标注网络训练装置;101-序列获取模块;102-第一执行模块;103-第二执行模块;104-第三执行模块;105-修正模块;106-参数更新模块;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)、门控循环单元(GatedRecurrent Unit,GRU)、双向门控循环单元(Bi-directional Gated Recurrent Unit,BiGRU)等。
与传统的机器学习模型相比,神经网络模型是端到端的,不需要人工寻找特征,在序列标注中能取得更好的效果,但是,CNN及CNN变体(例如,DCNN、IDCNN等)的感受野有限。感受野用来表示神经网络内部的不同神经元对原始图像的感受范围的大小,或者说,CNN及CNN变体中每一层输出的特征图上的像素点在原始图像上映射的区域大小,例如,CNN包括3层卷积核为3*3的卷积层,原始图像的大小为7×7、第1层卷积层输出的特征图为5×5、第2层卷积层输出的特征图为3×3、第3层卷积层输出的特征图为1×1,则第1层卷积层的感受野为3、第2层卷积层的感受野为5,第3层卷积层的感受野为7。当序列长度较长时,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}。
待训练序列是用于训练序列标注网络的线性输入序列,例如,熟悉oracle、mysql等数据库;标注结果是针对具体的序列标注任务,人工为待训练序列中的每个词打上标签集合中的某个标签,标签集合Y={y1,y2,…,yn_classes}。以分词任务为例,定义标签集合为:
LabelSet={B,I,E,S}
其中,B表示词的开始,即词首;I表示词的中间,即词中;E表示词的结束,即词尾;S表示单字可以成词。
例如,针对待训练序列“熟悉oracle、mysql等数据库”,该待训练序列对应的分词任务结果为“熟悉/oracle/、/mysql/等/数据库/”,则得到标注结果为“熟/B悉/E o/B r/Ia/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/B据/I库/S”。
作为一种实施方式,待训练序列可以从用户实时传输至电子设备20的数据中获取,例如,用户通过与电子设备20通信连接的输入设备(例如,键盘等)实时输入的文本数据,或者用户通过电子设备20的输入界面(例如,触摸屏等)实时输入的文本数据,或者用户通过与电子设备20通信连接的其他终端设备(例如,智能手机、平板电脑、个人计算机等)实时发送的文本数据;待训练序列也可以是从网络下载的文本数据(例如,论文、教材、小说等)中获取的;待训练序列还可以是接入各个电子化系统(例如,医疗、公安等)中获取的,例如,接入电子医疗系统获取到的电子病历文本等。
在本实施例中,在获取到待训练序列和待训练序列的标注结果后,开始对预先建立的序列标注网络进行训练,请参照图2,本实施例提供的序列标注网络包括特征表示层、语义连接层、前馈神经网络层及CRF层,特征表示层用于得到待训练序列中每个词的特征表示,语义连接层用于学习序列中的深层和浅层语义信息得到语义序列,前馈神经网络层用于输出待训练序列的预测结果,CRF层用于对前馈神经网络层输出的预测结果进行修正,下面通过步骤S102~S106进行详细介绍。
需要指出的是,上述序列标注网络中的CRF层不是必需的,也就是,在通过前馈神经网络层输出待标注序列的预测结果后,可以直接依据预测结果和待标注序列的标注结果对序列标注网络进行参数更新。
步骤S102,将待训练序列输入预先建立的序列标注网络,利用序列标注网络的特征表示层获得待训练序列的特征表示序列,特征表示序列包括待训练序列中每个词的特征表示,特征表示包括字特征表示和/或词特征表示。
在本实施例中,特征表示序列包括待训练序列中每个词的特征表示,如果待训练序列包括中文,则待训练序列中的每个词可以是字或者词语;如果待训练序列包括英文,则待训练序列中的每个词可以是字母或者单词,故每个词的特征表示可以包括字特征表示和/或词特征表示。特征表示序列可以表示为e1、e2、…、en,其中,et∈Rn_dim,t=1,2,…,n,n_dim表示每个词的特征表示的长度。
在自然语言处理中,得到序列中每个词的特征表示的方法,一般有字嵌入、词嵌入、字嵌入和词嵌入的结合等。针对不同的序列标注任务,可以选择不同的嵌入方法,例如,在分词任务中,由于目标是对序列进行分词,故不能采用词嵌入;在命名实体识别中,可以采用字嵌入、词嵌入、字嵌入和词嵌入的结合等。
因此,将待训练序列输入预先建立的序列标注网络之后,序列标注网络的特征表示层可以输出待训练序列的特征表示序列,具体过程可以包括:将待训练序列输入特征表示层,得到待训练序列中每个词的字特征表示和/或词特征表示,并将每个词的字特征表示和/或词特征表示作为每个词的特征表示。
也就是说,将待训练序列输入特征表示层后,特征表示层先对待训练序列进行分词处理,得到待训练序列中各个独立的词,各个独立的词按照各自在待训练序列中出现的先后顺序排列,例如,待训练序列为“熟悉oracle、mysql等数据库”,将其进行分词处理得到“熟/悉/o/r/a/c/l/e/、/m/y/s/q/l/等/数/据/库/”;然后,根据各个独立的词的内容,将每个词向量化,得到每个词的字嵌入和/或词嵌入,每个词的字嵌入和/或词嵌入即为每个词的字特征表示和/或词特征表示,例如,“熟”的字嵌入为[1 0 0 0…],“o”的字嵌入为[0 00 0…],即,“熟”的特征表示为[1 0 0 0…],“o”的特征表示为[0 0 0 0…]。
对每个词进行向量化的方法主要有两种:一种是随机初始化,即随机的产生一组数据作为每个词的字嵌入和/或词嵌入;另一种是采用预训练的嵌入初始化,即通过已经训练好的语言模型得到每个词的字嵌入和/或词嵌入,一般情况下,随机初始化的效果不如预训练的嵌入初始化,语言模型可以是Word2Vec、GloVe等。
步骤S103,将特征表示序列输入序列标注网络的语义连接层,得到语义序列。
在本实施例中,利用序列标注网络的特征表示层获得待训练序列的特征表示序列之后,将特征表示序列输入语义连接层,利用语义连接层学习序列中的深层和浅层语义信息得到语义序列。语义信息是反映对应词的语义的向量,这里的语义是对应词在待训练序列中表达的语义,也就是说,每个词的语义信息是该词在待训练序列的语境中结合上下文信息反映的语义,例如,序列“今天的成绩是他长期努力的结果”和序列“经过一番争论,结果他还是让步了”中均包含“结果”这个词,但是这两个“结果”有着不同的语义,第一个序列中的语义是“事物发展所达到的最后状态”,第二个序列中的语义是“在某种条件或情况下产生某种结局”。
对于长距离依赖的序列,同一个词可能会出现多次,但是每次出现时的语义可能不同,例如上述的“结果”,这就需要准确的确定出每次出现时的语义,并根据语义进行序列标注。为了解决这一问题,本实施例基于RNN及RNN变体构建语义连接层,语义连接层能够学习序列中的深层和浅层语义信息,可以有效提高序列标注的准确度。
语义连接层可以包括多层串联连接的RNN或者RNN变体,RNN变体可以包括LSTM、BiLSTM、GRU、BiGRU,或其它RNN变体等,由于RNN会出现梯度消失问题,即,无法正常的进行模型训练,因此,语义连接层通常包括多层串联连接的RNN变体,例如,LSTM、BiLSTM、GRU、BiGRU,或其它RNN变体等。
作为一种实施方式,请参照图3,语义连接层可以包括多层串联连接的BiLSTM,假设语义连接层包括k层BiLSTM,k=1,2,…,假设k层BiLSTM的输出序列分别为k层BiLSTM的输入序列分别为此时,将特征表示序列输入序列标注网络的语义连接层,得到语义序列的过程,可以包括:
首先,将特征表示序列输入第一层BiLSTM进行上下文信息编码,得到输出序列并输入中间层BiLSTM,中间层BiLSTM包括至少一层BiLSTM;
在本实施例中,由于是将特征表示层输出的特征表示序列e1、e2、…、en作为第一层BiLSTM的输入序列,则,
然后,在中间层BiLSTM中,合并当前层BiLSTM前每一层BiLSTM的输出序列作为当前层BiLSTM的输入序列,利用当前层BiLSTM对输入序列进行上下文信息编码,得到当前层BiLSTM的输出序列;
在本实施例中,对于中间层BiLSTM,当前层BiLSTM的输入序列为当前层前每一层BiLSTM的输出序列的集合,即,
也就是,将第一层BiLSTM的输出序列作为第二层BiLSTM的输入序列,即,合并第一层BiLSTM、第二层BiLSTM的输出序列作为第三层BiLSTM的输入序列,即,合并第一层BiLSTM、第二层BiLSTM、第三层BiLSTM的输出序列作为第四层BiLSTM的输入序列,即,等。
当前层BiLSTM对输入序列进行上下文信息编码,即,
最后,中间层BiLSTM处理完之后,合并最后一层BiLSTM前每一层BiLSTM的输出序列作为最后一层BiLSTM的输入序列,并将最后一层BiLSTM的输出向量作为语义序列,假设语义连接层输出的语义序列为则,
下面对构成语义连接层的BiLSTM进行介绍,BiLSTM是一种双向的循环神经网络,请参照图3,构成语义连接层的每一层BiLSTM均包括前向LSTM、后向LSTM及合并网络,前向LSTM用于按照从前向后的顺序对序列进行学习,后向LSTM用于按照从后向前的顺序对序列进行学习,合并网络用于将前向LSTM的输出向量和后向LSTM的输出向量进行合并。此时,利用当前层BiLSTM对输入序列进行上下文信息编码,得到当前层BiLSTM的输出序列的过程,此处的当前层BiLSTM是指语义连接层中的任意一层BiLSTM,可以包括:
第一步,将当前层BiLSTM的输入序列分别输入前向LSTM和后向LSTM;
假设当前层BiLSTM的输入序列为i1、i2、…、in、输出序列为前向LSTM的输出向量为后向LSTM的输出向量为前向LSTM和后向LSTM的输出向量的维度均为h,则前向LSTM和后向LSTM的输入序列均为i1、i2、…、in。
第二步,前向LSTM按照从前向后的顺序对输入序列进行学习,得到待训练序列中每个词的第一向量,即,
后向LSTM按照从后向前的顺序对输入序列进行学习,得到待训练序列中每个词的第二向量,即,
第三步,通过合并网络合并同一个词的第一向量和第二向量,即,
一般地,上述(6)~(8)式,可以合并写为:
下面对LSTM进行简单介绍,LSTM的结构如图4所示,假设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)))。
一般来说,上述公式(10)可以简化为:
ht=LSTM(ht-1,xt) (11)
步骤S104,将语义序列输入序列标注网络的前馈神经网络层,得到预测结果。
在本实施例中,利用语义连接层得到语义序列之后,将语义序列输入前馈神经网络层(feed-forward),利用前馈神经网络层输出待训练序列的预测结果,预测结果包括所有预测序列及每个预测序列的序列得分,序列得分包括待训练序列中每个词被预测为一个预设标签的概率之和,预测序列包括待训练序列中每个词的预测标签。以分词任务为例,预测序列包括待训练序列中每个词的预测标签B/I/E/S,序列得分包括待训练序列中每个词被预测为标签集合LabelSet={B,I,E,S}中一个预设标签的概率之和。
其中,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)的序列得分为:
其中,式(13)的隐含假设为:预测序列中任意两个预测标签是相互独立的,即,yil与yik是相互独立的,l=1,2,…,n,k=1,2,…,n,n≠k。
以分词任务为例,针对待训练序列“熟悉oracle、mysql等数据库”,前馈神经网络层得到的部分预测序列及其序列得分如下:
y1={熟/B悉/E o/B r/I a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S1=6;
y2={熟/S悉/S o/B r/I a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S2=5;
y3={熟/S悉/S o/B r/B a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S3=4。
在本实施例中,为了进一步提高序列标注的准确度,还可以在序列标注网络中设置CRF层,CRF层用于对前馈神经网络层的输出序列o1、o2、…、on进行修正,因此,本实施例提供的序列标注网络训练方法还可以包括步骤S105。
步骤S105,将预测结果输入CRF层,利用CRF层对预测结果进行修正。
在本实施例中,将每个预测序列的序列得分输入CRF层,CRF层依据预设的转移得分矩阵修正每个预测序列的序列得分,其中,转移得分矩阵表征由一个预设标签转移到另一个预设标签的概率。以分词任务为例,转移得分矩阵用于表征:当待训练序列中前一个词的预测标签为B、I、E、S时,当前词的预测标签为B/I/E/S的概率,例如,在前一个词的预测标签为B时,当前词的预测标签不可能为B,即,由B转移到B的概率为0。
Aij=p(yit=yj|yit-1=yi) (14)
故,对于训练样本xi,其预测序列yi=(yi1,yi2,…,yin)的转移得分为:
其中,y0和yin+1分别代表待训练序列的起始(start)和结束(end),式(15)的隐含条件为:当前词的标签yit只与其前一个词的标签yit-1有关,即p(yit|yi1,yi2,…,yit-1)=p(yit|yit-1)。
因此,对于待训练序列xi,CRF层修正后的序列得分为:
以分词任务为例,针对待训练序列“熟悉oracle、mysql等数据库”,CRF层引入转移得分矩阵后的部分预测序列及对应的转移得分如下:
y1={熟/B悉/E o/B r/I a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S2=1.5;
y2={熟/S悉/S o/B r/I a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S2=1;
y3={熟/S悉/S o/B r/B a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S2=1.5。
因此,对于待训练序列“熟悉oracle、mysql等数据库”,CRF层修正后的部分预测序列及序列得分为:
y1={熟/B悉/E o/B r/I a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S=7.5;
y2={熟/S悉/S o/B r/I a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S=6;
y3={熟/S悉/S o/B r/B a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/S据/S库/S},S=5.5。
本领域技术人员能够理解,上述关于CRF层的描述是示例性的而非限制性的,在另一些实施例中,序列标注网络可以不包含CRF层,也就是,本实施例提供的序列标注网络训练方法可以跳过步骤S105。
步骤S106,依据预测结果和标注结果对序列标注网络进行参数更新,得到训练后的序列标注网络。
在本实施例中,如果序列标注网络不包括CRF层,则利用前馈神经网络层输出预测结果o1、o2、…、on之后,依据预测结果和标注结果对序列标注网络进行参数更新;如果序列标注网络包括CRF层,则利用利用CRF层对预测结果进行修正之后,依据标注结果和修正后的预测结果对序列标注网络进行参数更新,下述实施例以序列标注网络不包括CRF层为例进行描述。
此时,依据预测结果和标注结果对序列标注网络进行参数更新,得到训练后的序列标注网络的过程,可以包括:
第一步,依据预测结果和标注结果,获取损失函数;
在本实施例中,对于给定的训练样本(xi,yi),依据预测结果和标注结果,定义其损失函数为:
其中,yi表示待训练序列xi的标注结果,S(xi,yi)表示标注结果yi的总得分,以分词任务为例,对于待训练序列“熟悉oracle、mysql等数据库”,其标注结果为“熟/B悉/E o/Br/I a/I c/I l/I e/E、/S m/B y/I s/I q/I l/E等/S数/B据/I库/S”,假设总得分为10;表示待训练序列xi的所有预测序列,表示对每个预测序列的序列得分进行求和。
第二步,依据损失函数,按照梯度下降法更新序列标注网络的参数,直至损失函数满足预设收敛条件,得到训练后的序列标注网络。
在本实施例中,由于损失函数用于衡量序列标注网络得到的预测序列与标注结果的不一致程度,损失函数越小,表明序列标注网络的性能越好,因此,可以通过计算损失函数的梯度来更新序列标注网络的参数,直至损失函数达到最小值。
作为一种实施方式,可以通过梯度下降优化算法来计算损失函数的梯度,并根据梯度更新序列标注网络中各个层的参数,例如,式(10)中待学习的参数W和b、式(14)中需要学习的转移得分矩阵A,以最小化损失函数,直至损失函数满足预设收敛条件,预设收敛条件可以是根据经验设定的迭代次数(例如,2000次)或者最小值(例如,0.1),停止序列标注网络的参数更新,得到训练后的序列标注网络。
完成序列标注网络的训练之后,可以利用训练后的序列标注网络进行序列标注任务,例如,进行分词、词性标注、命名实体识别、实体修饰识别等任务,序列标注任务可以应用在机器翻译、智能客服、医疗、农业等领域,下面以序列标注任务在电子病历领域的应用为例进行描述。
电子病历(Electronic Medical Records,EMR)也叫计算机化的病案系统或称基于计算机的病人记录,它是用电子设备(计算机、健康卡等)保存、管理、传输和重现的数字化的医疗记录,用以取代手写纸张病历,它的内容包括纸张病历的所有信息。
电子病历的数据形式主要包括表格、自由文本、图像,其中,自由文本形式的非结构化数据是电子病历中非常重要的数据,主要包括出院小结、病程记录、主诉、现病史、病历小结、医患沟通记录、医患协议、超声报告等。对非结构化数据进行分析和挖掘,可以从中获得大量的医疗知识,且这些知识可应用于临床决策支持和个性化医疗健康信息服务等方面,例如,某患者的电子病历中记录着“疼痛时伴有右下肢活动受限”,对该电子病历进行分词处理,可以得到分词结果“疼痛/时/伴/有/右下肢活动受限/”;对该电子病历进行命名实体识别,可以得到实体“疼痛”和“右下肢活动受限”。
下面以利用序列标注网络进行电子病历命名实体识别为例进行描述。请参照图5,图5示出了本发明实施例提供的电子病历处理方法的流程图。电子病历处理方法可以应用于电子设备20,该电子病历处理方法包括以下步骤:
步骤S201,获取电子病历文本。
在本实施例中,电子病历的非结构化数据定义的实体有4类,包括疾病(disease)、检查(test)、症状(symptom)、治疗(treatment),也就是,对电子病历进行命名实体识别,就是要从电子病历中自动抽取属于这4类实体类别中的所有实体,例如,某患者的电子病历中记录着“血压最高达到180/130mmHg,伴活动后心慌气短”,其中,实体包括“心慌”、“气短”、“血压”,“心慌”和“气短”的实体类别均为症状,“血压”的实体类别为检查。
步骤S202,对电子病历文本进行预处理,得到表征待训练序列的多个待识别序列。
在本实施例中,获取到电子病历文本后,需要对电子病历文本进行预处理,此处的预处理也就是分句处理,分句处理一般采用的策略是按照标点符号进行划分,如出现句号或分号则进行分句。例如,假设获取到的电子病历文本为“患者彩超结果汇报轻度脂肪肝,糖尿病皮下注射胰岛素控制;患者1年前开始出现记忆力减退,门诊以脑梗死、皮质下动脉硬化性脑病收入我科。”,分句处理得到“患者彩超结果汇报轻度脂肪肝,糖尿病皮下注射胰岛素控制;”、“患者1年前开始出现记忆力减退,门诊以脑梗死、皮质下动脉硬化性脑病收入我科。”。
步骤S203,将每一待识别序列输入利用序列标注网络训练方法训练后的序列标注网络,得到表征预测结果的所有预测实体序列及每个预测实体序列的序列得分。
在本实施例中,预测实体序列包括待识别序列中每个词的实体信息,由于电子病历命名实体识别任务中,考虑的实体类别包括疾病(disease)、检查(test)、症状(symptom)、治疗(treatment),因此,对电子病历文本进行命名实体识别后,电子病历文本每个词的实体信息只可能是disease-B、disease-I、disease-E、disease-S、test-B、test-I、test-E、test-S、symptom-B、symptom-I、symptom-E、symptom-S、treatment-B、treatment-I、treatment-E、treatment–S、O,依次表示疾病词首、疾病词中、疾病词尾、单字疾病、检查词首、检查词中、检查词尾、单字检查、症状词首、症状词中、症状词尾、单字症状、治疗词首、治疗词中、治疗词尾、单字治疗、非实体。
待识别序列可以表示为xnew,例如,xnew=“患者彩超结果汇报轻度脂肪肝,糖尿病皮下注射胰岛素控制;”、xnew=“患者1年前开始出现记忆力减退,门诊以脑梗死、皮质下动脉硬化性脑病收入我科。”,每一待识别序列均相当于序列标注网络训练方法中的待训练序列,将电子病历文本处理为多个待识别序列后,可以利用训练后的序列标注网络,输出每一待识别序列的表征预测结果的所有预测实体序列及每个预测实体序列的序列得分。
将每一待识别序列xnew输入训练后的序列标注网络后,具体的处理过程可以包括:
1、利用序列标注网络的特征表示层获得待识别序列xnew的特征表示序列,特征表示序列包括待识别序列xnew中每个词的词特征表示;
2、将待识别序列xnew的特征表示序列输入序列标注网络的语义连接层,得到待识别序列xnew的语义序列;
3、将待识别序列xnew的语义序列输入序列标注网络的前馈神经网络层,得到表征预测结果的所有预测实体序列ynew_i及每个预测实体序列ynew_i的序列得分S;
4、如果序列标注网络包括CRF层,则还需要将每个预测实体序列ynew_i的序列得分S输入CRF层,CRF层依据已经学习到的概率转移矩阵A=[Aij]对每个预测实体序列ynew_i的序列得分S进行修正,最终得到前馈神经网络层输出的所有预测实体序列ynew_i及CRF层输出的每个预测实体序列ynew_i的序列得分S;如果序列标注网络不包括CRF层,则最终得到前馈神经网络层输出的所有预测实体序列ynew_i及每个预测实体序列ynew_i的序列得分S。
例如,xnew=“患者彩超结果汇报轻度脂肪肝,糖尿病皮下注射胰岛素控制;”,得到的部分预测实体序列ynew_i及其序列得分如下:
ynew_1={患/O者/O彩/test-B超/test-E结/O果/O汇/O报/O轻/O度/O脂/disease-B肪/disease-I肝/disease-E,/O糖/disease-B尿/disease-I病/disease-E皮/O下/O注/O射/O胰/treatment-B岛/treatment-I素/treatment-E控/O制/O;/O},S=9;
ynew_2={患/O者/O彩/test-B超/test-E结/O果/O汇/O报/O轻/O度/O脂/disease-B肪/disease-E肝/O,/O糖/disease-B尿/disease-I病/disease-E皮/O下/O注/O射/O胰/treatment-B岛/treatment-I素/treatment-E控/O制/O;/O},S=8;
ynew_3={患/O者/O彩/test-B超/test-E结/O果/O汇/O报/O轻/O度/O脂/disease-B肪/disease-E肝/O,/O糖/disease-B尿/disease-I病/disease-E皮/O下/O注/O射/O胰/O岛/O素/O控/O制/O;/O},S=5。
步骤S204,将序列得分最高的预测实体序列作为每一待识别序列的实体序列。
在本实施例中,得到待识别序列的表征预测结果的所有预测实体序列ynew_i及每个预测实体序列ynew_i的序列得分S之后,将序列得分最高Smax对应的预测实体序列作为待识别序列的实体序列。例如,xnew=“患者彩超结果汇报轻度脂肪肝,糖尿病皮下注射胰岛素控制;”,假设最高序列得分Smax=9,则对应的实体序列为:{患/O者/O彩/test-B超/test-E结/O果/O汇/O报/O轻/O度/O脂/disease-B肪/disease-I肝/disease-E,/O糖/disease-B尿/disease-I病/disease-E皮/O下/O注/O射/O胰/treatment-B岛/treatment-I素/treatment-E控/O制/O;/O}。
步骤S205,依据所有待识别序列的实体序列,生成电子病历文本对应的医学科普结果,并将医学科普结果添加至预先建立的医学知识库中,医学科普结果包括电子病历文本中的所有实体及每个实体的医学科普知识。
在本实施例中,得到每一待识别序列的实体序列之后,首先,依据每一待识别序列中每个词的实体信息,获得每一待识别序列中的所有实体;
例如,“患者彩超结果汇报轻度脂肪肝,糖尿病皮下注射胰岛素控制;”的实体序列为{患/O者/O彩/test-B超/test-E结/O果/O汇/O报/O轻/O度/O脂/disease-B肪/disease-I肝/disease-E,/O糖/disease-B尿/disease-I病/disease-E皮/O下/O注/O射/O胰/treatment-B岛/treatment-I素/treatment-E控/O制/O;/O},则得到实体“彩超”、“脂肪肝”、“糖尿病”和“胰岛素”,其中,“脂肪肝”和“糖尿病”是疾病、“彩超”是检查、“胰岛素”是治疗;
又如,“患者1年前开始出现记忆力减退,门诊以脑梗死、皮质下动脉硬化性脑病收入我科。”的实体序列为{患/O者/O 1/O年/O前/O开/O始/O出/O现/O记/symptom-B忆/symptom-I力/symptom-I减/symptom-I退/symptom-E,/O门/O诊/O以/O脑/disease-B梗/disease-B死/disease-B、/O皮/disease-B质/disease-I下/disease-I动/disease-I脉/disease-I硬/disease-I化/disease-I性/disease-I脑/disease-I病/disease-E收/O入/O我/O科/O。/O},则得到实体“记忆力减退”、“脑梗死”和“皮质下动脉硬化性脑病”,其中“记忆力减退”是症状,“脑梗死”和“皮质下动脉硬化性脑病”是疾病;
然后,获取每一实体的医学科普知识,并依据每一待识别序列中的所有实体和每一实体的医学科普知识,生成电子病历文本对应的医学科普结果,疾病、症状的医学科普知识可以包括定义解释、成因、西医学名、其他名称、发病部位、传染性、所属科室、护理方法、预防方法等,检查、治疗的医学科普知识可以包括定义解释、西医学名、其他名称、所属科室、注意事项、适用病症等。医学科普知识可以由医务人员提供,也可以从医学专业书籍和论文中获得。例如,“彩超”的医学科普知识为:利用超声多普勒技术和超声回波原理,采集血流运动、组织运动信息和人体器官组织成像的设备;检查项目包括循环系统、消化系统、泌尿系统、腺体、妇科、产科。
电子病历文本对应的医学科普结果包括电子病历文本中的所有实体及每个实体的医学科普知识,医学科普结果可以是结构化数据,如下表1所示:
表1医学科普结果示例
得到电子病历文本对应的医学科普结果之后,将医学科普结果添加至预先建立的医学知识库中,医学知识库中的各个实体可以按照实体类别(即,疾病、症状、检查、治疗)进行存储。通过医学知识库,用户不用去医院就能随时随地查询和了解医学知识,从而降低用户到医院看病就诊的恐惧及不信任感,在一定程度上解决医疗工作者工作量过大的问题。
与现有技术相比,本发明实施例具有以下有益效果:
首先,构建语义连接层,语义连接层能够学习到序列中的深层和浅层语义信息,从而可以有效提高序列标注的准确度。
其次,语义连接层采用多层串联连接的RNN变体,例如,LSTM、BiLSTM、GRU、BiGRU,或者其它RNN变体学习序列中的上下文信息,进一步提高了序列标注的准确度;
最后,利用序列标注网络进行电子病历命名实体,能够电子病历文本对应的医学科普结果,进而完善预先建立的医学知识库,用户可以通过医学知识库随时随地查询和了解医学知识,从而降低用户到医院看病就诊的恐惧及不信任感,在一定程度上解决医疗工作者工作量过大的问题。
请参照图6,图6示出了本发明实施例提供的序列标注网络训练装置100的方框示意图。序列标注网络训练装置100包括序列获取模块101、第一执行模块102、第二执行模块103、第三执行模块104、修正模块105及参数更新模块106。
序列获取模块101,用于获取待训练序列和待训练序列的标注结果。
第一执行模块102,用于将待训练序列输入预先建立的序列标注网络,利用序列标注网络的特征表示层获得待训练序列的特征表示序列,特征表示序列包括待训练序列中每个词的特征表示,特征表示包括字特征表示和/或词特征表示。
第二执行模块103,用于将特征表示序列输入序列标注网络的语义连接层,得到语义序列。
在本实施例中,语义连接层包括多层串联连接的双向长短期记忆网络BiLSTM;第二执行模块103,具体用于将特征表示序列输入第一层BiLSTM进行上下文信息编码,得到输出序列并输入中间层BiLSTM,中间层BiLSTM包括至少一层BiLSTM;在中间层BiLSTM中,合并当前层BiLSTM前每一层BiLSTM的输出序列作为当前层BiLSTM的输入序列,利用当前层BiLSTM对输入序列进行上下文信息编码,得到当前层BiLSTM的输出序列;合并最后一层BiLSTM前每一层BiLSTM的输出序列作为最后一层BiLSTM的输入序列,并将最后一层BiLSTM的输出向量作为语义序列。
在本实施例中,每一层BiLSTM均包括前向长短期记忆网络LSTM、后向长短期记忆网络LSTM及合并网络;第二执行模块103执行利用当前层BiLSTM对输入序列进行上下文信息编码的方式,包括:将当前层BiLSTM的输入序列分别输入前向LSTM和后向LSTM;前向LSTM按照从前向后的顺序对输入序列进行学习,得到待训练序列中每个词的第一向量;后向LSTM按照从后向前的顺序对输入序列进行学习,得到待训练序列中每个词的第二向量;通过合并网络合并同一个词的第一向量和第二向量,得到当前层BiLSTM的输出序列。
第三执行模块104,用于将语义序列输入序列标注网络的前馈神经网络层,得到预测结果。
修正模块105,用于将预测结果输入CRF层,利用CRF层对所述预测结果进行修正。
在本实施例中,预测结果包括所有预测序列及每个预测序列的序列得分,序列得分包括待训练序列中每个词被预测为一个预设标签的概率之和;修正模块105,具体用于将每个预测序列的序列得分输入CRF层,CRF层依据预设的转移得分矩阵修正每个预测序列的序列得分,其中,转移得分矩阵表征由一个预设标签转移到另一个预设标签的概率。
参数更新模块106,用于依据预测结果和标注结果对序列标注网络进行参数更新,得到训练后的序列标注网络。
在本实施例中,参数更新模块106,具体用于依据预测结果和标注结果,获取损失函数;依据损失函数,按照梯度下降法更新序列标注网络的参数,直至损失函数满足预设收敛条件,得到训练后的序列标注网络。
请参照图7,图7示出了本发明实施例提供的电子病历处理装置200的方框示意图。电子病历处理装置200包括文本获取模块201、预处理模块202、第四执行模块203、第五执行模块204及第六执行模块205。
文本获取模块201,用于获取电子病历文本。
预处理模块202,用于对电子病历文本进行预处理,得到表征待训练序列的多个待识别序列。
第四执行模块203,用于将每一待识别序列输入利用序列标注网络训练方法训练后的序列标注网络,得到表征预测结果的所有预测实体序列及每个预测实体序列的序列得分。
第五执行模块204,用于将序列得分最高的预测实体序列作为每一待识别序列的实体序列。
第六执行模块205,用于依据所有待识别序列的实体序列,生成电子病历文本对应的医学科普结果,并将医学科普结果添加至预先建立的医学知识库中,医学科普结果包括电子病历文本中的所有实体及每个实体的医学科普知识。
在本实施例中,实体序列包括待识别序列中每个词的实体信息;第六执行模块205具体用于:依据每一待识别序列中每个词的实体信息,获得每一待识别序列中的所有实体;获取每一实体的医学科普知识,并依据每一待识别序列中的所有实体和每一实体的医学科普知识,生成电子病历文本对应的医学科普结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的序列标注网络训练装置100和电子病历处理装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参照图8,图8示出了本发明实施例提供的电子设备20的方框示意图。电子设备20包括处理器21、存储器22及总线23,处理器21和存储器22通过总线23连接。
存储器22用于存储程序,例如序列标注网络训练装置100和/或电子病历处理装置200,序列标注网络训练装置100和/或电子病历处理装置200包括至少一个可以软件或固件(firmware)的形式存储于存储器22中或固化在电子设备20的操作系统(operatingsystem,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 (11)
1.一种序列标注网络训练方法,其特征在于,所述方法包括:
获取待训练序列和所述待训练序列的标注结果;
将所述待训练序列输入预先建立的序列标注网络,利用所述序列标注网络的特征表示层获得所述待训练序列的特征表示序列,所述特征表示序列包括待训练序列中每个词的特征表示,所述特征表示包括字特征表示和/或词特征表示,所述特征表示序列是所述特征表示层先对所述待训练序列进行分词处理,再对得到的每个词进行向量化得到的;
将所述特征表示序列输入所述序列标注网络的语义连接层,得到语义序列,所述语义连接层用于学习序列中的浅层和深层语义信息,所述语义序列包括所述待训练序列中每个词的语义信息,每个词的语义信息是该词在所述待训练序列的语境中结合上下文信息反映的语义;
将所述语义序列输入所述序列标注网络的前馈神经网络层,得到预测结果;
依据所述预测结果和所述标注结果对所述序列标注网络进行参数更新,得到训练后的序列标注网络;
所述语义连接层包括多层串联连接的双向长短期记忆网络BiLSTM;
所述将所述特征表示序列输入所述序列标注网络的语义连接层,得到语义序列的步骤,包括:
将所述特征表示序列输入第一层BiLSTM进行上下文信息编码,得到输出序列并输入中间层BiLSTM,所述中间层BiLSTM包括至少一层BiLSTM;
在所述中间层BiLSTM中,合并当前层BiLSTM前每一层BiLSTM的输出序列作为当前层BiLSTM的输入序列,利用当前层BiLSTM对输入序列进行上下文信息编码,得到当前层BiLSTM的输出序列;
合并最后一层BiLSTM前每一层BiLSTM的输出序列作为最后一层BiLSTM的输入序列,并将最后一层BiLSTM的输出向量作为所述语义序列。
2.如权利要求1所述的方法,其特征在于,每一层BiLSTM均包括前向长短期记忆网络LSTM、后向长短期记忆网络LSTM及合并网络;
所述利用当前层BiLSTM对输入序列进行上下文信息编码,得到当前层BiLSTM的输出序列的步骤,包括:
将所述当前层BiLSTM的输入序列分别输入前向LSTM和后向LSTM;
所述前向LSTM按照从前向后的顺序对所述输入序列进行学习,得到所述待训练序列中每个词的第一向量;
所述后向LSTM按照从后向前的顺序对所述输入序列进行学习,得到所述待训练序列中每个词的第二向量;
通过所述合并网络合并同一个词的第一向量和第二向量,得到所述当前层BiLSTM的输出序列。
3.如权利要求1所述的方法,其特征在于,所述序列标注网络还包括条件随机场CRF层;
所述依据所述预测结果和所述标注结果对所述序列标注网络进行参数更新,得到训练后的序列标注网络的步骤之前,所述方法还包括:
将所述预测结果输入CRF层,利用所述CRF层对所述预测结果进行修正。
4.如权利要求3所述的方法,其特征在于,所述预测结果包括所有预测序列及每个预测序列的序列得分,所述序列得分包括所述待训练序列中每个词被预测为一个预设标签的概率之和;
所述将所述预测结果输入CRF层,利用所述CRF层对所述预测结果进行修正的步骤,包括:
将每个预测序列的序列得分输入所述CRF层,所述CRF层依据预设的转移得分矩阵修正每个预测序列的序列得分,其中,所述转移得分矩阵表征由一个预设标签转移到另一个预设标签的概率。
5.如权利要求1所述的方法,其特征在于,所述依据所述预测结果和所述标注结果对所述序列标注网络进行参数更新,得到训练后的序列标注网络的步骤,包括:
依据所述预测结果和所述标注结果,获取损失函数;
依据所述损失函数,按照梯度下降法更新所述序列标注网络的参数,直至所述损失函数满足预设收敛条件,得到训练后的序列标注网络。
6.一种电子病历处理方法,其特征在于,所述方法包括:
获取电子病历文本;
对所述电子病历文本进行预处理,得到表征待训练序列的多个待识别序列;
将每一所述待识别序列输入利用权利要求1-5任一项所述的方法训练后的序列标注网络,得到表征预测结果的所有预测实体序列及每个预测实体序列的序列得分;
将序列得分最高的预测实体序列作为每一所述待识别序列的实体序列;
依据所有待识别序列的实体序列,生成所述电子病历文本对应的医学科普结果,并将所述医学科普结果添加至预先建立的医学知识库中,所述医学科普结果包括所述电子病历文本中的所有实体及每个实体的医学科普知识。
7.如权利要求6所述的方法,其特征在于,所述实体序列包括所述待识别序列中每个词的实体信息;
所述依据所有待识别序列的实体序列,生成所述电子病历文本对应的医学科普结果的步骤,包括:
依据每一所述待识别序列中每个词的实体信息,获得每一所述待识别序列中的所有实体;
获取每一所述实体的医学科普知识,并依据每一所述待识别序列中的所有实体和每一所述实体的医学科普知识,生成所述电子病历文本对应的医学科普结果。
8.一种序列标注网络训练装置,其特征在于,所述装置包括:
序列获取模块,用于获取待训练序列和所述待训练序列的标注结果;
第一执行模块,用于将所述待训练序列输入预先建立的序列标注网络,利用所述序列标注网络的特征表示层获得所述待训练序列的特征表示序列,所述特征表示序列包括待训练序列中每个词的特征表示,所述特征表示包括字特征表示和/或词特征表示,所述特征表示序列是所述特征表示层先对所述待训练序列进行分词处理,再对得到的每个词进行向量化得到的;
第二执行模块,用于将所述特征表示序列输入所述序列标注网络的语义连接层,得到语义序列,所述语义连接层用于学习序列中的浅层和深层语义信息,所述语义序列包括所述待训练序列中每个词的语义信息,每个词的语义信息是该词在所述待训练序列的语境中结合上下文信息反映的语义;
第三执行模块,用于将所述语义序列输入所述序列标注网络的前馈神经网络层,得到预测结果;
参数更新模块,用于依据所述预测结果和所述标注结果对所述序列标注网络进行参数更新,得到训练后的序列标注网络;
所述语义连接层包括多层串联连接的双向长短期记忆网络BiLSTM;所述第二执行模块具体用于:
将所述特征表示序列输入第一层BiLSTM进行上下文信息编码,得到输出序列并输入中间层BiLSTM,所述中间层BiLSTM包括至少一层BiLSTM;
在所述中间层BiLSTM中,合并当前层BiLSTM前每一层BiLSTM的输出序列作为当前层BiLSTM的输入序列,利用当前层BiLSTM对输入序列进行上下文信息编码,得到当前层BiLSTM的输出序列;
合并最后一层BiLSTM前每一层BiLSTM的输出序列作为最后一层BiLSTM的输入序列,并将最后一层BiLSTM的输出向量作为所述语义序列。
9.一种电子病历处理装置,其特征在于,所述装置包括:
文本获取模块,用于获取电子病历文本;
预处理模块,用于对所述电子病历文本进行预处理,得到表征待训练序列的多个待识别序列;
第四执行模块,用于将每一所述待识别序列输入利用权利要求1-5任一项所述的方法训练后的序列标注网络,得到表征预测结果的所有预测实体序列及每个预测实体序列的序列得分;
第五执行模块,用于将序列得分最高的预测实体序列作为每一所述待识别序列的实体序列;
第六执行模块,用于依据所有待识别序列的实体序列,生成所述电子病历文本对应的医学科普结果,并将所述医学科普结果添加至预先建立的医学知识库中,所述医学科普结果包括所述电子病历文本中的所有实体及每个实体的医学科普知识。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-5中任一项所述的序列标注网络训练方法,或者,如权利要求6-7中任一项所述的电子病历处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的序列标注网络训练方法,或者,如权利要求6-7中任一项所述的电子病历处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625947.4A CN110444261B (zh) | 2019-07-11 | 2019-07-11 | 序列标注网络训练方法、电子病历处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625947.4A CN110444261B (zh) | 2019-07-11 | 2019-07-11 | 序列标注网络训练方法、电子病历处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110444261A CN110444261A (zh) | 2019-11-12 |
CN110444261B true CN110444261B (zh) | 2023-02-03 |
Family
ID=68430228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910625947.4A Active CN110444261B (zh) | 2019-07-11 | 2019-07-11 | 序列标注网络训练方法、电子病历处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110444261B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046656B (zh) * | 2019-11-15 | 2023-07-14 | 北京三快在线科技有限公司 | 文本处理方法、装置、电子设备及可读存储介质 |
CN113051905A (zh) * | 2019-12-28 | 2021-06-29 | 中移(成都)信息通信科技有限公司 | 训练医疗命名实体识别模型及医疗命名实体识别的方法 |
CN111312354B (zh) * | 2020-02-10 | 2023-10-24 | 东华大学 | 基于多智能体强化学习的乳腺病历实体识别标注增强系统 |
CN112232024A (zh) * | 2020-10-13 | 2021-01-15 | 苏州大学 | 一种基于多标注数据的依存句法分析模型训练方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569998A (zh) * | 2016-10-27 | 2017-04-19 | 浙江大学 | 一种基于Bi‑LSTM、CNN和CRF的文本命名实体识别方法 |
CN108038103A (zh) * | 2017-12-18 | 2018-05-15 | 北京百分点信息科技有限公司 | 一种对文本序列进行分词的方法、装置和电子设备 |
CN109558484A (zh) * | 2018-10-24 | 2019-04-02 | 浙江华云信息科技有限公司 | 基于相似度词序矩阵的电力客服工单情感量化分析方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552728B2 (en) * | 2016-07-29 | 2020-02-04 | Splunk Inc. | Automated anomaly detection for event-based system |
CN106778882B (zh) * | 2016-12-23 | 2019-11-05 | 杭州云象网络技术有限公司 | 一种基于前馈神经网络的智能合约自动分类方法 |
CN107122416B (zh) * | 2017-03-31 | 2021-07-06 | 北京大学 | 一种中文事件抽取方法 |
CN108538395A (zh) * | 2018-04-02 | 2018-09-14 | 上海市儿童医院 | 一种通用的医疗专病数据系统的构建方法 |
CN108984524A (zh) * | 2018-07-05 | 2018-12-11 | 北京理工大学 | 一种基于变分神经网络主题模型的标题生成方法 |
CN109871538A (zh) * | 2019-02-18 | 2019-06-11 | 华南理工大学 | 一种中文电子病历命名实体识别方法 |
-
2019
- 2019-07-11 CN CN201910625947.4A patent/CN110444261B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569998A (zh) * | 2016-10-27 | 2017-04-19 | 浙江大学 | 一种基于Bi‑LSTM、CNN和CRF的文本命名实体识别方法 |
CN108038103A (zh) * | 2017-12-18 | 2018-05-15 | 北京百分点信息科技有限公司 | 一种对文本序列进行分词的方法、装置和电子设备 |
CN109558484A (zh) * | 2018-10-24 | 2019-04-02 | 浙江华云信息科技有限公司 | 基于相似度词序矩阵的电力客服工单情感量化分析方法 |
Non-Patent Citations (2)
Title |
---|
"End-to-end Learning of Semantic Role Labeling Using Recurrent Neural Networks";Jie Zhou等;《Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing》;20150731;第1127-1137页 * |
"基于语义相关度计算的词义消歧";孟禹光;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180515;I138-550页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110444261A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110459282B (zh) | 序列标注模型训练方法、电子病历处理方法及相关装置 | |
CN110444261B (zh) | 序列标注网络训练方法、电子病历处理方法及相关装置 | |
CN110472229B (zh) | 序列标注模型训练方法、电子病历处理方法及相关装置 | |
CN109670179B (zh) | 基于迭代膨胀卷积神经网络的病历文本命名实体识别方法 | |
Yin et al. | Chinese clinical named entity recognition with radical-level feature and self-attention mechanism | |
CN111540468B (zh) | 一种诊断原因可视化的icd自动编码方法与系统 | |
CN110442840B (zh) | 序列标注网络更新方法、电子病历处理方法及相关装置 | |
CN106682397B (zh) | 一种基于知识的电子病历质控方法 | |
CN111274806B (zh) | 分词和词性识别方法、装置及电子病历的分析方法、装置 | |
CN111079377B (zh) | 一种面向中文医疗文本命名实体识别的方法 | |
CN111709233B (zh) | 基于多注意力卷积神经网络的智能导诊方法及系统 | |
Yu et al. | Automatic ICD code assignment of Chinese clinical notes based on multilayer attention BiRNN | |
CN112597774B (zh) | 中文医疗命名实体识别方法、系统、存储介质和设备 | |
CN110705293A (zh) | 基于预训练语言模型的电子病历文本命名实体识别方法 | |
CN111538845A (zh) | 一种构建肾病专科医学知识图谱的方法、模型及系统 | |
CN110069779B (zh) | 医疗文本的症状实体识别方法及相关装置 | |
US20190057773A1 (en) | Method and system for performing triage | |
CN110427493B (zh) | 电子病历处理方法、模型训练方法及相关装置 | |
CN112329964A (zh) | 用于推送信息的方法、装置、设备以及存储介质 | |
CN110931137B (zh) | 机器辅助对话系统、方法及装置 | |
WO2023029502A1 (zh) | 基于问诊会话构建用户画像的方法、装置、设备和介质 | |
JP7464800B2 (ja) | 小サンプル弱ラベル付け条件での医療イベント認識方法及びシステム | |
CN114512228A (zh) | 一种中医疾病辅助诊断系统、设备及存储介质 | |
CN116682553A (zh) | 一种融合知识与患者表示的诊断推荐系统 | |
CN111627512A (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 |