首页> 中国专利> 一种面向医疗文本数据的过滤方法及系统

一种面向医疗文本数据的过滤方法及系统

摘要

本发明提供了一种面向医疗文本数据的过滤方法,其具体步骤如下:获取未标注医疗类别标签的医疗记录数据集S,输入训练好的DSSM‑C‑BiLSTM模型,输出数据集S的预测医疗类别标签Label,通过标签Label进行数据过滤;所述DSSM‑C‑BiLSTM模型训练过程如下:(1)收集医疗记录数据集A,并对医疗记录数据集A进行数据预处理,得到数据集B,并将数据集B划分为训练集和测试集;(2)构建DSSM‑C‑BiLSTM模型,将数据集B的训练集输入到DSSM‑C‑BiLSTM模型中进行训练学习,并将数据集B的测试集输入到训练好的DSSM‑C‑BiLSTM模型中,得到医疗类别标签概率;(3)根据预测医疗类别标签和真实医疗类别标签进行模型评价指标计算,当模型评价指标满足条件后,模型训练完成。

著录项

  • 公开/公告号CN112712118A

    专利类型发明专利

  • 公开/公告日2021-04-27

    原文格式PDF

  • 申请/专利权人 银江股份有限公司;

    申请/专利号CN202011605648.3

  • 申请日2020-12-29

  • 分类号G06K9/62(20060101);G06F16/35(20190101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构33246 浙江千克知识产权代理有限公司;

  • 代理人赵芳;张瑜

  • 地址 310012 浙江省杭州市益乐路223号1幢1层

  • 入库时间 2023-06-19 10:46:31

说明书

技术领域

本发明属于自然语言处理领域,具体涉及一种面向医疗文本数据的过滤方法及系统。

背景技术

随着互联网技术的飞速发展,医院存储海量的医疗信息和资源,但受到健康医疗大数据领域法律相关规则的滞后性,数据没有得到充分的挖掘和利用,相关发展受到制约。近些年来,健康医疗大数据相关产业已经被列入国家大数据战略布局,和医疗健康大数据相关的政策频出,以及人工智能技术的发展进步,利用机器学习算法充分挖掘医疗数据中有用信息成为研究的热点。

而医疗数据中最为核心、数据量最多且最有价值的数据为电子病历,是患者就医过程中所产生的数据,主要包括患者的基本信息和医疗记录数据。其中医疗记录数据包括患者病史、体格检查、辅助检查以及初步诊断结果,成为数据挖掘的主要方向。越来越多的研究者利用医学自然语言理解技术,特别是机器学习相关算法对医疗数据进行挖掘。

但医疗记录的文本序列长度远大于深度神经网络所能处理的序列长度,导致神经网络不能够很好的获取整个文本序列信息,训练得到最优模型,故需要对医疗数据进行压缩过滤。

发明内容

针对上述背景技术介绍中存在的问题,本发明的目的在于提供了一种面向医疗文本数据的过滤方法及系统,通过对医疗记录按句分割,统计句子频率并排序等数据预处理操作,得到可训练数据集,然后通过多种基模型对数据进行训练,并融合投票机制对预测结果进行投票,再对错误的预测结果进行反馈修正,最后根据最终预测结果过滤掉数据。

本发明采用的技术方案是:

一种面向医疗文本数据的过滤方法,其具体步骤如下:

获取未标注医疗类别标签的医疗记录数据集S,输入训练好的DSSM-C-BiLSTM模型,输出数据集S的预测医疗类别标签Label,通过标签Label进行数据过滤;所述DSSM-C-BiLSTM模型训练过程如下:

(1)收集医疗记录数据集A,并对医疗记录数据集A进行数据预处理,得到数据集B,并将数据集B划分为训练集和测试集;

(2)构建DSSM-C-BiLSTM模型,将数据集B的训练集输入到DSSM-C-BiLSTM模型中进行训练学习,并将数据集B的测试集输入到训练好的DSSM-C-BiLSTM模型中,得到医疗类别标签概率;

(3)根据预测医疗类别标签和真实医疗类别标签进行模型评价指标计算,当模型评价指标满足条件后,模型训练完成。

进一步,步骤(2)还包括步骤:

构建多个基础模型,将数据集B的训练集输入到1个或多个基础模型中进行训练学习,并将将数据集B的测试集输入到训练好的1个或多个基础模型中,得到医疗类别标签概率,输出预测医疗类别标签;

采用投票机制对所有模型得到的预测医疗类别标签进行投票融合,得到预测医疗类别标签;

所述基础模型包括以下一种或多种:CNN模型、LSTM模型、BiLSTM模型、C-BiLSTM模型。

进一步,步骤(1)中对医疗记录数据集A进行数据预处理的具体步骤如下:

(1.1)获取数据:收集医疗记录数据集A,数据集A包括N条医疗记录,医疗记录数据主要病历特征,拟诊讨论以及医疗计划,数据集A的形式为A={text

(1.2)数据清洗:根据步骤(1.1)中获取的数据,对其进行数据清洗,包括以下一种或几种处理:相似文本去重,缺失的文本去除,以及对短的文本进行删除;

(1.3)正则提取:对医疗记录数据集A进行正则提取医疗记录中病例特征部分,得到新的医疗记录数据集A′;

(1.4)分词:利用jieba分词对数据集A′进行分词,并建立停用词典,移除掉语气词、标点符号、数字以及特殊符号;

(1.5)获取标注数据:对数据集A′按句分割,得到新的数据集B,并对数据集B标注医疗记录的医疗类别,标签Label表示医疗记录的医疗类别,其中医疗类别标签具体分为Label1,Label2,Label3三种标签极性,对应的标签分别为1,-1,0。对于未标注待预测的数据集记为S。

进一步,步骤(1.5)中的数据标注采用人工标注或半自动化标注;标注方法是

1)统计数据集B每个句子出现的频率,并对句频进行降序操作,对句频较高的数据进行半自动化标注;

或者是

2)采用频繁项集挖掘算法,基于已标注医疗类别的医疗记录数据集C挖掘频繁出现的某一医疗类别的模式,当数据集B也包含该医疗类别的模式,则可标注数据集B的标签Label为该医疗类别的模式对应的标签;若数据集B无法标注任一医疗类别,则进行人工标注;若数据集B标注出现两个及以上医疗类别,则进行人工标注。

