一种医学文档专业词汇自动化标注方法与流程

文档序号:18267588发布日期:2019-07-27 09:19阅读:234来源:国知局
一种医学文档专业词汇自动化标注方法与流程

本发明属于机器学习技术领域,尤其是一种医学文档专业词汇自动化标注方法。



背景技术:

随着医疗研究社区的发展,每年都会有越来越多的论文发表出来。人们越来越需要寻找对于论文的改进方法,并自动理解这些论文中的关键思想。然而,由于各种各样的领域和极其有限的注释资源,对科学信息的提取相对较少。

同时,随着人们对于医疗资源的需求、相应的医学文档及病例数量激增,导致研究人员和医护人员需要快速对于病人的过去的医疗资料进行整理。从病人病例中可以快速帮助医护人员作出判断的往往是一些专业上的词汇或关键词,人工整理这些词汇和关键词需要非常多的时间,由于人力限制,不可能很快地完成大量病例、医疗资料的整理工作。

综上所述,随着对于医疗资源需求的上升,如何自动对专业词汇或关键词进行标注以提升医护人员对于病例、医疗资料的处理速度并帮助他们更好地为病人治疗是目前迫切需要解决的问题。



技术实现要素:

本发明的目的在于克服现有技术的不足,提出一种医学文档专业词汇自动化标注方法,其采用半监督学习算法对数据量进行扩充,克服了以往医疗文本标注数据量不足导致的模型性能较差的问题,并最终提高了在文本中识别专业词汇和关键词的准确性。

本发明解决其技术问题是采取以下技术方案实现的:

一种医学文档专业词汇自动化标注方法,包括以下步骤:

步骤1、对输入的医学文档进行数据预处理,得到预处理后的医学文档文本;

步骤2、使用bilstm建模文本,得到词的字母级特征向量;

步骤3、使用word2vec建模文本,得到词的单词级特征向量;

步骤4、基于文本语言语用特点,得到词的语言特征向量;

步骤5、将步骤2、步骤3及步骤4得到词的字母级特征向量、单词级特征向量和语言特征向量进行融合,作为词的编码向量;

步骤6、将分词后的医学文档文本的词标注为如下四类医学实体:疾病名称、疾病症状、治疗手段和药物名称,每一类实体用iobes表示词在该实体中的具体位置,得到标注数据集;

步骤7、将步骤1得到的文本以及步骤5得到的词的编码向量作为bilstm的输入,对每一个词输出一个多维向量作为词的空间表示;

步骤8、使用标签传播算法扩展标注数据集得到增强后的标注数据集;

步骤9、将步骤7的多维向量作为词的空间表示作为词的向量,将步骤8得到的增强后的标注数据集输入条件随机场进行训练建模,并最终输出标注结果。

进一步,所述步骤1的具体实现方法为:首先对输入的医学文档进行分词,形成一个数组,存储文本中的每个词和标点符号,然后去除停用词,最后提取词干和词形还原,得到单词的基本形式,并构成未标注的单词数组。

进一步,所述步骤2的具体实现方法为:使用bilstm对预处理后的医学文档文本的字母级特征进行编码,使用每个单词的首五个字母进行编码,最终得出长度为5d的字母级特征向量。

进一步,所述步骤3的具体实现方法为:使用google的word2vec算法对预处理后的医学文档文本的单词级特征进行编码,最终得到长度为d的针对每个单词的单词级特征向量。

进一步,所述步骤4的具体实现方法为:根据文本语言语用特点,采用手工定义方法,对预处理后的医学文档文本定义如下特征:首字母大小写、单词全部小写、单词全部大写、词性和语法结构,形成长度为21的特征向量,每个特征用0或1来表示。

进一步,所述步骤5的具体实现方法为:将字母级特征向量、单词级特征向量和语言特征向量连接在一起,形成一个长度为5d+d+21的对于每个词的综合的特征向量。

进一步,所述步骤6的标注数据集为包括20个类别的组合标签。

