欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2020107994070
申请人: 淮阴工学院
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法,其特征在于,具体步骤如下:(1)通过爬虫爬取医疗百科信息,导入Neo4j构建知识图谱G;对医疗问答公开数据集D进行序列标注和分类打标签,构造命名实体识别实验数据集NER_DATA和关系抽取实验数据集CLASSIFY_DATA;

(2)搭建CNN‑BiLSTM‑CRF神经网络算法,输入NER_DATA进行命名实体识别实验,训练神经网络,保存模型NER_MODEL;

(3)搭建BERT‑TextCNN神经网络算法,输入CLASSIFY_DATA进行关系抽取实验,训练神经网络,保存模型CLASSIFY_MODEL;

(4)根据关系抽取分类设定模板匹配的问题查询语句,对输入问句SEQ进行命名实体识别和关系抽取,匹配问题模板,查询Neo4j得到结果ANS;

(5)通过对输入问句SEQ与公开数据集D进行相似度分析,利用余弦相似度计算出最相似的病例,得到结果REC;

(6)开放Neo4j图数据库接口API和相似病历推荐系统接口API,对用户输入医疗相关关键字或语句调用算法获取相关医疗实体数据ANS和相似病历回答REC,将查询数据返还WEB应用程序;通过ECharts渲染医疗实体属性数据和实体间关系数据,实现医疗实体关系可视化以及医疗自动问答系统。

2.根据权利要求1所述的一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法,其特征在于,所述步骤(1)中构造命名实体识别实验数据集NER_DATA和关系抽取实验数据集CLASSIFY_DATA的具体步骤如下:(1.1)进行数据爬虫,选择爬虫网站;

(1.2)确定爬取页面;

(1.3)利用urllib模拟访问医疗百科网站,获取html信息;

(1.4)利用etree解析html实体,其中,包括药品信息drugs_info、食物foods_info、检查checks_info、科室departments_info、生产商producers_info、疾病diseases_info和症状symptoms_info分类信息;构造实体信息与属性项basic_info={drugs_info,foods_info,checks_info,departments_info,producers_info,diseases_info,symptoms_info,disease_infos};

(1.5)定义疾病与忌吃食物关系为rels_noteat,疾病与宜吃食物关系为rels_doeat,疾病与推荐药品关系为rels_commonddrug,疾病与检查关系为rels_check,厂商与药物关系为rels_drug_producer,疾病与症状关系为rels_symptom,疾病与相关疾病并发关系为rels_acompany,疾病与科室之间的关系为rels_category;构造实体关系项rels={rels_noteat,rels_doeat,rels_commonddrug,rels_check,rels_drug_producer,rels_symptom,rels_acompany,rels_category};

(1.6)去除basic_info和rels数据缺失项;

(1.7)利用basic_info和rels构造Neo4j图数据库G;

(1.8)利用BIOES标注法对医疗问答公开数据集D进行序列标注,构造命名实体识别实验数据集NER_DATA;

(1.9)利用rels分类对医疗问答公开数据集D进行打标签,构造关系抽取实验数据集CLASSIFY_DATA。

3.根据权利要求2所述的一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法,其特征在于,所述步骤(2)中搭建CNN‑BiLSTM‑CRF神经网络算法的具体步骤如下:(2.1)将采用BIOES标注的NER_DATA划分为训练数据集ner_train_txt,测试数据集ner_test_txt,比例为8:2;

(2.2)采用词向量模型中的连续词袋模型cbow进行词向量的训练,定义emb为数据训练后构建的词向量;

(2.3)定义con1为一维卷积对词向量emb进行特征提取,采取relu激活函数,卷积核长度为1,padding保留边界处的卷积结果;定义con2为一维卷积卷积核长度为2对词向量emb进行特征提取;定义con3为一维卷积卷积核长度为3对词向量emb进行特征提取;定义con4为一维卷积卷积核长度为4对词向量emb进行特征提取;

(2.4)定义fc1为联合con1,con2,con3,con4多个卷积特征提取框架提取的特征进行融合;

(2.5)定义fc2为fc1进行全连接的结果;

(2.6)对fc进行归一化层操作,赋值为fc3;

(2.7)利用BiLSTM对emb提取特征,即输入emb至BiLSTM,赋值为lstm;

(2.8)将fc3与lstm特征融合,定义结果为fc4;

(2.9)对fc4进行全连接,采用relu激活函数,定义结果为fc5;

(2.10)对fc5归一化层操作,定义结果为fc6;

(2.11)定义crf为CRF模型实体,输入fc进行预测得到outputs;

(2.12)定义词向量ID序列为x_in,将outputs与x_in输入keras Model中训练,得到模型NER_MODEL。

4.根据权利要求3所述的一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法,其特征在于,所述步骤(3)中搭建BERT‑TextCNN神经网络算法的具体步骤如下:(3.1)将CLASSIFY_DATA划分为训练数据集classify_train_txt,测试数据集classify_test_txt,比例为8:2;

(3.2)初始化网络参数实体类TextConfig为config,利用BERT中tokenization.FullTokenizer类用来处理vocab file单字的切分,标点符号,unknown词,Unicode转换操作;

(3.3)定义model为TextCNN的实体,利用config进行参数的初始化;

(3.4)加载数据集classify_train_data和classify_test_data,将样本数据转化成BERT模型输入的token形式,bert模型需要的四个变量;input_ids:字符级text_a其含义为分类文本,在词库对应的token;input_mask:bert模型mask训练的标记,初始化为1;

