1.本发明涉及医疗信息化技术领域,尤其涉及一种提高疾病自动编码效率的方法。
背景技术:
2.随着疾病的诊断相关分类(diagnosis related groups,drgs)在全国的广泛应用,疾病编码和9游会首页数据质量的重要性日益凸显。其中,疾病编码是分组的基础和核心,疾病编码的质量将直接影响病例入组率和入组的正确性,继而影响医院的评价结果。
3.医院的编码工作一般由专业的编码人员完成,但绝大多数医院专业编码人员少,且要兼顾病案回收、9游会首页录入等工作。目前通用的疾病编码为icd-10版本,它包含的疾病数有3万多条,如果编码人员将待编码疾病名称和标准库里每一条疾病名称进行匹配计算,当数据量比较大的时候,需要耗费比较多的时间。而且,现有对疾病编码的语义相关度算法,采用全编码在编码中进行检索与相关度计算与匹配,比较耗时,特别对于海量疾病名称的编码耗时极为明显。
技术实现要素:
4.本发明的目的在于提供一种提高疾病自动编码效率的方法,以解决现有技术中对疾病编码存在的效率低技术问题。本发明提供的诸多技术方案中的优选技术方案所能产生的诸多技术效果详见下文阐述。
5.为实现上述目的,本发明提供了以下技术方案:本发明提供的一种提高疾病自动编码效率的方法,包括如下步骤:根据经训练的疾病编码模型预测待编码疾病名称的前n位编码对应的标签值,得到h 个最优的预测标签值;根据编码库中所有编码,以前n位编码为子集标签构建所述编码库的编码子集,并为每个所述编码子集设置子集标签值;将与h 个所述预测标签值一致的子集标签值对应的所述编码子集筛选出来,从筛选出来的所述编码子集中提取全部疾病标准名称以及每个所述疾病标准名称关联的编码; 计算所述待编码疾病名称与每个提取出来的所述疾病标准名称之间的相似度,将相似度最大值对应的所述疾病标准名称关联的编码作为所述待编码疾病名称的编码。
6.进一步地,所述以前n位编码为子集标签构建所述编码库的编码子集,并为每个所述编码子集设置子集标签值,包括如下步骤:获取所述编码库中所有编码以及每个所述编码关联的所述疾病标准名称,从每个所述编码中提取前n位编码;根据提取的所述前n位编码,将具有相同的所述前n位编码对应的编码和编码关联的所述疾病标准名称归为一个编码子集,将所述前n位编码作为相应编码子集的子集标签;根据每个所述编码子集对应的子集标签,为每个所述编码子集设置相应的子集标签值。
7.进一步地,所述疾病编码模型包括依次连接的输入层、词嵌入层、双向长短期记忆层、注意力机制层以及输出层;对所述注意力机制层的输出结果添加随机失活层,所述双向
长短期记忆层为两层结构。
8.进一步地,所述疾病编码模型的预测步骤包括:将所述待编码疾病名称通过字转化模型转化为字,将所述待编码疾病名称转化的字带入经训练的所述疾病编码模型进行编码预测。
9.进一步地,还包括对所述疾病编码模型进行训练,训练步骤包括:将全部所述疾病标准名称和每个所述疾病标准名称对应的子集标签值划分为训练样本集和测试样本集;将全部所述编码子集的每个疾病标准名称通过字转化模型转化为字,得到每个疾病标准名称对应的字;对所述疾病编码模型通过训练样本集进行训练和通过测试样本集进行测试,直到满足训练结束条件;所述疾病标准名称对应的字作为输入变量,所述疾病标准名称对应的子集标签值作为相应的输出变量。
10.进一步地,所述对所述疾病编码模型通过训练样本集进行训练和通过测试样本集进行测试,直到满足训练结束条件,包括如下步骤:设置所述疾病编码模型的各层参数、损失函数以及优化器;将所述训练样本集中的每个所述疾病标准名称对应的字输入所述输入层,在所述词嵌入层将每个所述疾病标准名称对应的字转化为标准文本向量;将每个所述标准文本向量传入所述双向长短期记忆层进行处理,得到所述双向长短期记忆层的输出结果;将所述双向长短期记忆层的输出结果传入所述注意力机制层,得到所述注意力机制层的输出结果;将所述注意力机制层的输出结果传入所述随机失活层,得到所述随机失活层的输出结果;采用全连接方式输出预测结果,得到初步训练的所述疾病编码模型;所述预测结果包括预测概率和所述预测概率对应的预测标签值;将所述测试样本集中的每个所述疾病标准名称对应的字输入初步训练的所述疾病编码模型,通过所述损失函数计算预测概率最大值对应的所述预测标签值与实际子集标签值之间的损失值,通过所述优化器优化初步训练的所述疾病编码模型各层的传递参数,从步骤“将所述训练样本集中的每个所述疾病标准名称对应的字输入所述输入层,在所述词嵌入层将每个所述疾病标准名称对应的字转化为标准文本向量”开始依次重复执行上述步骤,直到连续两次计算的损失值不再发生变化时停止训练;所述实际子集标签值为所述预测概率最大值对应的输入在所述测试样本集中对应的子集标签值。
11.进一步地,所述在所述词嵌入层将每个所述疾病标准名称对应的字转化为标准文本向量,包括如下步骤:将每个所述疾病标准名称对应的字导入训练的字向量模型,得到每个所述疾病标准名称对应的字向量;将每个所述疾病标准名称对应的字向量组成文本向量,得到每个所述疾病标准名称对应的文本向量;根据设定的文本固定长度,将每个所述文本向量对应的文本超过所述文本固定长度的部分删除,或将每个所述文本向量对应的文本小于所述文本固定长度的部分用0填充,得到每个所述疾病标准名称对应的标准文本向量。
12.进一步地,还包括对所述字向量模型进行训练,训练步骤包括:获取医疗文本训练集,对获取的医疗文本训练集的每条医疗文本通过字转化模型
转化为字;采用全部所述医疗文本对应转化的字对所述字向量模型进行训练,得到训练后的字向量模型;所述字向量模型为glove模型。
13.进一步地,所述得到所述双向长短期记忆层的输出结果,包括如下步骤:采用动态rnn模型将每个所述标准文本向量进行处理,得到所述双向长短期记忆层第一层的前向输出结果、反向输出结果;将所述第一层的前向输出结果、反向输出结果进行拼接,将拼接结果依次传入所述双向长短期记忆层的第二层;采用动态rnn模型将所述拼接结果进行处理,得到所述双向长短期记忆层第二层的前向输出结果、反向输出结果;将所述第二层的前向输出结果、反向输出结果进行拼接,得到所述双向长短期记忆层的输出结果。
14.进一步地,所述得到所述注意力机制层的输出结果,包括如下步骤:初始化一个权重向量;将所述双向长短期记忆层的输出结果采用激活函数做非线性转换,得到转换向量矩阵;将所述权重向量与转换向量矩阵采用矩阵乘法相乘,将相乘的结果做归一化处理,得到归一化向量矩阵;采用所述归一化向量矩阵对所述双向长短期记忆层的输出结果进行加权求和,得到所述注意力机制层的输出结果。
15.进一步地,还包括所述字转化模型将医疗文本转化为字,其步骤包括:对所述医疗文本使用结巴分词进行分词,得到所述医疗文本对应的分词列表;遍历所述医疗文本对应的分词列表,如果所述分词列表中的分词不在停用词表内,则保留所述分词,否则,剔除所述分词;遍历过滤停用词后的所述医疗文本对应的分词列表,如果所述分词列表的分词为中文,则进一步分字,并将拆分的字存储到所述医疗文本对应的分字结果中;如果所述分词列表的分词不包含中文,则将分词保存到医疗文本对应的分字结果中;所述分字结果即为所述医疗文本对应转化的字。
16.进一步地,所述相似度s的计算公式为:;其中,m为所述文本向量的维数,a=[a1,a2,a3,...,am]为所述待编码疾病名称的标准文本向量,b=[b1,b2,b3,...,bm]为所述疾病标准名称的标准文本向量。
[0017]
实施本发明上述技术方案中的一个技术方案,具有如下优点或有益效果:本发明通过疾病编码模型间接预测待编码疾病名称的部分编码,得到多个最优预测结果,以此将待编码疾病名称的编码锁定在一个小范围内;然后在这个小范围内根据相似度匹配到相似度最高的疾病标准名称,以相似度最高的疾病标准名称关联的编码作为待编码疾病名称的编码。因此,本方法可以实现疾病的自动编码,且可以提高编码的效率。
[0018]
另一方面,为了节省后续匹配编码的时间,本方法根据预测结果和编码库,构建基于前n位编码为标签的编码子集,这样便于快速匹配到相似度最高的疾病标准名称及其对应编码,进而提高编码的整体效率。
附图说明
[0019]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附
图,附图中:图1是本发明实施例的一种提高疾病自动编码效率的方法流程图;图2是本发明实施例的一种疾病编码模型的网络结构图;图3是本发明实施例的一种训练结束条件下对疾病编码模型进行训练的流程图。
具体实施方式
[0020]
为了使本发明的目的、技术方案及优点更加清楚明白,下文将要描述的各种示例性实施例将要参考相应的附图,这些附图构成了示例性实施例的一部分,其中描述了实现本发明可能采用的各种示例性实施例。除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。应明白,它们仅是与如所附权利要求书中所详述的、本发明公开的一些方面相一致的流程、方法和装置等的例子,还可使用其他的实施例,或者对本文列举的实施例进行结构和功能上的修改,而不会脱离本发明的范围和实质。
[0021]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”等指示的是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的元件必须具有的特定的方位、以特定的方位构造和操作。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。术语“多个”的含义是两个或两个以上。术语“相连”、“连接”应做广义理解,例如,可以是固定连接、可拆卸连接、一体连接、机械连接、电连接、通信连接、直接相连、通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0022]
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明,仅示出了与本发明实施例相关的部分。
[0023]
实施例一:如图1所示,本发明提供了一种提高疾病自动编码效率的方法,其特征在于,包括如下步骤:s100、根据经训练的疾病编码模型预测待编码疾病名称的前n位编码对应的标签值,得到h 个最优的预测标签值;s200、根据编码库中所有编码,以前n位编码为子集标签构建编码库的编码子集,并为每个编码子集设置子集标签值;s300、将与h 个预测标签值一致的子集标签值对应的编码子集筛选出来,从筛选出来的编码子集中提取全部疾病标准名称以及每个疾病标准名称关联的编码;s400、计算待编码疾病名称与每个提取出来的疾病标准名称之间的相似度,将相似度最大值对应的疾病标准名称关联的编码作为待编码疾病名称的编码。
[0024]
本发明通过疾病编码模型间接预测待编码疾病名称的部分编码,得到多个最优预测结果,以此将待编码疾病名称的编码锁定在一个小范围内;然后在这个小范围内根据相似度匹配到相似度最高的疾病标准名称,以相似度最高的疾病标准名称关联的编码作为待编码疾病名称的编码。因此,本方法可以实现疾病的自动编码,且可以提高编码的效率。
[0025]
另一方面,为了节省后续匹配编码的时间,本方法根据预测结果和现有的编码库,
构建基于前n位编码为子集标签的编码子集,这样便于快速匹配到相似度最高的疾病标准名称及其对应编码,进而提高编码的整体效率。
[0026]
需说明的是,本实施例的编码库为目前通用的疾病编码icd-10版本,它包含的疾病数有3万多条。另外,在具体实施时,n可以取值为2,h可以取值为3。最优的预测标签值可以通过预测概率由高到低,取前h个概率对应的预测标签值作为最优的预测标签值。另需说明的是,步骤s100和步骤s200可以不分先后顺序。
[0027]
作为一种可选的实施方式,步骤s200中,以前n位编码为子集标签构建编码库的编码子集,并为每个编码子集设置子集标签值,包括如下步骤:获取编码库中所有编码以及每个编码关联的疾病标准名称,从每个编码中提取前n位编码。需说明的是,编码库中每个编码关联唯一一个疾病标准名称;根据提取的前n位编码,将具有相同的前n位编码对应的编码和编码关联的疾病标准名称归为一个编码子集,将前n位编码作为相应编码子集的子集标签;根据每个编码子集对应的子集标签,为每个编码子集设置相应的子集标签值。具体的,子集标签值可以为整数值,如下文示例中的0-262。
[0028]
一种具体的示例为:将通用的疾病编码icd-10版本作为编码库,取编码前2位为子集标签,总共有263个子集标签,对应263个子集标签值,记为0-262。为节省后续匹配时间,本示例根据编码前2位,将疾病标准名称和其唯一关联的编码分成263个编码子集,各子集名称分别对应上述263个子集标签值,如0,1,2,....,262。比如,编码前2位的编码为a0,其对应的编码和疾病标准名称包括:霍乱:a00.900,伤寒:a01.000,细菌性痢疾:a03.900,大肠杆菌性肠炎:a04.401,....。则,编码子集a0={霍乱:a00.900,伤寒:a01.000,细菌性痢疾:a03.900,大肠杆菌性肠炎:a04.401,...},a0即为该编码子集的子集标签,从0-262中按照顺序分配一个整数作为a0子集标签对应的子集标签值,如0(a0排在所有子集标签的最前面,因此,匹配的子集标签值为0),即0为该编码子集对应的子集标签值。
[0029]
如图2所示,作为一种可选的实施方式,疾病编码模型包括依次连接的双向长短期记忆(bi-directional long short-term memory,bi-lstm)层、注意力机制层(attention layer)及输出层。其中,对注意力机制层的输出结果添加随机失活层(dropout layer),双向长短期记忆层为两层结构。
[0030]
需说明的是,注意力机制层会出现拟合过渡,为防止过拟合,在注意力机制层输出前增加一层随机失活层,将随机失活层的输出结果作为双向长短期记忆网络的输出结果,使得拟合更加准确。另需说明的是,通过添加双向长短期记忆层的深度,提高训练的效率,获得更高的准确性,进而将双向长短期记忆层设置为两层结构。
[0031]
作为一种可选的实施方式,疾病编码模型的预测步骤包括:将待编码疾病名称通过字转化模型转化为字,将待编码疾病名称转化的字带入经训练的疾病编码模型进行编码预测。
[0032]
作为一种可选的实施方式,还包括对疾病编码模型进行训练,其训练步骤包括:将全部疾病标准名称和每个疾病标准名称对应的子集标签值划分为训练样本集和测试样本集;作为一种示例,上述划分可以为:将全部疾病标准名称和每个疾病标准名称对应的子集标签值的一部分(如全部疾病标准名称的80%,选取方式为随机选择)作训练样本集,
剩下的作为测试样本集。需说明的是,每个随机选出来的疾病标准名称对应有相应的子集标签值,即每次随机选出来的一个疾病标准名称对应有一个相应的子集标签值;将全部编码子集的每个疾病标准名称通过字转化模型转化为字,得到每个疾病标准名称对应的字。需说明的是,上述样本集中每个子集标签值对应多个疾病标准名称,每个疾病标准名称对应有转化的字;对疾病编码模型通过训练样本集进行训练和通过测试样本集进行测试,直到满足训练结束条件。其中,疾病标准名称对应的字作为输入变量,疾病标准名称对应的子集标签值作为相应的输出变量。
[0033]
如图3所示,作为一种可选的实施方式,对疾病编码模型通过训练样本集进行训练和通过测试样本集进行测试,直到满足训练结束条件,包括如下步骤:s101、设置疾病编码模型的各层参数、损失函数以及优化器。对于损失函数以及优化器参见如下步骤s107;对于各层参数的设置,包括设置输入层、词嵌入层、双向长短期记忆层、注意力机制层、随机失活层以及输出层的神经单元个数;作为一种示例,输入层、词嵌入层均设置64个神经单元,双向长短期记忆层设置为两层,每层均包括前向长短期记忆结构、反向长短期记忆结构,每个前向长短期记忆结构与每个反向长短期记忆结构的隐藏层神经单元数(hidden_units)均设置为64个;注意力机制层、随机失活层的神经单元个数均设置为64个;输出层的输出为子集标签值y和y对应的分类概率(预测概率),本实施例的子集标签类别为263个,因此,对应的神经单元个数为263个;需说明的是,输出层输出的预测标签值为子集标签值的预测值,通过预测的子集标签值查找对应的子集标签,子集标签为icd-10编码的前2位,这样可以快速得到子集标签值对应的子集标签,通过子集标签便可以得到相应的编码子集,通过编码子集便可以得到子集中的疾病标准名称,进而通过相似度实现为待编码疾病的快速编号。在训练阶段输出为263个子集标签值及其对应的分类概率,训练后,仅选取263个子集标签值对应概率值由高到低排列的前3个作为预测结果。进一步需说明的是,在图2中,xt中的t是代表时刻,如xt为在t时刻的输入,在本实施例中可以简单理解为t时刻输入为第t个字;s102、将训练样本集中的每个疾病标准名称对应的字输入输入层,在词嵌入层将每个疾病标准名称对应的字转化为标准文本向量。需说明的是,输入层输入文本x即为每个疾病标准名称对应的字。当然,输入层输入可以是句、词、字,本实施例为字,比如“支气管扩张合并感染”,输入的文本为:x1=
‘
支’,x2=
‘
气’,x3=
‘
管’,x4=
‘
扩’,x5=
‘
张’,x6=
‘
合’,x7=
‘
并’,x8=
‘
感’,x9=
‘
染’;s103、将每个标准文本向量传入双向长短期记忆层进行处理,得到双向长短期记忆层的输出结果;s104、将双向长短期记忆层的输出结果传入注意力机制层,得到注意力机制层的输出结果;s105、将注意力机制层的输出结果传入随机失活层,得到随机失活层的输出结果。其中,设置随机失活层的神经元保留概率keep_prob=0.5;s106、采用全连接方式输出预测结果,得到初步训练的疾病编码模型,预测结果包括预测概率和预测概率对应的预测标签值。其中,设置输出层的分类个数和激活函数。具体
的,分类个数为263(训练后预测时,仅选取263个标签对应概率值由高到低排列的前h个作为预测结果),将softmax作为激活函数得到最后分类输出。需说明的是,此处的全连接式指使用softmax激活函数计算得到每个分类结果的概率值,全连接层的作用为分类;s107、将测试样本集中的每个疾病标准名称对应的字输入初步训练的疾病编码模型,通过损失函数计算预测概率最大值对应的预测标签值与实际子集标签值之间的损失值,其中,实际子集标签值为预测概率最大值对应的输入在测试样本集中对应的子集标签值;通过优化器优化初步训练的疾病编码模型各层的传递参数(双向长短期记忆层、注意力机制层、随机失活层的传递参数),重复执行步骤s102至步骤s107直到连续两次计算的损失值不再发生变化(即某次计算的损失值与上次计算的损失值大小相等,或某次计算的损失值与上一次计算的损失值误差小于设定阈值)时停止训练。具体的,学习率learning_rate=0.01,批量大小bach_size=512,选择分类交叉熵作为模型损失函数,并采用adamoptimizer优化器不断更新疾病编码模型。
[0034]
作为一种示例,模型输出的结果样例为y={
‘0’
:0.05,
‘1’
:0.01,...,
‘
262’:
‘
0.009’},其中单引号中的0-262为全部263个子集标签对应的预测标签值,预测标签值后面为该标签值对应的预测概率。如预测标签值
‘0’
对应预测的子集标签为
‘
a0’,子集标签
‘
a0’对应的预测概率为0.05。
[0035]
作为一种可选的实施方式,上述步骤s102中,在词嵌入层将每个疾病标准名称对应的字转化为标准文本向量的步骤包括:将每个疾病标准名称对应的字导入训练的字向量模型,得到每个疾病标准名称对应的字向量;将每个疾病标准名称对应的字向量组成文本向量,得到每个疾病标准名称对应的文本向量。例如,字向量模型(参见下文所述的glove模型)设置的每个字向量维度(vector_size)为300,则“支气管”中的“支”对应的字向量为c=[c1,c2,c3,...,c
300
],“气”对应的字向量为d=[d1,d2,d3,...,d
300
],“管”对应的字向量为e=[e1,e2,e3,...,e
300
],则“支气管”的文本向量(句向量)为:[c1 d1 e
1,
c2 d2 e
2,
c3 d3 e
3,...,c300
d
300
e
300
];作为一种示例,“支”向量对应的300维为:[0.02602266,0.35493448,0.15897253,...,-0.27806452];根据设定的文本固定长度,将文本向量对应的文本超过文本固定长度的部分删除,或将文本向量对应的文本小于文本固定长度的部分用0填充,得到每个疾病标准名称对应的标准文本向量。需说明的是,经过上述步骤,每个疾病标准名称对应的子集标签值和每个标准文本向量对应的子集标签值是一致的。
[0036]
作为一种示例,文本固定长度为100,比如文本向量对应的文本为“支气管扩张合并感染”,其文本长度为9,得到的标准文本向量(数据表示)对应的文本(文本表示)为:x1=
‘
支’,x2=
‘
气’,x3=
‘
管’,x4=
‘
扩’,x5=
‘
张’,x6=
‘
合’,x7=
‘
并’,x8=
‘
感’,x9=
‘
染’,x10=
‘0’
,...,x100=
‘0’
。需说明的是,x1、x2,...,x100对应的字均包含有300维向量值。
[0037]
需说明的是,由于输入的待编码疾病名称与疾病标准名称之间可能会有出入,将它们转化为文本向量后,文本向量的文本长度可能不会一致。为了保证疾病编码模型的输入文本是一致的,此示例将待编码疾病名称对应的文本设定了固定长度,并将其限定在设定的文本固定长度范围内。
[0038]
作为一种可选的实施方式,还包括对字向量模型进行训练,其步骤包括:获取医疗文本训练集,对获取的医疗文本训练集的每条医疗文本通过字转化模型转化为字。其中,医疗文本训练集为数据采集时得到的,包括但不限于电子病历文本内容;采用全部医疗文本对应转化的字对glove模型进行训练,得到训练后的字向量模型。进一步地, glove模型参数配置如下:vector_size(字向量维度):300,window_size(学习窗口):8,vocab_min_count(字最低出现次数):3,max_iter(最大迭代次数):1000。
[0039]
需说明的是,glove(global vectors for word representation,glove)模型是一个新的全局对数双线性回归模型,用于词/字向量的无监督学习,它结合了全局矩阵分解和局部上下文窗口方法两者的优点。由于glove模型不止考虑全局信息,还能够较好的使用到全局的统计信息,并且训练速度较快,因此,本实施例采用glove模型来得到医疗文本的字向量。
[0040]
作为一种可选的实施方式,上述步骤s103中,得到双向长短期记忆层的输出结果的步骤包括:采用动态rnn模型将每个标准文本向量进行处理,得到双向长短期记忆层第一层的前向输出结果、反向输出结果;将第一层的前向输出结果、反向输出结果进行拼接,将拼接结果依次传入双向长短期记忆层的第二层;采用动态rnn模型将拼接结果进行处理,得到双向长短期记忆层第二层的前向输出结果、反向输出结果;将第二层的前向输出结果、反向输出结果进行拼接,得到双向长短期记忆层的输出结果。
[0041]
需说明的是,本示例中的拼接可以理解为按照一定的顺序将多个输出进行拼接,一种拼接方式为:按照前向输出结果在前、反向输出结果在后的顺序进行拼接,组成一个整体。当然,本实施例并不限制于上述拼接方式。
[0042]
作为一种可选的实施方式,上述步骤s105中,得到注意力机制层的输出结果包括如下步骤:初始化一个权重向量。需说明的是,权重向量的维度为(hidden_units,1),即(64,1);将双向长短期记忆层的输出结果采用激活函数做非线性转换,得到转换向量矩阵。需说明的是,激活函数为tanh(双曲正切函数);将权重向量与转换向量矩阵采用矩阵乘法相乘,将相乘的结果做归一化处理,得到归一化向量矩阵。需说明的是,归一化处理函数为softmax;采用归一化向量矩阵对双向长短期记忆层的输出结果进行加权求和,得到注意力机制层的输出结果。
[0043]
作为一种可选的实施方式,还包括字转化模型将医疗文本转化为字,其步骤包括:对医疗文本使用结巴分词进行分词,得到医疗文本对应的分词列表;作为一种结巴分词的示例,如一条医疗文本为:“血中酒精水平低于20mg/100ml”,进行结巴分词后得到分词列表为:[
‘
血中’,
‘
酒精’,
‘
水平’,
‘
低于’,
‘
20mg’,
‘
/’,
‘
100ml’];遍历医疗文本对应的分词列表,如果分词列表中的分词不在停用词表内,则保留该分词,否则,剔除该分词。需说明的是,停用词表是结合网上现有资源和医疗文本的特点自行整理得到。如上文的
‘
/’为停用词,需要从上述分词列表中删除,得到遍历医疗文本对应的分词列表为:[
‘
血中’,
‘
酒精’,
‘
水平’,
‘
低于’,
‘
20mg’,
‘
100ml’]。本实施的停用词包括但不限于:
‘
当’、
‘
的’、
‘
当下’、
ꢀ‘
,’、
ꢀ‘
。’、
‘
、
’‘
《’等;遍历过滤停用词后的医疗文本对应的分词列表,如果分词列表的分词为中文,则进一步分字,并将拆分的字存储到医疗文本对应的分字结果中;如果分词列表的分词不包含中文,则将分词保存到医疗文本对应的分字结果中。例如,遍历分词列表[
‘
血中’,
‘
酒精’,
‘
水平’,
‘
低于’,
‘
20mg’,
‘
100ml’],其中
‘
血中’、
‘
酒精’,
‘
水平’,
‘
低于’都包含中文,所以需要对他们进一步分字,即
‘
血’、
‘
中’、
‘
酒’、
‘
精’、
‘
水’、
‘
平’、
‘
低’、
‘
于’;而
‘
20mg’、
‘
100ml’中都不包含中文,所以直接将
ꢀ‘
20mg’、
‘
100ml’存到分字结果中;分字结果即为医疗文本对应转化的字。
[0044]
需说明的是,医疗文本包括待编码疾病名称、疾病标准名称和电子病历文本内容。
[0045]
作为一种可选的实施方式,相似度s的计算公式为:;其中,m为文本向量的维数,a=[a1,a2,a3,...,am]为待编码疾病名称的标准文本向量,b=[b1,b2,b3,...,bm]为疾病标准名称的标准文本向量,本实施例m=300。
[0046]
综上所述,本实施例通过疾病编码模型间接预测待编码疾病名称的部分编码,得到多个最优预测结果,以此将待编码疾病名称的编码锁定在一个小范围内;然后在这个小范围内根据相似度匹配到相似度最高的疾病标准名称,以相似度最高的疾病标准名称关联的编码作为待编码疾病名称的编码。因此,本方法可以实现疾病的自动编码,且可以提高编码的效率。而且构建了基于前n位编码为标签的编码子集,这样便于快速匹配到相似度最高的疾病标准名称及其对应编码,进而提高编码的整体效率。
[0047]
实施例二:本实施例提供了基于实施一的一种提高疾病自动编码效率的方法及其相关参数,对待匹配疾病名称(待编码疾病名称)如咽部结核、沙门菌感染合并支气管肺炎、盆腔肿物、外阴恶性肿瘤、不稳定心绞痛、急性心肌梗死和高血压等进行了编码匹配,并记录其匹配用时;同时,作为对比,本实施例采用基于实施例一的语义相似度遍历全部标准库的方法(传统方法)对上述待匹配疾病名称进行编码匹配,并记录其匹配用时。如下表1所示。
[0048]
[0049]
通过表中数据可以看出:采用基于本发明语义相似度(即实施例一中所述的相似度s)遍历全部标准库的方法(传统方法)平均每条用时1.383秒左右,而采用本发明方法(首先根据bi-lstm attention模型预测出待编码疾病名称的前2位概率最大的3个预测结果;然后在已经分组的263个编码子集中找出与每个预测的编码前2位对应的3个编码子集;根据找出的3个编码子集的所有疾病标准名称,再计算待编码疾病名称与每个疾病标准名称的语义相似度;最后根据最大语义相似度得到待编码疾病名称的编码)每条平均用时0.029秒,大幅缩减用时。而当待编码疾病名称在标准库中时,采用基于本发明语义相似度遍历全部标准库的方法平均每条用时比采用本发明方法用时少0.009秒左右;而当待编码疾病名称不在标准库中时,采用基于本发明语义相似度遍历全部标准库的方法平均每条用时比采用本发明方法用时多2秒左右。因此,本发明能够提对疾病高编码的效率。
[0050]
总上所述,本实施例在模型训练前已经将编码集按照编码前2位分成263个编码子集,编码子集名称以编码前2位命名,根据实施例一的疾病编码模型得到编码前2位概率最大的3个预测结果之后,直接通过预测结果在263个编码子集中得到对应的三个子集,并从这三个子集中提取的所有名称,就不需要到所有编码库中去找,有效节省时间。
[0051]
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0052]
以上所述仅为本发明的较佳实施例而已,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等同替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本技术的权利要求范围内的实施例都属于本发明的保护范围。