[发明专利]一种构建肾病专科医学知识图谱的方法、模型及系统在审
申请号: | 202010260450.X | 申请日: | 2020-04-03 |
公开(公告)号: | CN111538845A | 公开(公告)日: | 2020-08-14 |
发明(设计)人: | 黎海源 | 申请(专利权)人: | 肾泰网健康科技(南京)有限公司 |
主分类号: | G06F16/36 | 分类号: | G06F16/36;G06F40/295;G06N3/04;G16H50/70;G16H10/60 |
代理公司: | 南京科知维创知识产权代理有限责任公司 32270 | 代理人: | 杜依民 |
地址: | 210023 江苏省南京市栖霞区仙林*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 构建 肾病 专科 医学知识 图谱 方法 模型 系统 | ||
1.一种构建肾病专科医学知识图谱的方法,其特征在于包括如下步骤:
S1,搜集电子病历语料;
将医院肾脏病专科电子病历导出,电子病历为TXT文本形式;
S2,得到文本数据的步骤
对电子病历文本做医学词分词处理,定义命名实体类型、关系类型、
定义实体类型,实体类型包括:手术、药名、疾病、症状、程度、检查、结果、家族史、家族史属性、病史、病史属性、身高、体重、BMI、臀围、腰臀比、腰围、怀孕;
人工将每一份电子病历中出现的肾病相关的医学词进行实体类型标注,将肾病相关的医学词归类到所述各实体类型中;所述肾病相关的医学词为实体;
定义关系类型,关系类型包括:施加于、导致、结果、程度、家族史、病史;
人工对每一份电子病历中已经标注好的实体类型按照标注方式进行关系类型标注,标注方式采用BIO标注法,以B开头的标签表示一个实体的开头,以I开头的标签表示一个实体的剩余部分,标签O表示非实体;
对每一个医学词实体进行汉语拼音标注,汉语拼音为手术、药名、疾病、症状、程度、检查、结果、家族史、家族史属性、病史、病史属性、身高、体重、BMI、臀围、腰臀比、腰围、怀孕18个具体实体类型的汉语拼音;
给出所述实体类型之间存在的医学关系;所述医学关系为实体间关系;
记录各实体在电子病历中的位置信息,以及各实体间关系在电子病历中的位置信息;
得到文本数据,所述文本数据包括实体、实体类型、和实体位置信息的文本文件A1,以及,包括关系类型、和实体间关系位置信息的文本文件A2;一个文本文件A1中的内容为一个实体特征数据集,一个文本文件A2中的内容为一个关系特征数据集;
S3、得到训练数据的步骤
对步骤S2中得到的文本文件A1进行数据格式化,得到文本文件A11;数据格式化为将文本文件A1中的内容按照BIO竖向排列的方式,将文本文件A1中的横行转变成竖行,从而得到文本文件A11,所述文本文件A11的内容分成两列,第一列为文本文件A11中的每一个汉字字符或标点符号,第二列为实际标签,第一列与第二列以空格隔开;第二列实际标签包括B标签、或I标签、或O标签,每个实际标签后面为相应具体实体类型的汉语拼音;
B标签共有18种,分别为手术、药名、疾病、症状、程度、检查、结果、家族史、家族史属性、病史、病史属性、身高、体重、BMI、臀围、腰臀比、腰围、怀孕18个具体实体类型的汉语拼音;
I标签共有18种,分别为手术、药名、疾病、症状、程度、检查、结果、家族史、家族史属性、病史、病史属性、身高、体重、BMI、臀围、腰臀比、腰围、怀孕18个具体实体类型的汉语拼音;
O标签共有1种,
B、I、O标签共计37种;
将所有A11单个实体特征数据集,合并成一个总的实体特征数据集,从而形成总的实体特征数据集文本文件;总的实体特征数据集文本文件中各单个实体特征数据集之间用空格隔开;
S4 特征数据集拆分得到训练数据和测试数据的步骤
采用python的sklearn包的StratifiedShuffleSplit分层分割方法将步骤S3中得到的总的实体特征数据集分成N份,N2;选取其中的N-1份作为模型的训练数据,得到训练集文本文件,训练集文本文件中的内容为训练数据;剩余的一份作为模型的测试数据,得到测试集文本文件,测试集文本文件中的内容为测试数据;
S5 代入训练数据训练BIO标注模型的步骤
采用python开发语言的sklearn包,选用BiLSTM长短期记忆神经网络和CRF条件随机场作为BIO标注模型;所述BiLSTM长短期记忆神经网络包括参数表D1,CRF条件随机场包括参数表D2;
BiLSTM长短期记忆神经网络包括数据输入端B1和结果输出端B2,CRF条件随机场包括数据输入端C1和结果输出端C2,将BiLSTM长短期记忆神经网络的结果输出端B2作为CRF条件随机场的数据输入端C1,从而建立起BIO标注模型;
将步骤S4中得到的训练数据通过数据输入端B1导入BIO标注模型,得到参数表D3、概率矩阵和转移矩阵;
BiLSTM长短期记忆神经网络对训练数据按照BiLSTM长短期记忆神经网络的计算规则进行计算,并通过调节参数表D1,得到概率矩阵;所述概率矩阵的列为标签,行为汉字字符或标点符号,概率矩阵中的内容代表汉字字符或标点所对应的标签的概率值;
CRF条件随机场对训练数据按照CRF条件随机的计算规则进行计算,并通过调节参数表D2,得到转移矩阵;所述转移矩阵的列为标签,行为标签,转移矩阵中的内容为行标签转移为列标签的概率值;
得到概率矩阵后的参数表D1和得到转移矩阵后的参数表D2成为参数表D3;
通过概率矩阵和转移矩阵中对应的分数加和得到每个序列标签的得分,得分最高的序列标签作为最终的输出标签;所述最终的输出标签包括B、I开头的标签和O标签;
将最终输出的标签与实际标签相比较,如果相同,则认为步骤S5中得到的有效的BIO标注模型达标,如果不相同,则返回步骤S5重新优化参数表D3后,再进行步骤S6测试,直至BIO标注模型达标;
S6 测试BIO标注模型的步骤
将步骤S4中的测试数据代入步骤S5中有效的BIO标注模型,进行数据测试,得到序列标签,该序列标签与测试数据的实际标签相比较,如果相同,则认为步骤S5中得到的有效的BIO标注模型达标,如果不相同,则返回步骤S5重新优化参数表D3后,再进行步骤S6测试,直至BIO标注模型达标;
S7 自动识别命名实体与关系的步骤
以电子病历文本作为训练数据,代入步骤S5,将步骤S5最终的输出标签的B、I开头的标签作为自定义字典纳入结巴分词工具包,通过结巴分词工具包对电子病历文本进行分词得到词列表,利用python开发语言的Gensim库中的Word2Vec模型,采用skip-gram方法训练出词向量并保存,得到词向量文件;
采用python开发语言的keras库的CNN卷积神经网络和BILSTM模型长短期记忆神经网络为实体关系识别模型
将步骤S2中文本文件A1的第一列中内容拼接成一个文本,对文本使用结巴分词工具包进行分词处理,从词向量文件中找到分词对应的词向量作为模型的输入,对文本的每个汉字字符和标点符号用数值替换作为字向量输入实体关系识别模型,得到文件中的实体、以及实体类型、关系;
将步骤S2中文本文件A1的第一列中内容拼接成一个文本,输入到S5中的BIO标注模型,得到包括B、I开头的标签和O标签,将B、I开头的标签对应的汉字字符和标点符号与实体关系识别模型中得到的实体做比较,删除掉BIO标注模型得到的B、I、O标签中,实体关系识别模型得到的文件中的出现的实体,但在BIO标注模型得到的B、I、O标签中未出现的实体,得到BIO文件,所述BIO文件包括实体、以及实体类型、关系;
S8、实体标准化处理;
建立标准库和慢性肾脏病专业数据库,采用图像识别软件对慢性肾脏病专业书籍与文献进行识别,存储到慢性肾脏病专业数据库中,同时将慢性肾脏病专业电子书籍与电子文献也存储到慢性肾脏病专业数据库中,基于慢性肾脏病专业数据库人工构建血液检查项目、尿液检查项目、症状及其他医学实体名词标准库,标准库中包含每个医学名词的标准名称及出现过的相似名称,并进行编码便于唯一标识,形成实体标准库;
对步骤S7提取的实体,将其中同一种实体不同的表述对照实体标准库进行替换,统一实体描述,对实体的替换,为符号、字母、文字、单位、医学代码的替换,统一符号、字母、文字、单位、医学代码;得到标准化的实体数据;
S9、构建肾病医学知识图谱
将步骤S8中标准化的实体数据和S7中得到的实体类型、关系,存入Neo4j数据库形成肾病专科知识图谱。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于肾泰网健康科技(南京)有限公司,未经肾泰网健康科技(南京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010260450.X/1.html,转载请声明来源钻瓜专利网。