segment_ids:句子标记,初始化为0;label_ids:文本标签对应的token,非one_hot的形式;

(3.5)加载BERT模型,定义k=1,num_epochs=1000,k用于循环操作;

(3.6)如果k<=num_epochs,则转到步骤(3.7),否则转到步骤(3.18);

(3.7)定义batch_train为四个tokens形式组成的变量;

(3.8)定义batch_ids,batch_mask,batch_segment,batch_label为batch_train的元素,初始化j=1用于遍历batch_train;

(3.9)如果j

(3.10)batch_ids,batch_mask,batch_segment,batch_label构造参数向量输入model进行训练;

(3.11)定义训练集准确度为train_accuracy,测试集准确度为test_accuracy,merged_acc=(train_accuracy+test_accuracy)/2,best_acc为相同计算方式下历史最高分数;

(3.12)如果merged_acc>best_acc,则转至步骤(3.13),否则转至(3.14);

(3.13)best_acc=merged_acc,保存模型参数;

(3.14)定义global_step为当前epoch循环的次数,last_improved为上次提升best_acc的次数;

(3.15)如果global_step‑last_improved>1500,转至步骤(3.18),否则转至(3.16);

(3.16)j=j+1,跳转至步骤(3.9);

(3.17)k=k+1,跳转至步骤(3.6);

(3.18)保存模型为CLASSIFY_MODEL。

5.根据权利要求4所述的一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法,其特征在于,所述步骤(4)中得到结果ANS的具体步骤如下:(4.1)定义用户输入语句为SEQ;

(4.2)利用NER_MODEL对SEQ进行命名实体识别,得到实体item;

(4.3)利用CLASSIFY_MODEL对SEQ进行关系抽取,得到用户输入语句类别question_type;

(4.4)定义与实体关系项rels对应的Cypher查询语句cypher,包含{rels_noteat,rels_doeat,rels_commonddrug,rels_check,rels_drug_producer,rels_symptom,rels_acompany,rels_category}类别;

(4.5)根据question_type,将对应item赋值至cypher语句中,查询Neo4j得到结果ANS。

6.根据权利要求5所述的一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法,其特征在于,所述步骤(5)中得到结果REC的具体步骤如下:(5.1)D为医疗问答公开数据集,D中包含title和answer,title,answer分别表示病人的问题和医生的答复;

(5.2)通过对title项进行分词,分词后得到text={w1,w2,…,wn},wn是病例数据中病人问题的核心,包含疾病的名字、症状、药品名称专有名词,定义texts是text1到textN的集合,其中,变量A∈[1,n],n是文本的最大数量;

(5.3)定义frequency为map,键值对形式为<词语,出现次数>,用于遍历texts统计词语频率;

(5.4)定义min_frequency为最小频率,默认值为1;定义y=1用于遍历texts;

(5.5)如果y

(5.6)定义j=1用于遍历texts[k];

(5.7)如果j

(5.8)如果词语texts[k][j]的频率即frequency小于或等于min_frequency,则转到步骤(5.9),否则转到步骤(5.10);

(5.9)texts[k]删除元素text[k][j];

(5.10)j=j+1,转到步骤(5.7);

(5.11)y=y+1,转至步骤(5.5);

(5.12)对texts构造词典得到字典Dict;

(5.13)通过对元素text构造词袋模型,得到词语向量集合V={(id1,value1),(id2,value2),…(idn,valuen)};idA是词语wA在整个字典Dict中词语的id,valueA是wA在当前文档出现的次数;向量集corpus_simple是V1至Vn的集合,其中,变量A∈[1,n];

(5.14)定义model‑tf为TF‑IDF模型,将corpus_simple输入初始化model‑tf;

(5.15)通过模型mdoel‑tf训练corpus_simple得到corpus,corpus为对应的向量集,对corpus建立相似度矩阵得到index;

(5.16)定义用户输入问句为Q,对Q分词得textQ,textQ={t1,t2,...tm};

(5.17)对textQ调用doc2bow方法,输入训练好的model‑tf计算TF‑IDF值;

(5.18)利用余弦相似度计算出最相似的病例,得到结果REC。

7.根据权利要求6所述的一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法,其特征在于,所述步骤(6)中通过ECharts渲染医疗实体属性数据和实体间关系数据,实现医疗实体关系可视化以及医疗自动问答系统的具体步骤如下:(6.1)开放Neo4j图数据库接口API和相似病历推荐系统接口API;

(6.2)创建线程池Thread Pool;

(6.3)判断线程池Thread Pool所有任务是否执行完毕;

(6.4)用户输入查询语句,包含医疗相关数据;

(6.5)子线程Child Thread获取任务处理;

(6.6)系统构造包含查询信息的Cypher查询语句,获取医疗实体相关属性数据,通过相似病历推荐系统提供的接口对查询所得的医疗实体数据进行实体间关系维度扩展;

(6.7)对用户输入医疗相关关键字或语句调用算法获取相关医疗实体数据ANS或相似病历回答REC,将查询数据返还WEB应用程序;

(6.8)结束该子线程Child Thread;

(6.9)关闭线程池Thread Pool;

(6.10)WEB应用程序通过ECharts渲染医疗实体属性数据和实体间关系数据,实现医疗实体关系可视化以及医疗自动问答系统。