进一步,所述步骤7的具体实现方法为:利用步骤5得到的三种特征形成的组合特征向量,并将整个词语数组的所有特征向量进行排布,形成训练数据矩阵,该矩阵的行的数量是词语数组中的词的数量,矩阵的列数是5d+d+21;使用bilstm,通过向前和向后计算过程的隐藏层作为输入传递给线性层,该线性层将维度投影到标签类型空间的大小为20,并用作crf层的输入。

进一步,所述步骤8的具体实现方法为:首先,基于单词所对应的特征向量构建图,并作为图中的节点,使用特征向量之间的相似度定义他们的距离以及权重wuv,图中节点的总数等于未标记数据和已标记数据之和;然后,使用标签传播算法通过优化最小化kullback-leibler距离的目标函数,使相邻节点之间的标签分布尽可能彼此相似,最终使得所有图中节点对应的词获得标注,得到增强后的数据集。

进一步,所述步骤9的具体实现方法为:将步骤7得到的多维的词的空间表示作为词的向量,bilstm最终会输出一个标注矩阵p,该p标注矩阵包括对于各个标签的概率分布,将其倒入crf层中,得出一个标注序列y,计算序列y的得分φ(y;x,θ),再计算标注序列y在所有标注序列中出现的概率pθ(y|x),最后使用反向传播对于目标函数log-进行最大化,以完成监督学习,同时该crf模型作为最终的结果输出。

本发明的优点和积极效果是:

1、本发明将医疗文献中的关键词分为疾病名称(disease)、症状(symptom)、治疗手段(treatment-method)和药物名称(drug-name)这四种类别,并基于半监督学习标注方法对于医学文档或者病例进行专业词汇上的标注,可在人力物力消耗极低的情况下,为医护人员或学者快速地理解文本中的内容,更好地作出医疗决策或研究。

2、本发明采用半监督学习算法对大量未标注数据进行标注,成功地克服了现有医疗行业标注数据过少的缺陷,有效地提高了模型能够使用的数据量,并大幅提升算法对于关键词和专业词汇的标注准确率,可广泛用于医疗文献处理中。

附图说明

图1为本发明的处理流程图。

具体实施方式

以下结合附图对本发明实施例做进一步详述。

本发明的设计思想:利用机器学习算法和技术,并基于半监督学习标注方法对于医学文档或者病例进行专业词汇上的标注。本发明构建了一个三层的分层的神经网络来对文本进行标记:(1)文本中的单词使用三种方式进行向量化的特征提取,bilstm提取基于字母的特征,word2vec对单词做词嵌入,以及基于语法结构的特征提取。(2)bilstm提取在同一个句子中,围绕在单词周围的上下文信息,并进行编码。(3)crf标记层联合使用crf目标函数对单词以及标记标签建模,并作出最终的标签判断。

基于上述设计思想,本发明的医学文档专业词汇自动化标注方法,如图1所示,包括以下步骤:

步骤1:对输入的医学文档进行数据预处理,得到预处理后的医学文档文本。

在本步骤中,输入为医学文档,输出为单词数组。数据预处理方法为:对医学文档首先进行分词,形成一个数组,存储文本中的每个词和标点符号,然后去除停用词,如is”、“but”、“shall”、“by”,之后提取词干和词形还原,得到单词的基本形式。例如,running,ran,runs,进行提取词干后,得到run单词,词形还原基本类似,能把任何形式的词汇还原为一般形式,经过数据预处理得到由一般形式构成的未标注的单词数组。

步骤2:使用bilstm建模文本,得到词的字母级特征向量。

本步骤的输入为进行数据预处理后的词语数组,输出为基于字母特征的特征向量,长度为5d。

