分词和词性识别方法、装置及电子病历的分析方法、装置转让专利

申请号 : CN202010067197.6

文献号 : CN111274806A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何国平王旭英甄化春郭亚强尹伟东董驰

申请人 : 医惠科技有限公司

摘要 :

本发明公开了一种分词和词性识别方法、装置,方法包括:根据目标电子病历获取待识别短语语料;利用预先设置的电子病历后结构化系统对待识别短语语料进行切分,得到目标词语;利用预先设置的歧义词库结合双向最大匹配算法确定出目标词语中的歧义词,并利用条件随机场算法为各歧义词设置目标词性标注;利用预先设置的医学词性词库结合双向最大匹配算法为目标词语中的非歧义词设置目标词性标注。相比于现有技术,本发明能够在提高歧义词的识别准确率的同时提高总体的词性识别的准确度和处理效率。本发明还提供了一种电子病历的分析方法、装置,有益效果如上述。

权利要求 :

1.一种分词和词性识别方法,其特征在于,包括:

根据目标电子病历获取待识别短语语料;

利用预先设置的电子病历后结构化系统对所述待识别短语语料进行切分,得到目标词语;

利用预先设置的歧义词库结合双向最大匹配算法确定出所述目标词语中的歧义词,并利用条件随机场算法为各所述歧义词设置目标词性标注;

利用预先设置的医学词性词库结合双向最大匹配算法为所述目标词语中的非歧义词设置目标词性标注;

其中,所述歧义词库的设置过程包括:

通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的所述训练短语语料中的相似度;

根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置所述歧义词库。

2.根据权利要求1所述的方法,其特征在于,所述利用预先设置的电子病历后结构化系统对所述待识别短语语料进行切分,得到目标词语的过程,具体包括:利用所述电子病历后结构化系统中的分词模型,依据双向最大匹配算法对所述待识别短语语料进行切分,得到候选词语;

利用Viterb动态规划算法依据所述候选词语和所述待识别短语语料进行解码,得到最大概率词语切分结果,确定出所述目标词语。

3.根据权利要求2所述的方法,其特征在于,在所述利用所述电子病历后结构化系统中的分词模型,依据双向最大匹配算法对所述待识别短语语料进行切分,得到候选词语之后,进一步包括:在得出未登录词时,利用条件随机场算法和所述未登录词对所述待识别短语语料进行切分,得到所述目标词语。

4.根据权利要求1至3任一项所述的方法,其特征在于,所述医学词性词库的设置过程,具体包括:预先在医学词典中为各医学词条设置对应的词性;

使用TIRE树将所述医学词典中的各所述医学词条和词性对应存储在数据库中,得到所述医学词性词库。

5.一种分词和词性识别装置,其特征在于,包括:

词库构建模块,用于通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的所述训练短语语料中的相似度;根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置歧义词库;

获取模块,用于根据目标电子病历获取待识别短语语料;

切分模块,用于利用预先设置的电子病历后结构化系统对所述待识别短语语料进行切分,得到目标词语;

第一识别模块,用于利用预先设置的所述歧义词库结合双向最大匹配算法确定出所述目标词语中的歧义词,并利用条件随机场算法为各所述歧义词设置目标词性标注;

第二识别模块,用于利用预先设置的医学词性词库结合双向最大匹配算法为所述目标词语中的非歧义词设置目标词性标注。

6.一种分词和词性识别装置,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的分词和词性识别方法的步骤。

7.一种电子病历的分析方法,其特征在于,包括:

预先根据原始电子病历和与各分析类型对应的机器学习算法训练出与各所述分析类型对应的结构化模型,构建电子病历后结构化系统;其中,利用预先设置的歧义词库和条件随机场算法训练得出所述电子病历后结构化系统中的词性识别模型;

获取目标电子病历,并利用所述电子病历后结构化系统对所述目标电子病历进行分析,得出分析结果。

8.一种电子病历的分析装置,其特征在于,包括:

系统构建模块,用于预先根据原始电子病历和与各分析类型对应的机器学习算法训练出与各所述分析类型对应的结构化模型,构建电子病历后结构化系统;其中,利用预先设置的歧义词库和条件随机场算法训练得出所述电子病历后结构化系统中的词性识别模型;

电子病历分析模块,用于获取目标电子病历,并利用所述电子病历后结构化系统对所述目标电子病历进行分析,得出分析结果。

说明书 :

分词和词性识别方法、装置及电子病历的分析方法、装置

技术领域

[0001] 本发明涉及自然语言技术领域,特别涉及一种分词和词性识别方法、装置及一种电子病历的分析方法、装置。

背景技术