或者是

3)采用词汇打分方法,基于已标注医疗类别的医疗记录数据集C为词表V中的医疗领域专业词汇打分,识别数据集B的词汇,给其句子中对应词汇打分,计算分值,若满足设定阈值,则标注相应的类别标签,若不满足阈值,则进行人工标注;若数据集B出现无对应分数的词汇,则不打分。

进一步,步骤(2)中的DSSM-C-BiLSTM模型由6个连续的层组成,分别为

DSSM词嵌入层,用于对输入的数据集B的每个词汇使用DSSM文本嵌入式表示方法输出DSSM词向量B_DSSM;

卷积层,用于对DSSM词嵌入层输出的DSSM词向量B_DSSM进行卷积计算,输出卷积层学习特征向量B_CNN;

空间注意力机制层,用于对卷积层输出的卷积层学习特征向量B_CNN进行空间注意力分配,对连续输入的序列中的每一时刻输入文本位置向量进行特征提取,并根据卷积层层级中的隐藏状态以及相似特征词向量,计算每一时刻的注意力权重,并加权后输出新的特征向量

双向LSTM层,用于对空间注意力机制层输出的特征向量

时间注意力机制层,用于将双向LSTM层编码后得到的数据向量进行时间注意力分配,对每一时刻输入文本位置向量进行特征提取,并根据LSTM编码层级中的隐藏状态以及相似特征词向量,计算每一时刻的注意力权重,并加权后输出的特征向量e

全连接层,用于对输入的特征向量y