本发明使用bilstm对于字母特征进行编码,称之为character-basedembedding。词的字母级特征由bilstm的向前传播和向后计算过程中的隐藏层向量生成,构建基于字符的嵌入层的优点是它可以处理词汇表之外的词汇和公式,这些词汇和公式在这些数据中很常见,生成的特征向量长度设置为d。但是本发明采用的是首部5-gram(即在取单词的从左往右,最开始的5个字母做编码,如果没有5个字母,剩余的长度作补零处理)提取特征,最终特征向量长度为5d。

步骤3:使用word2vec建模文本,得到词的单词级特征向量。

在本步骤中,使用固定词汇表(加上未知单词标记)的单词被映射到向量空间,使用具有不同语料库组合的word2vec预训练进行初始化,单词使用google的word2vec算法进行编码,称之为wordembedding,最终得出针对每个单词的特征向量长度为d。

步骤4:基于文本语言语用特点,设计得到词的语言特征向量。

在本步骤中,输入为只对原文本进行分词的词语数组,输出为基于语言特征设计的特征向量,长度为21。特征不单独训练,为手工定义,称之为featureembedding。该部分定义的特征包括:首字母大小写,单词全部小写,单词全部大写,词性和语法结构等共计21个特征,所形成的特征向量长度为21,每个特征用0或1来表示,表示他们有没有相应的特征。

步骤5:将步骤2、3、4得到的词的字母级特征、单词级特征及语言特征进行融合,作为词的编码向量。

本步骤的输入为字符级的特征向量、单词级的特征向量、词的语言特征向量向量,将上述三种特征向量连接在一起,形成一个长度为5d+d+21的对于每个词的综合的特征向量。

步骤6:标注数据:将分词后的电子病历文本的词标注为四类医学实体(疾病,症状,治疗手段,药物名称),每一类实体用iobes表示词在该实体中的具体位置,共标注为20类,得到标注数据集。

为了能够区分相同类型的两个连续关键短语的跨度,本发明为句子中的每个单词指定标签,指定他们在短语中的位置和类型。在预处理数据的基础上,为每一个词都标注上相应的标签,表示他们所在短语的位置和相应的类别,首先标示他们的位置,本发明统一使用iobes(inside,outside,begining,end和singleton)来描述一个单词在专业短语或词汇中的位置,i表示单词在短语的内部,b表示他们在短语的开头,e表示他们在短语的结束,s表示这个词是一个单独的专业词汇,0表示在该短语的外部,包含在句子里。同时再结合本发明将这些专业词汇和短语标注的类别,包括疾病名称(disease),症状(symptom),治疗手段(treatment-method),药物名称(drug-name),综合形成一个完整的标签,例如,criticialillpatients(危重症病人)被标注为”b-symptomi-symptome-symptom”。这样形成的组合标签一共就有20个类别。由于训练集数量非常庞大,本发明标注了其中一部分数据,这样就构成了数据集中已标注数据和未标注数据。

步骤7:将步骤1中预处理后的文本以及步骤5中的词的编码向量作为bilstm的输入,将输出设置为20,对每一个词输出一个20维的向量作为词的空间表示。

在本步骤中,利用步骤5得到的三种特征形成的组合特征向量,并将整个词语数组的所有特征向量进行排布,形成训练数据矩阵,矩阵的行的数量是词语数组中的词的数量,矩阵的列数是5d+d+21,本发明使用bilstm,通过向前和向后计算过程的隐藏层作为输入传递给线性层,该线性层将维度投影到标签类型空间的大小,为20,并用作crf层的输入。

步骤8:对步骤6得到的标注数据集进行数据增强,使用标签传播算法扩展标注数据集得到增强后的标注数据集。

本步骤包括两部分:第一部分是基于单词所对应的特征向量构建图,并作为图中的节点,使用特征向量之间的相似度定义他们的距离以及权重wuv,图中节点的总数等于未标记数据和已标记数据之和。第二部分是使用标签传播算法,该算法旨在通过优化最小化kullback-leibler距离的目标函数,使相邻节点之间的标签分布尽可能彼此相似。该部分最终使得所有图中节点对应的词获得标注,得到增强后的数据集。具体方法为:

第一部分先来构建标签传播算法所需要的关系图,图中的顶点与词的特征向量所相对应,边是词特征之间的距离,捕获语义相似性。图的总大小等于标记数据量vl和未标记数据量vu之和。用一组预先训练的单词嵌入(维度为d)建模,其中5-gram以当前词的首5个字母,最接近动词的单词嵌入,以及包括部分的一组词性的标签和大小写(43和4维度的one-hot向量)。然后使用pca降维算法将长度为5d+d+43+4的所得特征向量投影到100维。本发明定义节点u和v之间的边的权重wuv如下:wuv=de(u,v)ifv∈κ(u)oru∈κ(v),其中κ(u)是u的k-nearest邻居的集合,de(u,v)是图中任意两个节点u和v之间的欧几里德距离。

对于图中的每个节点i,本发明使用向前和向后计算过程计算边缘概率{qi}。设θi表示第n次迭代后crf参数的估计,本发明对于标记和未标记数据中句子j中每个标记位置i的iobes标记计算边缘概率

第二部分使用标签传播算法增强数据,对于数据集中未标注数据进行标注,该算法旨在通过优化最小化kullback-leibler距离的目标函数,使相邻节点之间的标签分布尽可能彼此相似,通过最小化如下kullback-leibler距离:i)对于图中所有词的节点,标记数据的分布ru和预测的标签分布qu。ii)图中所有节点u及其相邻节点v,qu和qv的分布。iii)所有分布节点的qu和crf边缘概率如果节点未连接到已标记顶点,则第三项将预测分布规则化为crf预测,确保算法至少与标准自我训练一样好。

步骤9:将步骤7的20维的词的空间表示作为词的向量,将步骤8得到的增强后的标注数据集输入条件随机场进行训练建模。

将步骤7的20维的词的空间表示作为词的向量,bilstm最终会输出一个标注矩阵p,p矩阵基本已经包括对于各个标签的概率分布,然后将其倒入crf层中,会得出一个标注序列y,通过方法计算序列y的得分φ(y;x,θ),再计算标注序列y在所有标注序列中出现的概率pθ(y|x),最后使用反向传播对于目标函数进行最大化,以完成监督学习,同时该crf模型也作为最终的结果输出。具体方法如下:

关键词分类是一种在输出标签之间存在强依赖性的任务例如,i-disease不能在b-treatment-method后面,因此,本发明不是对每个输出做出独立的标记决策,而是使用条件随机场对它们进行联合建模。对于输入句子x=(x1,x2,x3,...,xn),本发明认为p是bilstm网络输出的分数矩阵。p的大小为n×m,其中n是句子中的标记数,m是不同标记的数量。pt,i对应于句子中第亡个单词的第i个标签的分数。本发明使用一阶马尔可夫模型并定义转换矩阵t,其中ti,j表从标签i到标签j的分数。本发明同时增加了y0和yn作为开始和结束标识符。因此t矩阵的维度变成了m+2。

给定一个可能的输出y和神经网络参数θ,本发明将得分定义为

通过在所有可能的标签序列上应用softmax来获得序列y的概率:

pθ(y|x)=exp(φ(y;x,θ))/∑y′∈yexp(φ(y′;x,θ))

其中y表示所有可能的标签序列。使用前向算法能有效地计算归一化项。

最后使用数据集中的标签数据进行初步训练,在训练期间,本发明最大化给定的语料库{x,y}的正确标签序列的log-probabilityl(y;x,θ)。同时基于使用句子的总分数计算的梯度来完成反向传播。

得到训练好的crf算法后,将其与之前所构建的特征提取部分结合,就可以开始对于文本进行标注。即输入一个句子x=(x1,x2,x3...,xn),会得到一个标注序列y=(y1,y2,y3...,yn)。

上述公式中的参数含义说明如下:

本发明未述及之处适用于现有技术。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1