[0002] 随着信息化建设的快速发展,数据呈现爆发式增长,特别是在医院等医疗机构,每天会产生大量数据及医疗记录,且很多重要数据都是以非结构化文本形式存储。对于医院中大量的人口基数所产生的医疗数据,必须有效地进行信息化、结构化,否则将会丢失其中宝贵的信息资源。那么该如何剖析、挖掘病历,转化为能被利用、有价值的“宝藏”呢?目前,随着大数据及人工智能迅速发展,通过医学语料标注及自然语言技术处理,将非结构化文本转化为结构化数据,并可将数据应用于辅助临床决策、风险预测、科研分析等任务中。
[0003] 其中,在将电子病历中的短语进行分词和词性识别的过程中,现有技术一般是利用HMM(隐马尔可夫)算法结合医学词性词库为短语中的各目标词语设置对应的目标词性标注,或者采用纯粹CRF++模型以及深度学习模型BiLSTM+CRF的常用深度学习实体识别框架为短语中的各目标词语设置对应的目标词性标注。但是,在实际操作中,由于根据短语切分出的目标词语在不同的语境中可能是不同的词性,即,目标词语可能是歧义词。对此,现有技术中,通过CRF++算法或者BiLSTM+CRF算法,对切分出的每一个目标词语进行计算,计算出各目标词语对应的可能性较大的词性。但是这种方法中,不仅需要对所有的目标词语进行计算,以确定其目标词性,并且受到目标词语所在语境的变化,确定出的目标词性的准确性会受到较大影响;同时在训练语料多,标注量大的情况下,整体模型的训练迭代速度和模型预测速度都受到较大的影响。传统的纯粹基于医学词性词库利用双向最大匹配算法结合HMM的方法进行医学术语切分和词性识别的方法(如Jieba,NLPIR等)无法满足对于歧义词的识别,无法满足医疗领域对歧义词识别的需求。
[0004] 因此,如何提高词性识别的准确度和处理效率,是本领域技术人员目前需要解决的技术问题。

发明内容

[0005] 有鉴于此,本发明的目的在于提供一种分词和词性识别方法,能够提高词性识别的准确度和处理效率;本发明的另一核心是提供一种分词和词性识别装置及一种电子病历的分析方法、装置,均具有上述有益效果。
[0006] 为解决上述技术问题,本发明提供一种分词和词性识别方法,包括:
[0007] 根据目标电子病历获取待识别短语语料;
[0008] 利用预先设置的电子病历后结构化系统对所述待识别短语语料进行切分,得到目标词语;
[0009] 利用预先设置的歧义词库结合双向最大匹配算法确定出所述目标词语中的歧义词,并利用条件随机场算法为各所述歧义词设置目标词性标注;
[0010] 利用预先设置的医学词性词库结合双向最大匹配算法为所述目标词语中的非歧义词设置目标词性标注;
[0011] 其中,所述歧义词库的设置过程包括:
[0012] 通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的所述训练短语语料中的相似度;
[0013] 根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置所述歧义词库。
[0014] 优选地,所述利用预先设置的电子病历后结构化系统对所述待识别短语语料进行切分,得到目标词语的过程,具体包括:
[0015] 利用所述电子病历后结构化系统中的分词模型,依据双向最大匹配算法对所述待识别短语语料进行切分,得到候选词语;
[0016] 利用Viterb动态规划算法依据所述候选词语和所述待识别短语语料进行解码,得到最大概率词语切分结果,确定出所述目标词语。
[0017] 优选地,在所述利用所述电子病历后结构化系统中的分词模型,依据双向最大匹配算法对所述待识别短语语料进行切分,得到候选词语之后,进一步包括:
[0018] 在得出未登录词时,利用条件随机场算法和所述未登录词对所述待识别短语语料进行切分,得到所述目标词语。
[0019] 优选地,所述医学词性词库的设置过程,具体包括:
[0020] 预先在医学词典中为各医学词条设置对应的词性;
[0021] 使用TIRE树将所述医学词典中的各所述医学词条和词性对应存储在数据库中,得到所述医学词性词库。
[0022] 为解决上述技术问题,本发明还提供一种分词和词性识别装置,包括:
[0023] 词库构建模块,用于通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的所述训练短语语料中的相似度;根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置歧义词库;
[0024] 获取模块,用于根据目标电子病历获取待识别短语语料;
[0025] 切分模块,用于利用预先设置的电子病历后结构化系统对所述待识别短语语料进行切分,得到目标词语;
[0026] 第一识别模块,用于利用预先设置的所述歧义词库结合双向最大匹配算法确定出所述目标词语中的歧义词,并利用条件随机场算法为各所述歧义词设置目标词性标注;
[0027] 第二识别模块,用于利用预先设置的医学词性词库结合双向最大匹配算法为所述目标词语中的非歧义词设置目标词性标注。
[0028] 为解决上述技术问题,本发明还提供另一种分词和词性识别装置,包括:
[0029] 存储器,用于存储计算机程序;
[0030] 处理器,用于执行所述计算机程序时实现上述任一种分词和词性识别方法的步骤。
[0031] 为解决上述技术问题,本发明提供一种电子病历的分析方法,包括:
[0032] 预先根据原始电子病历和与各分析类型对应的机器学习算法训练出与各所述分析类型对应的结构化模型,构建电子病历后结构化系统;其中,利用预先设置的歧义词库和条件随机场算法训练得出所述电子病历后结构化系统中的词性识别模型;
[0033] 获取目标电子病历,并利用所述电子病历后结构化系统对所述目标电子病历进行分析,得出分析结果。
[0034] 为解决上述技术问题,本发明还提供一种电子病历的分析装置,包括:
[0035] 系统构建模块,用于预先根据原始电子病历和与各分析类型对应的机器学习算法训练出与各所述分析类型对应的结构化模型,构建电子病历后结构化系统;其中,利用预先设置的歧义词库和条件随机场算法训练得出所述电子病历后结构化系统中的词性识别模型;
[0036] 电子病历分析模块,用于获取目标电子病历,并利用所述电子病历后结构化系统对所述目标电子病历进行分析,得出分析结果。
[0037] 本发明提供的一种分词和词性识别方法,首先根据目标电子病历获取待识别短语语料;利用预先设置的电子病历后结构化系统对待识别短语语料进行切分,得到目标词语;然后利用预先设置的歧义词库结合双向最大匹配算法确定出目标词语中的歧义词,并利用条件随机场算法为各歧义词设置目标词性标注;利用预先设置的医学词性词库结合双向最大匹配算法为目标词语中的非歧义词设置目标词性标注;并且,歧义词库的设置过程包括:
通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的训练短语语料中的相似度;根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置歧义词库。可见,本方法通过预先设置歧义词库,筛选出目标词语中的歧义词,因此仅需要对歧义词进行计算,利用条件随机场算法结合双向最大匹配算法为各歧义词设置目标词性标注,对非歧义词直接利用预先设置的医学词性词库结合双向最大匹配算法设置目标词性标注;相较于现有技术,本方法能够提高歧义词的识别准确率,能够提高总体的词性识别的准确度和处理效率。
[0038] 为解决上述技术问题,本发明还提供了一种分词和词性识别方法装置及一种电子病历的分析方法、装置,均具有上述有益效果。