进一步,DSSM词嵌入层的文本嵌入的具体步骤如下:

数据集B为B={(term

对于输入训练文本中的每个词汇word

其中DSSM词嵌入层包括:输入层、隐藏层、输出层,首先对词表V中的|V|个词语进行one-hot编码,得到1*|V|的矩阵M,将其输入到DSSM模型中进行迭代训练,并经过relu函数计算得到低维语义向量;那么隐藏层则为|V|*d的向量矩阵,其中隐藏层的矩阵用N表示,|V|代表词表的大小,d代表词向量的维度,最后得到每个词语的词向量:Q=M*N;

其中输出DSSM向量y表示为:

l

l

y=f(u

其中,x为输入DSSM的one-hot高维向量,u

在每次卷积运算之后加入激活函数relu进行非线性变换,其表达式如下:

relu(x)=max(0,x) (4)

如果输入的x小于0,则令输出等于0;如果输入的x大于0,则令输出等于输入;

假设输入训练语料term

进一步,卷积层由三个连续的卷积和非线性变换来进行特征表示,令k×l为R

经卷积层学习特征表示为:

B_CNN=C={(c

其中,c

进一步,空间注意力机制层对输入向量序列C的每一时刻c

其中(h

经空间注意力机制学习特征得到新的特征表示为:

其中,

进一步,双向LSTM层先根据神经网络LSTM能够学习从当前t时刻的输入向量

其中h

其次,再使用BiLSTM网络对不同时刻的隐藏状态进行更新,LSTM神经网络中包含遗忘门f

f

i

s

o

h

其中W

进一步,时间注意力机制层对输入数据向量

其中(h′

再次,将上一步骤得到的时间注意力分配后的数据权重进行计算,得到语义向量e

其中h

解码器隐藏层状态在t时刻的更新根据如下方程进行更新:

h

在双向LSTM层的解码端,由编码器最终输出的语义编码e

P(y

对于整个输入编码和解码过程中,使用梯度优化算法以及最大似然条件概率为损失函数来进行模型的训练和优化,其表达式为:

其中θ为相应模型中的参数,c

进一步,全连接层的表达式如下:

其中z

进一步,步骤(3)中模型评价指标计算,将训练集划分为K等份,以其中一份作为测试数据,其他的K-1份数据作为训练数据进行模型训练,每次训练都是从K个部分选取一份不同的数据部分作为测试数据,剩下的K-1个当作训练数据,进行交叉验证,最后把得到的K个实验结果进行平分,得到最优的结果;具体步骤如下:

(a)初始化原始训练集:T={(c

(b)将原始训练集T划分为K(K

(c)再将新的训练集T输入到构造的基模型中进行训练,得到学习模型Mt;

(d)不断迭代步骤(b)(c),得到新的基模型,加入到组合模型中并进行拟合;

(e)利用可决系数法检测学习模型Mt的拟合优度,若拟合优度大于设定阈值,则认为组合模型拟合较优,进而停止迭代;

其中利用可决系数法检查模型拟合的优度,具体表达式如下:

其中,y

进一步,所述采用投票机制对所有模型得到的预测医疗类别标签进行投票融合,具体为:将同一测试集输给每个基模型,并将各个基模型算法输出的类频率进行类标签的选择,根据每个类的类的统计频率,值大的类对应标签则为最终的输出类别,从而提高了标签预测的准确率;计算每一测试集的标签类别统计频率P公式如下:

P=sort(count

其中sort()为排序函数,count

实现上述过滤方法的一种面向医疗文本数据的过滤系统,包括:

数据预处理模块,用于数据预处理,包括获取医疗领域病人的医疗记录语料作为训练语料,数据清洗、正则提取、按句分割、文本分词,文本标注;

模型训练模块,用于在2种模型结构基础上构建的5种基模型,并进行训练,得到预测概率;

融合投票机制模块,用于根据预测标签对所有基模型进行投票,选择基模型输出最多的标签;

反馈修正模块,用于将预测结果与实际结果进行对比,对预测不准确的标签对应的数据进行反馈修正,对修正后的数据进行数据过滤,

所述数据预处理模块、模型训练模块、融合投票机制模块以及反馈修正模块依次连接。

本发明与现有技术相比,其显著优点包括:

(1)本发明根据训练文本序列冗余度高,采用DSSM-C-BiLSTM模型结构提取文本特征,能够很好的预测文本标签Label极性,通过标签Label极性进行数据筛选过滤,从而降低文本序列的冗余度;

(2)本发明融合投票机制,对多种基模型的预测结果进行投票,选择票数最多的标签,同时将该标签与实际标签进行对比,对预测不准确的标签进行反馈修正,提高了预测准确度,从而提高了数据过滤质量;

(3)本发明根据训练文本序列长度远大于深度神经网络所能处理序列长度,采用相关算法达到数据过滤的效果,从而可以使神经网络能很好的获取整个文本序列信息,训练得到最优模型;

(4)本发明数据过滤效率的提高,有利于减小训练内存开销,从而提高训练速度。

(5)本发明构建基于DSSM-C-BiLSTM的多时空多特征深度学习算法模型,其中DSSM模型使用低维语义向量表达,提高文本表征准确度;CNN与传统的卷积神经网络有一些区别与改进,去掉最大池化层,而是由三个连续的卷积和非线性变换来达到最终特征表示,这样就避免减少下一层的参数和计算量,从而是卷积层充分表征了文本语义;同时引入长短时记忆神经网络BiLSTM,用于对卷积后维度不变的数据进行空间和时间上注意力分配,以及相似词特征向量加权并进行编码和解码,得到高度抽象化的语义特征,提高了文本分类准确度,从而提高了数据过滤质量。

附图说明

图1是本发明的结构示意图。

图2是本发明的总体流程图。

图3是本发明的数据预处理流程示意图。

图4是本发明的DSSM-C-BiLSTM模型架构示意图。

图5是本发明的BiLSTM网络模型示意图。

图6是本发明的基模型投票机制示意图。

图7是本发明的数据过滤流程示意图。

具体实施方式

下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。

如图1所示,本实施例提供了一种面向医疗文本数据的过滤系统,包括数据预处理模块、模型训练模块、融合投票机制模块以及反馈修正模块。所述数据预处理模块用于数据预处理,包括获取医疗领域病人的医疗记录语料作为训练语料,数据清洗、正则提取、按句分割、文本分词,文本标注;所述模型训练模块是在卷积神经网络CNN和长短时记忆网络LSTM这2种模型结构基础上构建的5种基模型,包括CNN、LSTM、BiLSTM、C-BiLSTM以及DSSM-C-BiLSTM,并进行训练,得到预测概率;所述融合投票机制模块用于根据预测标签对所有基模型进行投票,选择基模型输出最多的标签;所述反馈修正模块用于将预测结果与实际结果进行对比,对预测不准确的标签对应的数据进行反馈修正,对修正后的数据进行数据过滤。

如图2所示,一种面向医疗文本数据的过滤方法包括如下步骤:

(1)收集医疗记录数据集A,并对医疗记录数据集A进行数据预处理,得到可训练数据;

本实施例中,数据集A是某医院病人病程的医疗记录数据,该医疗记录主要包括病例特点、拟诊讨论以及医疗计划三个部分。其中病例特点包括病人病史、体格检查以及辅助检查,拟诊讨论包括诊判依据、初步诊断以及鉴别诊断,医疗计划包括检查计划、治疗计划以及其他计划。该数据集共有105262条医疗记录,且医疗记录的平均长度为1460个字符。

如图3所示,数据预处理步骤如下:

(1.1)获取数据:收集医疗记录数据集A。数据集A包括N条医疗记录,医疗记录数据主要包括病历特征,拟诊讨论以及医疗计划,医疗记录数据形式为长度不一的文本,其中文本中包含患者的医疗字符数据。数据集A的形式为A={text

(1.2)数据清洗:根据步骤(1.1)中获取的数据,对其进行数据清洗,包括以下一种或几种处理:相似文本去重,缺失的文本去除,以及对短的文本进行删除等处理。其中文本相似去除采用杰卡德相似度算法进行去重,相似值超出阈值的两个文本,去除文本长度短的文本,两个文本长度相同时,随机去除一个文本。在本实施例中,相似阈值设为0.8。

相似文本去重:两条医疗记录一一比对,采用杰卡德相似度算法进行文本相似值计算,文本相似值为两条医疗记录中同时出现的且不重复的文字或字符个数和两条医疗记录中包括的不重复的文字或字符个数的比值。

sim(text

例如:text

其中,text

缺失文本去除:去除文字或字符空缺个数和文本长度的比值超出缺失度阈值的文本。一个实施例中,缺失度阈值设为5%。

短文本去除:去除不超出文本长度阈值的文本。在本实施例中,文本长度阈值设为100。

(1.3)正则提取:对医疗记录数据集A进行正则提取,患者病程记录中主要包括三大部分,分别为病历特征,拟诊讨论以及医疗计划,其中病例特征是获取患者的个人健康信息和疾病情况高效途径,对数据挖掘具有重要意义。故正则提取医疗记录中病例特征部分,得到新的医疗记录数据集A′。

根据医疗数据文本格式和结构、医疗领域专业词汇和特有描述等情况,编制正则提取公式,A′=fz(A),fz为正则提取公式,A为输入文本,A′为输出文本。将多种表达的文本进行规则统一。在本实施例中,正则提取采用现有的工具,如Python的re模块。

(1.4)分词:利用jieba分词对数据集A′进行分词,并建立停用词典,移除掉语气词、标点符号、数字以及特殊符号等;建立医疗领域的自定义词典,使其能够分出原始词库中没有的词以及优先分出一些词,提高分词质量。并对分词后的结果进行词频统计,得到词表V,词表大小为|V|,一个实施例中,|V|为56K。

(1.5)获取标注数据:对数据集A′按句分割,得到新的数据集B,并对数据集B标注医疗记录的医疗类别,标签Label表示医疗记录的医疗类别,类别个数可以为2、3、4、5…等,一个实施例中,类别个数为3,其中医疗类别标签具体分为Label1,Label2,Label3三种标签极性,对应的标签分别为1,-1,0。

A={text

text

term

标注方式采用人工标注或半自动化标注。可采用的方法:

1)统计数据集B每个句子出现的频率,并对句频进行降序操作,对句频较高的数据进行半自动化标注,比如最高频率的句子出现了1000次,可以人工标注1次,对其他999次进行半自动化标注。方法如下:

2)可以采用预设的标注规则进行半自动化标注,原理:基于标注医疗类别的医疗记录数据集C,建立医疗记录和医疗标注的对应关系;采用频繁项集挖掘算法,基于数据集C挖掘频繁出现在某一医疗类别的模式,如[心律齐、无杂音、无压痛]这一组term模式对应医疗类别Label1极性标签,当数据集B也包含[心律齐、无杂音、无压痛],则可以标注该医疗类别Label为Label1极性标签。同理,如[咳嗽、发热、肺部感染、呼吸音粗、气肿]则可以标注该医疗类别为Label2极性标签。

若数据集B无法标注任一医疗类别,则进行人工标注。若数据集B标注出现两个及以上医疗类别,则进行人工标注。

频繁项集挖掘算法可以是FPTree算法、Apriori算法等。

Apriori算法实现过程:首先,找出所有的频繁项集,再从频繁项集中找出符合最小置信度的项集,最终便得到有强规则的项集。其中的相关概念:

项集:即项的集合,以一个词汇term作为一个项。[咳嗽]为一个项,[发热]为一个项,[咳嗽,发热]为一个项集。

支持度:项集AA、BB同时发生的概率称之为关联规则的支持度。AA为项集[咳嗽,发热],BB为项集[感染,气肿],数据集C包含NUM条医疗记录,其中医疗类别为Label2的有NUM_2条医疗记录,项集AA、BB同时发生的概率:[咳嗽,发热]、[感染,气肿]同时在NUM_2条医疗记录中出现的次数占NUM_2条医疗记录数量的比重。

置信度:项集AA发生的情况下,则项集BB发生的概率为关联规则的置信度。AA项集在NUM_2条里出现NUM_AA次,项集AA发生的情况下,则项集BB发生的概率:在出现项集[咳嗽,发热]的NUM_AA次医疗记录中出现[感染,气肿]的次数占NUM_AA的比重。

最小支持度:最小支持度就是预设的阈值,表示项集在统计意义上的最低重要性。

最小置信度:最小置信度也是预设的阈值,表示关联规则最低可靠性。

如果支持度与置信度同时达到最小支持度与最小置信度,则此关联规则为强规则。

频繁项集:满足最小支持度的所有项集,称作频繁项集。

3)词汇打分方法,基于数据集C为词表V中的医疗领域专业词汇打分,如:score_term[肺部感染]=0.9,score_term[两肺气肿]=0.7,score_term[干湿性罗音]=0.3,score_term[心律齐]=0,基于数据集B调整确定某些词汇的分数score_sum,以及医疗类别对应的总分值阈值score_S。

识别数据集B的词汇,给其句子中对应词汇打分,计算分值,若满足阈值,则标注相应的类别。若不满足阈值,人工标注。若数据集B出现无对应分数的词汇,不打分。

本实施例中,数据的语料为Label1极性数据643条,Label2极性数据577条,Label3极性数据486条。预处理后的医疗记录数据集A按照9:1的比例进行划分,分别为训练集和测试集。

本实施例中,训练语料示例如下表所示:

(2)本发明提出DSSM-C-BiLSTM模型的架构如图4所示,步骤(1)获得了数据集B形成的训练数据集,数据形式:B={(term

DSSM-C-BiLSTM由6个连续的层组成,分别为DSSM词嵌入层、卷积(CONV)层、空间注意力机制层、双向LSTM(BiLSTM)层、时间注意力机制层以及全连接(FC)层。本实施例将DSSM词向量作为卷积层的输入并对其进行卷积计算,得到语义特征向量作为输出数据,用于提取输入数据时间维度中的每一时刻的上下文依赖关系,以及通过卷积操作来捕获基础空间特征;再引入长短时记忆神经网络BiLSTM如图5所示,用于对卷积后维度不变的数据进行空间和时间上注意力分配,以及相似词特征向量加权并进行编码和解码;最后,将解码后特征向量经过FC层,对输入的高度抽象化特征进行整合,然后使用softmax函数进行归一化,输出文本中属于不同类别的概率。从而得到预测标签。具体实施步骤如下:

(2.1)文本嵌入:根据步骤(1)进行按句分割后得到的训练集,B={(term

对于输入训练文本中的每个词汇word

DSSM词嵌入层包括:输入层、隐藏层、输出层。首先对词表V中的|V|个词语进行one-hot编码,得到1*|V|的矩阵M,将其输入到DSSM模型中进行迭代训练,并经过relu函数计算得到低维语义向量。在本实施例中,将每个词表示为一个维度为300的向量,即每个词语有300个特征,那么隐藏层则为|V|*d的向量矩阵,其中隐藏层的矩阵用N表示,|V|代表词表的大小,d代表词向量的维度。最后得到每个词语的词向量:Q=M*N。

其中输出DSSM向量y表示为:

l

l

y=f(u

其中,x为输入DSSM的one-hot高维向量,u

为了简化反向传播,防止梯度消失和加快训练速度,在每次卷积运算之后加入激活函数relu进行非线性变换,最终输出300维的低维语义向量,其表达式如下:

relu(x)=max(0,x) (4)

如果输入的x小于0,则令输出等于0;如果输入的x大于0,则令输出等于输入。

假设输入训练语料term

(2.2)使用卷积层学习特征表示:

B={(term

本实施例中,卷积层与传统的卷积神经网络有一些区别与改进,去掉最大池化层,而是由三个连续的卷积和非线性变换来进行特征表示。令k×l为R

在本实施例中,输入层为一个128*300的矩阵,代表最大文本长度maxlen为128,每个词向量有300维。而卷积核是一个5*25的权值矩阵。卷积核以步长为1向下移动,每个过滤器都会产生一个特征图v∈R

其中,本实施例中文本按句分割后的长度一般小于设定阈值128,对于输入文本长度小于设定阈值的,用进行补全;相反,对于大于设定阈值的,则进行截断。

同时,本实施例中,为了简化反向传播,防止梯度消失和加快训练速度,在每次卷积运算之后加入激活函数relu进行非线性变换。

经卷积层学习特征表示为:

B_CNN=C={(c

其中,c

卷积层学习特征表示,将DSSM向量表示通过滤波器的处理后,加强了词汇在医疗记录中位置的特征学习,同时卷积层实现参数共享,提高了计算效率,在不断迭代训练中,提取到的特征就越全局化。

(2.3)空间注意力机制层

来自前一个卷积层的122×228特征C表示作为输入序列,并对其进行空间注意力分配,对连续输入的序列中的每一时刻输入文本位置向量进行特征提取,并根据CNN层级中的隐藏状态以及相似特征词向量c

对输入向量序列C的每一时刻c

其中(h

经空间注意力机制学习特征得到新的特征表示为:

其中,

(2.4)双向长短时记忆网络BiLSTM层:

再将上述公式(22)输出结果

根据神经网络LSTM能够学习从当前t时刻的输入向量

其中h

其次,再使用BiLSTM网络对不同时刻的隐藏状态进行更新,LSTM神经网络中包含遗忘门f

f

i

s

o

h

其中W

(2.5)时间注意力机制层

通过引入时间注意力机制,将BiLSTM编码后得到的数据向量进行时间注意力分配,对每一时刻输入文本位置向量进行特征提取,并根据LSTM编码层级中的隐藏状态以及相似特征词向量,计算每一时刻的注意力权重。对输入数据向量

其中(h′

再次,将上一步骤得到的时间注意力分配后的数据权重进行计算,得到语义向量e

其中h

解码器隐藏层状态在t时刻的更新根据如下方程进行更新:

h

在解码端,由编码器最终输出的语义编码e

P(y

对于整个输入编码和解码过程中,本发明使用梯度优化算法以及最大似然条件概率为损失函数来进行模型的训练和优化。其表达式为:

其中θ为相应模型中的参数,c

BiLSTM的正向和反向LSTM网络中的LSTM单元按正向和反向顺序读取词级序列表示形式,并且每个单词输出16维表示形式,然后将其组合以生成32维特征表示形式。

(2.6)全连接层FC:

BiLSTM层32维特征向量的输出作为全连接层FC的输入,该层对输入的高度抽象化特征进行整合,然后使用softmax函数进行归一化,输出文本中属于不同类别的概率。其表达式如下:

其中z

(2.7)对DSSM-C-BiLSTM模型进行评估;

根据模型评价指标准确率(Precision)、召回率(Recall)以及F1值对模型的优劣进行评估。

本实施例中,为了准确评估算法性能的好坏,采用K折交叉验证,其中K的取值为10,在一定程度上有效防止训练集和测试集选择不佳而导致不能很好的反映算法的性能。

本实施例中,将训练集划分为K等份,以其中一份作为测试数据,其他的K-1份数据作为训练数据进行模型训练,这样每次训练都是从K个部分选取一份不同的数据部分作为测试数据(保证K个部分的数据都分别做过测试数据),剩下的K-1个当作训练数据,进行交叉验证,最后把得到的K个实验结果进行平分,得到最优的结果。其具体详细步骤如下:

(a)初始化原始训练集:T={(c

(b)将原始训练集T划分为K(K

(c)再将新的训练集T输入到构造的基模型中进行训练,得到学习模型Mt;

(d)不断迭代步骤(b)(c),得到新的基模型,加入到组合模型中并进行拟合;

(e)利用可决系数法检测学习模型Mt的拟合优度,若拟合优度大于设定阈值,则认为组合模型拟合较优,进而停止迭代。

本实施例中,利用可决系数法检查模型拟合的优度,具体表达式如下:

其中,y

当模型评价指标满足条件后,模型训练完成。

(3)本实施例中,可以基于多个DSSM-C-BiLSTM模型,采用投票机制进行医疗标签预测:通过以卷积神经网络(CNN)模型、长短时记忆网络(LSTM)模型作为基础模型,将训练语料输出到模型进行训练,得到每个模型预测标签,融合投票机制按照少数服从多数的原则决定最终结果。

(3.1)通过多种基模型进行训练,得到预测概率:通过以卷积神经网络(CNN)模型、长短时记忆网络(LSTM)模型作为基础模型,将训练语料输出到模型进行训练,从而得到每个预测模型。验证集调整后,所有模型的最佳超参数集如下表:

(3.2)融合多轮投票机制:如图6所示,与普通的投票机制不同,在所有基模型中根据结果相似度和提交的F1分值选择2或3个基模型一起投票,在对基模型投票时结果相似度越低收益越大,再对投票之后的结果进行再次投票,再次投票时选择结果相似度较低F1分数较高的模型进行投票,不断重复这个投票过程直至发现投票结果和所有基模型的结果相似度都较高,则认为模型融合结果已经将所有基模型的结果都学习到,获得最大收益。

(3.3)将同一测试集输给每个基模型,并将各个基模型算法输出的类频率进行类标签的选择,根据每个类的类的统计频率,值大的类对应标签则为最终的输出类别,从而提高了标签预测的准确率。计算每一测试集的标签类别统计频率P公式如下:

P=sort(count

其中sort()为排序函数,count

本实施例中,在投票时把较高票的标签对应概率平均,如果碰到平票的情况根据结果统计频率加权平均,平票情况时高分的模型结果参考性更大,会对高分模型加大权重。

本实施例中,共有5种基模型是在2种模型结构的基础上通过使用不同的数据处理方式以及不同的参数获得的。融合基模型投票机制的预测结果准确度为92.46。

(4)将预测结果与实际结果进行对比,对预测不准确的数据进行反馈修正,再根据反馈修正后的数据,对未标注的数据集S进行过滤。具体步骤如图7所示。

一个实施例,为了提取负向极性Label2的数据,步骤如下:

(4.1)反馈修正:将根据步骤(3)的测试集预测结果与实际结果进行对比,对预测不准确的标签对应的数据进行反馈修正再返回步骤(2)进行训练。

(4.2)数据过滤:将未标注的文本进行按句分割记为数据集S1,并将步骤(4.1)修正后标签为-1即负向极性Label2的数据记为P2,遍历数据集S1,如果数据P2在数据集S1中,则保留该句子并添加至Label2集合;标签为1即正向极性Label1的数据记为P1,遍历数据集S1,如果数据P1在数据集S1中,则保留该句子并添加至Label1集合;Label3极性对应的数据进行删除。最后提取出负向极性Label2对应的数据集合,从而达到数据过滤的目的。

S1为未标注的数据集,根据模型对未标注的数据集进行预测。根据预测结果分为P1即正向极性Label1,P2即负向极性Label2,P3对应标签Label3需直接剔除,即无关的语料。

数据过滤的目的是需将负向极性Label2的数据提取出来,形成患者负向极性数据与患者的特征形成数据标签对,用于训练,便于更好的挖掘患者负向极性数据与患者特征之间的关系。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号