附图说明

[0039] 为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0040] 图1为本发明实施例提供的一种分词和词性识别方法的流程图;
[0041] 图2为本发明实施例提供的一种分词和词性识别装置的结构图;
[0042] 图3为本发明实施例提供的另一种分词和词性识别装置的结构图;
[0043] 图4为本发明实施例提供的一种电子病历的分析方法的流程图;
[0044] 图5为本发明实施例提供的一种基础语料的采样过程示意图;
[0045] 图6所示的一种利用基础语料迭代更新结构化模型的过程示意图;
[0046] 图7为本发明实施例提供的一种电子病历的分析装置的结构图。

具体实施方式

[0047] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 本发明实施例的核心是提供一种分词和词性识别方法,能够提高词性识别的准确度和处理效率;本发明的另一核心是提供一种分词和词性识别装置及一种电子病历的分析方法、装置,均具有上述有益效果。
[0049] 为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
[0050] 图1为本发明实施例提供的一种分词和词性识别方法的流程图。如图1所示,一种分词和词性识别方法包括:
[0051] S10:根据目标电子病历获取待识别短语语料;
[0052] S20:利用预先设置的电子病历后结构化系统对待识别短语语料进行切分,得到目标词语。
[0053] 具体的,在实际操作中,首先获取的一般是目标电子病历,然后需要对目标电子病历进行切分,得出待识别短语语料。通过对待识别短语语料进行分词操作,并对分词操作后得出的目标词语进行词性识别。
[0054] 具体的,预先设置电子病历后结构化系统,然后利用电子病历后结构化系统中的段落切分模型、句子切分模型以及短语切分模型对目标电子病历进行段落切分、句子切分以及短语切分,得到待识别短语语料。具体的,通过段落切分、句子切分得到的待识别句子语料,基于中英文停顿符将待识别句子语料进行切分,得到待识别短语语料,即去掉待识别句子语料中的标点符号,使得待识别句子语料被切分成若干条短语,即得到待识别短语语料。
[0055] 在得出待识别短语语料之后,还需要对待识别短语语料进行分词,保证目标词语为最小粒度切割。如,需要对待识别短语语料“上肢骨折”、“腹部疼痛”,按照“部位+症状/疾病”进行切分,得到目标词语。
[0056] S30:利用预先设置的歧义词库结合双向最大匹配算法确定出目标词语中的歧义词,并利用条件随机场算法为各歧义词设置目标词性标注;
[0057] S40:利用预先设置的医学词性词库结合双向最大匹配算法为目标词语中的非歧义词设置目标词性标注;
[0058] 其中,歧义词库的设置过程包括:
[0059] 通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的训练短语语料中的相似度;
[0060] 根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置歧义词库。
[0061] 需要说明的是,由于在不同语境下,同一词语可能存在不同的词性,如“发热”在不同语境下可以理解为疾病和症状。因此,在本步骤中,预先设置歧义词库,然后利用预先设置的歧义词库结合双向最大匹配算法对切分出的目标词语进行筛选,并确定出目标词语中的歧义词,再利用条件随机场算法结合语境对出现的歧义词进行预测,清晰辨别歧义词的真实词性。需要说明的是,歧义词库的设置方式为:将医学文本中常出现的歧义词进行汇总并存储到数据库,得到歧义词库。更具体的,通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的训练短语语料中的相似度;根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置歧义词库。并且,在实际操作中,还可以通过人工进行半监督校验,以进一步提高设置出的歧义词库的准确性。
[0062] 对非歧义词的词性识别一般通过预先设置医学词性词库的方式实现:医学词性词库中设置有医学词条与对应的词性,结合双向最大匹配算法确定出医学词性词库中与目标词语对应的医学词条,从而确定出对应的词性,利用该词性为对应的目标词语设置目标词性标注。
[0063] 本发明实施例提供的一种分词和词性识别方法,首先根据目标电子病历获取待识别短语语料;利用预先设置的电子病历后结构化系统对待识别短语语料进行切分,得到目标词语;然后利用预先设置的歧义词库结合双向最大匹配算法确定出目标词语中的歧义词,并利用条件随机场算法为各歧义词设置目标词性标注;利用预先设置的医学词性词库结合双向最大匹配算法为目标词语中的非歧义词设置目标词性标注;并且,歧义词库的设置过程包括:通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的训练短语语料中的相似度;根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置歧义词库。可见,本方法通过预先设置歧义词库,筛选出目标词语中的歧义词,因此仅需要对歧义词进行计算,利用条件随机场算法结合双向最大匹配算法为各歧义词设置目标词性标注,对非歧义词直接利用预先设置的医学词性词库结合双向最大匹配算法设置目标词性标注;相较于现有技术,本方法能够提高歧义词的识别准确率,能够提高总体的词性识别的准确度和处理效率。
[0064] 在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,利用预先设置的电子病历后结构化系统对待识别短语语料进行切分,得到目标词语的过程,具体包括:
[0065] 利用电子病历后结构化系统中的分词模型,依据双向最大匹配算法对待识别短语语料进行切分,得到候选词语;
[0066] 利用Viterb动态规划算法依据候选词语和待识别短语语料进行解码,得到最大概率词语切分结果,确定出目标词语。
[0067] 在本实施例中,首先是利用电子病历后结构化系统中的分词模型,利用BiLSTM模型,根据双向最大匹配算法(BMMA)对待识别短语语料进行切分,得到候选词语。
[0068] 具体的,双向最大匹配算法(BMMA,Bidirectional Maximum Matching Algorithm)的主要原理为:先对待识别短语语料切分出单字串,然后将单字串和预先设置的医学词性词库进行比对,如果该单字串是一个医学词条,就记录下来,即,将该单字串作为一个候选词语;否则,通过增加或者减少一个单字,并继续与医学词性词库进行比较,确定出候选词语,直到还剩下一个单字则终止;如果单字串无法切分,则作为未登录词处理。
[0069] 在根据待识别短语语料得出候选词语之后,再利用Viterb动态规划算法,并依据得出的候选词语,对待识别语料进行解码,确定出目标词语。
[0070] 具体的,通过Viterb动态规划算法和候选词语确定出目标词语的过程为:获取待识别短语语料的候选词语,然后统计出各候选词语在目标电子病历中出现的频率(频率=出现次数/候选词语总数),如果没有该候选词语,则将在医学词性词库中出现频率最小的词语的频率作为该候选词语的频率,再根据Viterb动态规划算法查找最大概率路径的方法,对待识别短语语料从右往左依次反向计算最大概率,最后得到最大概率路径,得到最大概率的切分组合,确定出目标词语。基于汉语句子的重心落在后面的原理,从右往左反向计算最大概率,即重心落在右边,这样可以排除形容词的干扰,由此确定出的目标词语的正确率要高于从左往右计算的方法。
[0071] 可见,本实施例提供的方法,能够提高确定出目标词语的准确度,进而提高词性识别的准确度。
[0072] 在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,在利用电子病历后结构化系统中的分词模型,依据双向最大匹配算法对待识别短语语料进行切分,得到候选词语之后,进一步包括:
[0073] 在得出未登录词时,利用条件随机场算法和未登录词对待识别短语语料进行切分,得到目标词语。
[0074] 可以理解的是,在利用双向最大匹配算法对待识别短语语料进行切分,得到候选词语的过程中,还可能存在出现未登录词的情况。本实施例中,对未登录词的处理采用条件随机场算法。具体的,条件随机场算法解决未登录词的步骤为:将待识别短语语料分为词首、词中、词尾和单字词,词位标注为B表示词首,M表示词中,E表示词尾,S表示单字词;将B和E之间的词,S对应的单字词划分为分词,例如:
[0075] 待识别短语语料:患者10年前有高血压。
[0076] 采用CRF算法标注后:患/B者/E 1/B 0/E年/B前/E有/S高/B血/M压/E。
[0077] 分词后的目标词语为:患者/10/年前/有/高血压。
[0078] 需要说明的是,本实施例利用条件随机场算法通过对词语的词位标注过程进行有监督学习,并得到迭代训练模型;该迭代训练模型在有助于提高语料标注中的泛化性能的同时,能够减少迭代训练模型的体量,从而加快词位标注效率。更进一步的,迭代训练模型以短语料块为单位进行模型训练,能最大程度地减少对重复语料的标注,有助于筛选出最具特征差异性的训练语料。
[0079] 本实施例通过利用条件随机场算法和未登录词对待识别语料进行切分,得到目标词语,实现对未登录词进行分词,对未登录词具有较强的泛化预测能力。
[0080] 在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,医学词性词库的设置过程,具体包括:
[0081] 预先在医学词典中为各医学词条设置对应的词性;
[0082] 使用TIRE树将各医学词典中的医学词条和词性对应存储在数据库中,得到医学词性词库。
[0083] 在本实施例中,具体是通过预先在医学词典中为各医学词条设置对应的词性,然后使用TIRE树将医学词典中的医学词条和词性对应存储在数据库中,从而得到医学词性词库。
[0084] 如下表1所示的分词与词性识别的医学词性词库类别表,医学词典主要包含疾病、症状、药物、检验、检查、手术操作、方向、部位、否定词、医院名称等共计10余种医学术语库,且医学词典根据实际需求不断更新。医学词典主要来源于两类,一类为公开数据集,如搜狗医疗术语集合、ICD-9、ICD-10、ICD-11等;另一类为基于半监督抽取结合人工筛选构建的医疗数据集合,包括基于模式匹配的术语识别和基于大规模无监督分词抽取的术语集合。将不同的医学词条设置于不同的医学术语库,分别构建部位词库、症状词库和疾病词库,这些词库对应于疾病词性,目前共整理37类词性类别,且在更新。
[0085] 具体的,TIRE树是数据结构的一种,主要是利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,具有较高的查询效率,在本实施例中,将词性存放到TIRE树中,能提高查询效率,提高对文本中出现的医学词条的识别效率,进而提高分词和词性识别效率。
[0086] 表1分词与词性识别的医学词性词库类别表
[0087]
[0088] 上文对于本发明提供的一种分词和词性识别方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的分词和词性识别装置,由于装置部分的实施例与方法部分的实施例相互照应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0089] 图2为本发明实施例提供的一种分词和词性识别装置的结构图,如图2所示,一种分词和词性识别装置包括:
[0090] 词库构建模块21,用于通过bert预训练词向量模型计算各词语在训练短语语料中的词向量,并计算同一个词语在不同的训练短语语料中的相似度;根据投票机制无监督筛选出相似度低于预设阈值的词语,并设置歧义词库;
[0091] 获取模块22,用于根据目标电子病历获取待识别短语语料;
[0092] 切分模块23,用于利用预先设置的电子病历后结构化系统对待识别短语语料进行切分,得到目标词语;
[0093] 第一识别模块24,用于利用预先设置的歧义词库结合双向最大匹配算法确定出目标词语中的歧义词,并利用条件随机场算法为各歧义词设置目标词性标注;
[0094] 第二识别模块25,用于利用预先设置的医学词性词库结合双向最大匹配算法为目标词语中的非歧义词设置目标词性标注。
[0095] 本发明实施例提供的分词和词性识别装置,具有上述分词和词性识别方法的有益效果。
[0096] 图3为本发明实施例提供的另一种分词和词性识别装置的结构图,如图3所示,一种分词和词性识别装置包括:
[0097] 存储器31,用于存储计算机程序;
[0098] 处理器32,用于执行计算机程序时实现如上述分词和词性识别方法的步骤。
[0099] 本发明实施例提供的分词和词性识别装置,具有上述分词和词性识别方法的有益效果。
[0100] 图4为本发明实施例提供的一种电子病历的分析方法的流程图,如图4所示,一种电子病历的分析方法具体包括:
[0101] S41:预先根据原始电子病历和与各分析类型对应的机器学习算法训练出与各分析类型对应的结构化模型,构建电子病历后结构化系统;其中,利用预先设置的歧义词库和条件随机场算法训练得出电子病历后结构化系统中的词性识别模型;
[0102] S42:获取目标电子病历,并利用电子病历后结构化系统对目标电子病历进行分析,得出分析结果。
[0103] 具体的,原始电子病历是指医院治疗期间产生的历史医疗文档,包括入院记录、出院记录、首次病程记录、院内会诊记录、病情告知书、术后首次病程记录、手术记录等多种类型文档。在实际操作中,在获取到原始电子病历之后,会对原始电子病历进行数据清洗。其中,数据清洗包括:对于原始电子病历中不规范书写,如中英文标点、空格、换行、数字、字母等进行规范统一化处理,将标点统一规范到中文状态、多行换行替换为一行、多个空格替换为一个空格、数字表示归一到阿拉伯数字类型、所有字母全部转换为小写。通过进一步对原始电子病历进行数据清洗操作,能够显著提升后续训练出的结构化模型的泛化性能。
[0104] 然后,按照预设要求对进行数据清洗之后的原始电子病历进行切分,得到基础语料;其中,基础语料包括文书语料、段落语料、句子语料和短语语料,并可以进一步将基础语料存储至病历数据库中。
[0105] 在实际操作中,考虑到训练出结构化模型的泛化性能,以及基础语料需最大程度代表总体样本的分布。因此,对基础语料进行差异化采样,针对同一种类型的文书(如,入院记录),考虑到疾病类型不同,病历文书将存在差异的情况,分别从不同科室按照不同种类疾病进行分层采样;根据构建电子病历后结构化系统的结构化模型的不同需求对基础按照段落、句子等类型进行去重后,再采样构建段落和句子集合,使得基础语料最大程度覆盖各科室,全病种。
[0106] 考虑到同一医院的电子病历文书结构相对固定,各个板块内容有不同程度的重复的特点。因此,可以对上述差异化抽样的病历文书进行二次去重,以最大程度精简基础语料的规模,达到少量基础语料覆盖更多的特征的目的。
[0107] 并且,结合图5所示的基础语料的采样过程示意图,病历数据库中存储的基础语料是通过随机抽样得出,具体通过选择各语料集合中10%的语料作为基础语料。需要说明的是,用于训练分类模型的基础语料,在抽样时需要保证各类别来源数据在基础语料中占比相同,如篇章主题识别模型中选择入院记录、出院记录、日常记录等各类篇章数量一致。以下分别从段落、句子和短语三个粒度获取对应的基础语料进行具体说明。首先对原始电子病历按照规则(如“换行符号”、“现病史:”、“患者主诉:”等特殊字符)使用正则表达式的方式进行切分,形成段落语料集合,包含患者信息、主诉、现病史、既往史等段落类别;然后对其进行分词、剔除停用词并使用doc2vec、LDA等语义表示方法进行段落文本相似度计算,剔除相似度高于特定阈值(如85%)的段落,得到段落语料。句子语料的构建则是在段落语料的基础上按照分号、句号进行切分,然后基于该切分后的句子集合进行去重处理并构建句子语料。句子语料去重采用句子相似度计算方法,剔除相似度高于特定阈值(如90%)的句子,以实现句子去重。句子相似度计算方法具体为:采用google开源bert算法及其开源的中文预训练模型,结合中文病历文书进行fine-tuning构建适用于中文医学领域的词向量模型,并结合tf-idf进行权重计算,最后根据余弦距离计算句子间的相似度,剔除相似度高于特定阈值的句子,得到句子语料。短语语料是在句子语料的基础上按照规则(同一短语中保留一个实体)进行初始切割,先采用编辑距离(Levenshtein Distance)进行语句相似度计算,剔除相似度大于90%的短语,在此基础上使用上述句子相似度方法进行去重操作,构建短语语料。
[0108] 通过差异化分层采样并进行数据清洗,克服了病历类型、书写风格和术语使用的差异化可能导致训练出的结构化模型不准确或适用性差的缺陷,提高电子病历后结构化系统的普遍适用性和差异化需求。
[0109] 然后,对病历数据库中的基础语料设置标注,得到种子语料。需要说明的是,对基础语料设置标注的过程,可以是由医学编辑双人轮循对基础语料进行标注,对于不一致部分由专家最终确定。设置好标注的种子语料中文书种子语料(出/入院记录、日常记录等)用于构建篇章主题识别模型,段落种子语料(主诉、现病史等)用于构建段落切分模型和段落主题类别模型,句子种子语料则用于构建句子切分模型和实体属性识别模型,短语种子语料则用于构建短语切分模型、实体属性关系识别模型、分词模型、词性识别模型等结构化模型。需要说明的是,除此之外,根据实际需要,还可以集成多种来源的脱敏病历数据,并将脱敏病历数据设置为种子语料,用于模型训练。
[0110] 也就是说,本实施例中的结构化模型具体包括篇章主题识别模型、段落切分模型、段落主题识别模型、句子切分模型、短语切分模型、分词模型、词性识别模型、实体属性识别模型和实体属性关系识别模型。其中,从模型类别划分,病历后结构化系统包含分类和序列标注两大类别的模型,其中篇章主题识别模型、段落主题识别模型、实体属性关系识别模型为分类模型;段落切分模型、实体属性识别模型、句子切分模型以及短语切分模型可以归结为序列标注模型。从功能上讲,篇章主题识别模型和段落主题识别模型用于对篇章或段落主题内容进行识别,实体属性识别模型用于识别疾病、症状等医学实体术语以及部位、方位、时间等属性词语,实体属性关系识别模型则用于区分并识别语料中的实体及属性之间的关联关系。
[0111] 段落切分模型、句子切分模型、短语切分模型与实体属性识别模型均采用了序列标注模型,不同之处在于序列切分仅采用“O”、“S”两个标签即可,其中O表示其他,S代表序列切分点,而实体属性识别模型则根据实体类别而确定标签数量,目前有140种标签。具体的,考虑到篇章序列较长以及模型速度问题,本实施例采用了BERT+BiLSTM+CRF的网络结构得出段落切分模型;对于完整的电子病历,基于段落换行符以及“主诉:”、“现病史:”等标志性词语进行段落切分,并在此基础上以标志性词语作为切分特征加入到CRF++软件包训练段落切分模型;在短语切分模型上采用CRF++开源工具包,通过加入词性特征实现快速高效的短语切分。
[0112] 将句子语料进行短语切分可以更好地辅助实体和属性关系的识别匹配,避免出现错误的实体属性组合。如“患者头部/nb红肿/as,髋关节/nb出现骨折/dis”正常识别为(“头部”,“红肿”)、(“髋关节”,“骨折”),若关系识别错误则会出现(“头部”,“红肿”)、(“髋关节”,“红肿”)。为了避免此种常见错误,通过训练出短语模型先进行短语切分,短语切分模型的基本原则为同一短语块中尽可能只有一种实体,可以存在多个属性。
[0113] 在实体属性识别模型中,针对医疗实体的术语类别多,种子语料少以及长词预测边界不准等问题,模型基于预先设置的医学词性词库可以显著提升模型预测准确率,同时提高模型对于长词的边界定位准确性。本实施例选用的网络架构为Dict+Bert+BiLSTM+CRF,将种子语料中的短语种子语料通过分词模型和词性识别模型生成词性特征,使用Google预训练模型Bert进行字向量训练,使用预训练字向量作为BiLSTM输入,最后对输出序列使用CRF进行解码,得到最终词性标注结果,该标注方案相对已有实体属性识别加入词性特征,模型总体预测精度和未登录词预测准确性都得到较大程度提升。本实施例中,参与训练和预测的标注实体类别为140种,其中,部分实体属性标签类别定义如表2所示,通过加入词性可以显著提高模型对于出现频次低的术语的召回率。
[0114] 表2实体属性标签类别定义
[0115]
[0116]
[0117] 分词和词性识别依据双向最大匹配算法对待识别短语语料进行切分,得到候选词语;并利用Viterb动态规划算法依据候选词语和待识别短语语料进行解码,得到最大概率词语切分结果,确定出目标词语。然后利用预先设置的歧义词库确定出目标词语中的歧义词,并利用条件随机场算法为各歧义词设置目标词性标注,利用预先设置的医学词性词库为目标词语中的非歧义词设置目标词性标注。
[0118] 在本实施例中,利用篇章主题识别模型对完整的电子病历进行篇章主题识别,区分入院/出院/日常/首次病程/检查/手术记录等9类常用医学电子病历,此处采用的模型为Bert+BiLSTM+ATTENTION+Rule的Bagging模型。对于切分完成的段落语料进行段落主题识别,根据应用场景分为了15个主题类别,如“现病史”、“既往史”、“主诉”、“辅助检查”等主题,本实施例采用了同篇章主题识别类似的模型架构Character+Bert+HAN的结构,不同之处在于规则的差异,利用种子语料进行迭代更新模型,可以使得模型分类准确率(5折交叉验证)为97.8%。更具体的,对段落主题识别采用的模型架构为Character+Bert+HAN,即,段落主题识别在HAN模型的基础上进行了改进,原有HAN模型分为4部分:Word encoder,Word attention,sentence encoder以及sentence attention,在Word encoder部分,使用双向的GRU对embedding后的句子进行编码,本实施例的网络在输入时通过上述分词和词性模型进行分词,并通过bert进行word embedding,并以此作为HAN中word encoder的输入,同时在sentence encoder部分加入基于规则抽取的关键短语人为增强attention,提高分类准确率。例如,在篇章分类中,通过人为加入“入院记录:”、“出院记录:”等篇章开头的核心关键短语进行注意力增强,显著提升分类效果;在段落主题识别中通过人为加入“现病史:”、“既往史:”、“患者主诉:”等特征,以此提升段落主题预测的准确率。
[0119] 训练出实体属性关系识别模型是创建电子病历后结构化系统的过程中一个关键性技术方案。通过实体属性关系识别可以实现对短语中实体属性关系类别的关联分组,避免出现实体属性关系匹配紊乱的问题。本实施例选用了基于字符串编码结合位置编码的双向GRU结合注意力机制的Char&Position Embedding BiGRU+2Attention网络作为基础模型,并根据模型预测的结果对模型softmax层输出概率关系区别不大(类别最大概率小于0.75)的结果根据Neo4j进行监督抽取,若图谱中存在该关系对,则认为此关系作为实体属性的关系,若不存在则提交医学编辑参与标注。通过知识图谱已有知识可以显著提升实习属性关系抽取的效果,避免关系识别错误。
[0120] 需要说明的是,考虑到各结构化模型中使用到许多机器学习算法导致单进程速度过慢,为满足工业化应用需求,可以使用tfServing进行模型的二次封装,并使用tornado框架进行服务封装和Nginx反向代理确保高并发请求调用需求。
[0121] 如图6所示的一种利用基础语料迭代更新结构化模型的过程示意图。需要说明的是,在实际操作中,通过选择部分技术语料进行人工标注,得到种子语料,并利用这部分的种子语料进行训练构建上述各个结构化模型的基础版本,然后将剩余的基础语料分批次输入至基础版本的结构化模型中进行预测,将预测结果加入EWELL标注平台;再对EWELL标注平台中的预测结果进行校验,将校验完成的语料作为种子语料,利用该种子语料对该基础版本的结构化模型进行训练,迭代更新基础版本的结构化模型,直到对基础语料的预测结果的准确率达到预设阈值(如达到95%以上),则确定出对应的结构化模型。这样一来,可以相对减少人工操作,简化训练出各结构化模型的步骤。
[0122] 具体的,在训练得出结构化模型,构建出电子病历后结构化系统之后,当获取到目标电子病历时,即获取到当前需要进行分析的电子病历时,先对目标电子病历进行数据清洗,然后利用预先创建出的电子病历后结构化系统对目标电子病历进行篇章主题识别、段落切分、段落主题识别、句子切分、实体属性识别、短语切分、词性识别和实体属性关系识别后,通过定义数据展现结构SCHEMA,将分析结果以JSON数据形式展示于可视化展示界面。可视化展示界面能够查看目标电子病历文本总体结构化情况,JSON数据形式用于存储结构化数据并对外提供结构化数据以供使用,评价量表用于统计并展示实体识别的正确率和召回率。医生可以根据分析结果,进行关键字检索,得到所需病历信息,同时检索出的关键词信息供医生查阅和进行病情判断,避免医生通篇阅读病历,从而减少了医生浏览病历的时间,为医生辅助诊疗增加效率。
[0123] 上文对于本发明提供的一种电子病历的分析方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的电子病历的分析装置,由于装置部分的实施例与方法部分的实施例相互照应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0124] 图7为本发明实施例提供的一种电子病历的分析装置的结构图,如图7所示,一种电子病历的分析装置包括:
[0125] 系统构建模块71,用于预先根据原始电子病历和与各分析类型对应的机器学习算法训练出与各分析类型对应的结构化模型,构建电子病历后结构化系统;其中,利用预先设置的歧义词库和条件随机场算法训练得出电子病历后结构化系统中的词性识别模型;
[0126] 电子病历分析模块72,用于获取目标电子病历,并利用电子病历后结构化系统对目标电子病历进行分析,得出分析结果。
[0127] 本发明实施例提供的电子病历的分析装置,具有上述电子病历的分析方法的有益效果。
[0128] 以上对本发明所提供的一种分词和词性识别方法和装置及一种电子病历的分析方法及装置进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0129] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0130] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。