CN113918694B - 一种面向医疗知识图谱问答的问句解析方法 - Google Patents

一种面向医疗知识图谱问答的问句解析方法 Download PDF

Info

Publication number
CN113918694B
CN113918694B CN202111170907.9A CN202111170907A CN113918694B CN 113918694 B CN113918694 B CN 113918694B CN 202111170907 A CN202111170907 A CN 202111170907A CN 113918694 B CN113918694 B CN 113918694B
Authority
CN
China
Prior art keywords
attribute
entity
knowledge graph
standard
medical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111170907.9A
Other languages
English (en)
Other versions
CN113918694A (zh
Inventor
刘茂福
向军毅
付洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University of Science and Engineering WUSE
Original Assignee
Wuhan University of Science and Engineering WUSE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University of Science and Engineering WUSE filed Critical Wuhan University of Science and Engineering WUSE
Priority to CN202111170907.9A priority Critical patent/CN113918694B/zh
Publication of CN113918694A publication Critical patent/CN113918694A/zh
Application granted granted Critical
Publication of CN113918694B publication Critical patent/CN113918694B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Animal Behavior & Ethology (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

本发明涉及一种面向医疗知识图谱问答的问句解析方法。其技术方案是:采用分类器对医疗问题进行分类,采用识别器对医疗问题进行实体识别和属性识别;再将识别的实体与知识图谱中的所有实体逐个进行匹配,与所述知识图谱中匹配度最高的实体为标准实体;将识别的属性与知识图谱中所有属性逐个进行匹配,与知识图谱中匹配度最高的属性为标准属性;然后将标准实体、标准属性和标准属性值转化为查询语句,知识图谱中查询模块收到查询语句后,即得到医疗问题的答案。本发明具有识别精准度高和问句分析错误率低的特点,能有效缓解医疗资源的失衡,降低医疗成本。

Description

一种面向医疗知识图谱问答的问句解析方法
技术领域
本发明属于医疗知识图谱问答技术领域。具体涉及一种面向医疗知识图谱问答的问句解析方法。
背景技术
知识图谱问答(Question Answering over Knowledge Graphs,KGQA)的目标是使用知识图谱中的事实来回答自然语言问题,实现用户无需了解图谱的数据结构便能高效、轻松地访问图谱中的重要知识的目标。其研究兴起的主要原因是人们对快速、准确地获取信息的需求,知识图谱问答是目前人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向。而医疗知识图谱问答则是推动人工智能在医学领域落地的重要一步,不仅有利于解决医疗资源匮乏和医疗服务不均衡的问题,更有可能改变传统的医疗模式。
医疗知识图谱问答需要捕获自然语言的语义,核心在于问句语义和医疗知识语义的理解和相似度计算。问句解析过程通常包括两部分,首先检测问题中提及的作为主题词的实体,该实体作为在知识图谱中查询的起点,然后寻找由多个关系组成的路径,该路径从主题词(起点)连接至问题的答案(终点)。
近年来,随着深度学习在自然语言处理领域的快速发展及其在问答任务上的良好表现,利用深度神经网络来改进面向医疗知识图谱的问答成为研究的主要方向,研究方法主要分为基于问题分解的问句解析、基于语义依存的问句解析、基于语义解析的问句解析等方法。其中第一类是受到原始数据的限制较大,并不能覆盖广泛的问题形式;第二类主要受限于语义依存解析器的性能限制,轻微的错误会带来严重的后果;第三类是端对端问答系统经常采取的方式,由于简单直接的特点,越来越多的系统都采用这个方法。
如“一种面向知识图谱问答的复合问句解析方法”(CN111444316A)专利技术,该技术在复合问句解析方法中引入了强化学习的思想,将复合问题分解为简单问题的模型,能够提升KBQA系统回答复合问题的表现,但是该方法所使用的长短记忆网络的特征抽取效果较差,这会直接导致识别器的识别精准度下降;又如“一种基于BERT和相似度算法的医疗知识图谱问答系统构建方法”(CN112131393A)专利技术,该技术虽能够完成问诊病例的推荐以及相关疾病知识库的构建,为用户提供辅助医疗诊断和疾病百科查询服务,但该方法并未划分问句的类别,由于不同类别的问句包含的实体关系差异巨大,这会导致问句解析方法的错误率上升。
发明内容
本发明旨克服在现有技术缺陷,目的在于提供了一种识别精准度高和问句解析错误率低的面向医疗知识图谱问答的问句解析方法。
为实现上述目的,本发明采用的技术方案的步骤是:
步骤1、采用分类器对医疗问题进行分类:事实型问题;列表型问题;验证型问题;复杂交互型问题。
步骤2、采用识别器对医疗问题进行实体识别和属性识别:
验证型问题有一个实体和一个属性;
列表型问题有一个属性;
事实型问题有一个实体和一个属性;
复杂交互型问题有一个属性。
所述实体是指具有对客观个体的抽象。
所述属性为实体与实体之间关系的抽象和为实体的固有属性。
步骤3、将识别的实体与知识图谱中的所有实体逐个进行匹配,与所述知识图谱中匹配度最高的实体为标准实体;将识别的属性与知识图谱中所有属性逐个进行匹配,与知识图谱中匹配度最高的属性为标准属性。
所述匹配的具体方式是:
将识别的实体与知识图谱中的各实体的最长公共子序列的长度与标准实体的长度之比作为召回率R,将识别的实体与知识图谱中的各实体的最长公共子序列的长度与识别的实体的长度之比作为准确率P;知识图谱中的各实体的匹配度Slcs
式(1)中:β表示常数,β为9999;
R表示召回率,%;
P表示准确率,%。
步骤3.1、所述医疗问题的类别为验证型问题
将验证型问题的实体与知识图谱中的所有实体逐个进行匹配,则知识图谱中匹配度最高的实体为验证型问题标准实体。
将验证型问题的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为验证型问题标准属性。
对验证型问题的剩余文本进行属性值抽取,采用正则表达式的方式对抽取的属性值进行标准化,得到标准属性值。
步骤3.2、所述医疗问题的类别为列表型问题
将列表型问题中的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为列表型问题标准属性。
对列表型问题的剩余文本进行属性值抽取,采用正则表达式的方式对抽取的属性值进行标准化,得到列表型问题标准属性值。
步骤3.3、所述医疗问题的类别为事实型问题
将事实型问题中的实体与知识图谱中的所有实体逐个进行匹配,则知识图谱中匹配度最高的实体为事实型问题标准实体。
将事实型问题中的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为事实型问题标准属性。
步骤3.4、所述医疗问题的类别为复杂交互型问题
若复杂交互型问题中存在指示代词,则转换为上一个问句中的标准实体,反之,则直接采用上一个问句中的标准实体。
所述指示代词为“他”、“谁”、“什么”、“这”、“这个”、“哪”、“她”、“它”中的一个。
所述上一个问句为本次问句前保留的3个问句,其中包含标准实体。
在步骤3.1~步骤3.4中:所述剩余文本为医疗问题中除识别的属性和识别的实体以外的文本。
所述正则表达式是对字符串操作的一种逻辑公式;所述逻辑公式由事先定义的字符组成,所述“事先定义的字符”包含大写的26个英文字母、小写的26个英文字母、所有中文字符、“\”、“{”、“}”、“[”、“]”、“?”、“*”、“+”、“<”、“>”、“|”、“^”、“=”、“:”、“.”和“$”中的一个以上。
步骤4、将标准实体、标准属性和标准属性值转化为查询语句,知识图谱中查询模块收到查询语句后,即得到医疗问题的答案。
所述查询语句为Cypher,Cypher是一种用于管理图数据库管理系统的编程语言。
所述转换是基于Cypher模板进行的,将Cypher模板中的X替换成标准实体、Y替换成标准属性和Z替换成标准属性值。
所述医疗问题的类别为验证型问题时,Cypher模板为MATCH(n:dis{name:“X”})-(:attribute{name:“Y”})-(b:“Z”)return count(n);。
所述医疗问题的类别为列表型问题时,Cypher模板为MATCH(n)-(:attribute{name:“Y”})-(b:“Z”)return n;。
所述医疗问题的类别为事实型问题或复杂交互型问题时,Cypher模板为MATCH(n:dis{name:“X”})-(:attr{name:“Y”})-(b:data)returnb;。
所述查询模块是Neo4j中的一个功能模块。
步骤1所述分类器和步骤2所述识别器均为深度学习模型。
所述深度学习模型包括语言处理层、自注意力层、编码层和解码层,将医疗问题转换为向量,再将所述向量作为训练集对深度学习模型进行训练,训练包括:
在语言处理层,对训练集进行掩码训练和次句预测训练,将语言处理层的输出作为自注意力层的输入向量。
在自注意力层,输入向量乘三个随机初始化向量,创建一个Query向量、一个Key向量和一个Value向量,用点积计算Query向量和Key向量的相似度,同时利用初始化矩阵的维度对输出进行调节,然后用相似度除以最后通过softmax函数归一化,使最后的向量和为1。
所述dk表示Query向量的维度,所述dk为64维。
所述自注意力层的整体公式为
式(2)中:Q表示Query向量;
K表示Key向量;
V表示Value向量。
在编码层,采用前向、后向两个长短记忆网络对输入序列进行处理,得到编码向量。
在解码层,使用编码向量进行类型判断,根据类型判断结果对实体和属性进行识别。
由于采用上述技术方案,本发明与现有技术相比,具有以下有益效果:
(1)本发明在匹配时,充分考虑了实体之间的最长公共子序列以及属性之间的最长公共子序列,利用ROUGE-L的字符串匹配算法,简单高效地获得了标准实体和标准属性;在不增加负担的情况下,保持了识别器的识别精准度,进一步提高了本发明的识别精准度。
(2)本发明针对事实型问题、列表型问题、验证型问题和复杂交互型问题,在匹配和查询过程中进行分类处理,使得本发明的问句解析方法专用性强,问句分析错误率低。
(3)本发明的深度学习模型包括语言处理层、自注意力层、编码层和解码层,其中的语言处理层使用的是预训练语言模型,利用大数据对语言现象进行捕捉,提高了模型的语义理解能力,其中的编码层使用的是双向长短记忆网络,解决了输入序列较长的时候,循环神经网络存在的远距离信息丢失问题,能使梯度在更长距离进行传递,保证语义信息的持久性,并且兼顾了上下文信息,能更好的提取深层次的语义信息,因此能够提高识别的准确度。
(4)本发明在现有的BERT-BiLSTM-CRF模型基础上添加了自注意力机制,使识别器的准确率达到优秀的水准,并且通过对实体识别、属性识别与问题分类三个任务进行联合学习,提高了本发明的识别精准度。
(5)医疗知识图谱问答系统通过问答的形式为患者带来健康医疗服务,能有效缓解医疗资源的失衡,降低医疗成本,进一步推进全民医疗的普及。以智能医疗、健康医疗的方式推进医学人工智能的发展,在实际应用中具有非常可观的前景。
因此,本发明具有识别精准度高和问句分析错误率低的特点,能有效缓解医疗资源的失衡,降低医疗成本。
具体实施方式
以下结合具体实施方式对本发明进行进一步说明。
实施例1
一种面向医疗知识图谱问答的问句解析方法。本实施例所述问句解析方法的步骤是:
步骤1、采用分类器对医疗问题进行分类:事实型问题;列表型问题;验证型问题;复杂交互型问题。
步骤2、采用识别器对医疗问题进行实体识别和属性识别:
验证型问题有一个实体和一个属性;
列表型问题有一个属性;
事实型问题有一个实体和一个属性;
复杂交互型问题有一个属性。
所述实体是指具有对客观个体的抽象,例如:心肌病,后天性三尖瓣关闭不全,获得性高脂蛋白血症。
所述属性为实体与实体之间关系的抽象和为实体的固有属性,例如:病因,治疗方法,别名,治疗周期。
步骤1所述分类器和步骤2所述识别器均为深度学习模型。
所述深度学习模型包括语言处理层、自注意力层、编码层和解码层,将医疗问题转换为向量,再将所述向量作为训练集对深度学习模型进行训练,训练包括:
在语言处理层,对训练集进行掩码训练和次句预测训练,将语言处理层的输出作为自注意力层的输入向量。
在自注意力层,输入向量乘三个随机初始化向量,创建一个Query向量、一个Key向量和一个Value向量,用点积计算Query向量和Key向量相似度,同时利用初始化矩阵的维度对输出进行调节,然后用相似度除以最后通过softmax函数归一化,使最后的向量和为1。
所述dk表示Query向量的维度;所述dk为64维。
所述自注意力层的整体公式为
式(1)中:Q表示Query向量;
K表示Key向量;
V表示Value向量。
在编码层,采用前向、后向两个长短记忆网络对输入序列进行处理,得到编码向量。
在解码层,使用编码向量进行类型判断,根据类型判断结果对实体和属性进行识别。
本实施例中,深度学习模型为BERT-BiLSTM-Att-CRF深度学习模型,包括:BERT层(Bidirectional Encoder Representation from Transformers,语言处理层)、自注意力层、编码层和解码层。所述BERT层采用Transformer(变压器模型)作为算法的主体结构,它能更彻底的捕捉语句中的双向关系,并将掩码语言模型(Mask Language Model,MLM)、次句预测(Next Sentence Prediction,NSP)作为多任务训练目标,并通过海量的语料进行自监督学习得到预训练模型,然后将所述预训练模型运用于其他任务。BERT层提供了BASE和LARGE两个模型,对应的超参数分别如表1所示:
表1 BERT层参数
BERTBASE:L=12,H=768,A=12,参数总量110M
BERTLARGE:L=24,H=1024,A=16,参数总量340M
表1中:L表示网络的层数(即Transformer块的数量);A表示多头注意力(Multi-Head Attention,MHA)中自注意力的数量。本实施例选用的是BERTBASE,采用的开源代码仓库中的Transformers项目来实现,所述开源代码仓库提供了上千种预训练模型。BERT层中的Transformer块的结构为多头注意力,然后利用残差、归一化、前向网络和再次归一化得到一个块的输出。BERT层的输入包含了3种词嵌入特征(向量),长度为512维。一种是字嵌入:字嵌入是指将句子的所有字编码成特征向量;另一种是位置嵌入:位置嵌入是指将单词的位置信息编码成特征向量;再一种是分割嵌入:用于区分两个句子,对于句子对,第一个句子的特征值是0,第二个句子的特征值是1,若只有一个句子,则此部分全为0。在BERT层内部,各个嵌入都转换成768维的向量,然后各个位置的向量进行相加,得到了输入的向量表示。
BERT层已经有了一个词表文件,文件名为vocab.txt,有21,128行,包含了几乎所有常见的字和字符,通过查询词表文件,将字转换成数字。
自注意力层包含了一个多头注意力机制,多头自注意力机制是由放缩点积(Scaled Dot-ProductAttention)组成的:通过输入向量随机初始化矩阵,使用点积进行相似度计算以表示注意力值,同时利用初始化矩阵的维度对输出进行调节。
多头注意力机制是由多个自注意力构成,给定输入序列x=(x1,x2,...,xn),通过不同的线性计算,得到Q,K,V,Q∈Rn*d,K∈Rn*d,V∈Rn*d;然后进行放缩点积计算,一共计算h次,即为h头,Q,K,V进行线性变换的参数W在每次计算时都是随机生成的。最后将每次放缩点积的向量拼接起来,再进行线性变换,即为多头注意力机制的结果。
编码层使用的是双向长短记忆网络(Long Short-Term Memory,LSTM)结构。双向长短记忆网络结构的包含多个门单元,有:输入门、输出门和遗忘门。其特有的“门”结构能使长短记忆网络单元具有遗忘和增加信息的能力。
解码层有两种类型,一种是全连接网络(Full ConnectionNetwork,FCN),另外一种是条件随机场(Conditional Random Field,CRF)。条件随机场天然地适合序列标注任务,因为条件随机场的整体结构是一步一步推进的。在序列标记的过程中,实体通常包括多个字,每一个字都需要打上对应的标签。模型采用BIO标记策略,B是begin的缩写,表示实体开始;I是inside的缩写,表示实体中间。模型将实体的第一个字标注为B-type,将实体的其他字标注为I-type,将非实体字标记标注为O。利用BIO标记策略,模型可以同时识别实体的边界和类型。
1、采用深度学习模型的具体分类过程是:
首先在问句开头添加“[CLS]”标签,在问句结尾添加“[SEP]”标签,并将文本长度控制为20个字,超过20个字将多余的字删除,不够20个字则用“[PAD]”填补,然后利用词表文件将问句转换成整数数组。最后直接输入到深度学习模型中,得到BERT层的输出向量为[20*768]。
利用自注意力层对BERT层的结果进行调节,再输入到编码层。
BERT层的输出向量为[20*768],则双向长短记忆网络的输出向量为[20*512*2]。
编码层的结果输入到解码层,解码层为全连接网络。解码层只取用“[CLS]”这个位置的输出向量[1024],接上全连接网络[1024*4],得到最终的输出结果。若输出结果为0,则分类结果为验证型问题;若输出结果为1,则分类结果为列表型问题;若输出结果为2,则分类结果为事实型问题;若输出结果为3,则分类结果为复杂交互型问题。
1.1、验证型问题是对问句中的信息进行判断,回答它是否是真;例如:“老年人恶性心包积液的治疗周期是30天吗?”,再利用词表文件转换成整数数组:[101,5439,2399,782,2626,2595,2552,1259,4916,3890,4638,3780,4545,1453,3309,3221,8114,1921,1408,8043,102]。根据深度学习模型的具体分类过程,得到最终的输出结果为0,该例句结果为验证型问题。
1.2、列表型问题是对一系列事实的问答,答案包含了若干个符合描述的答案;例如:“生产企业为贵州百灵的药品有哪些?”,再利用词表文件转换成整数数组:[101,4495,772,821,689,711,6586,2336,4636,4130,4638,5790,1501,3300,1525,763,8043,102,0,0]。根据深度学习模型的具体分类过程,得到最终的输出结果为1,该例句结果为列表型问题。
1.3、事实型问题是对事实的问答,答案通常只包含一个字段;例如:“心肌病的病因是什么?”,再利用词表文件转换成整数数组:[101,2552,5491,4567,4638,4567,1728,3221,784,720,8043,102,0,0,0,0,0,0,0,0]。根据深度学习模型的具体分类过程,得到最终的输出结果为2,该例句结果为事实型问题。
1.4、复杂交互型问题是基于上下文背景的问答,或者问题包含前一个问题的信息,存在指代词和省略,通常处理较为复杂;例如:“它的症状有哪些?”,其中前一句的标准实体为“甲亢性心脏病”,再利用词表文件转换成整数数组:[101,2124,4638,4568,4307,3300,1525,763,8043,102,0,0,0,0,0,0,0,0,0,0]。根据深度学习模型的具体分类过程,得到最终的输出结果为3,该例句结果为复杂交互型问题。
2、采用深度学习模型的具体识别过程是:
首先在问句开头添加“[CLS]”标签,在问句结尾添加“[SEP]”标签,并将文本长度控制为20个字,超过20个字将多余的字删除,不够20个字则用“[PAD]”填补,然后利用词表文件将问句转换成整数数组。最后直接输入到深度学习模型中,得到BERT层的输出向量为[20*768]。
利用自注意力层对BERT层的结果进行调节,再输入到编码层。BERT层的输出向量为[20*768],则双向长短记忆网络的输出向量为[20*512*2],取所述双向长短记忆网络的输出向量的后19个输出向量,即[19*512*2],输入到条件随机场,即可得到识别结果。
2.1、验证型问题,例如:“老年人恶性心包积液的治疗周期是30天吗?”,条件随机场层的输出结果为“老/B-dis年/I-dis人/I-dis恶/I-dis性/I-dis心/I-dis包/I-dis积/I-dis液/I-dis的/O治/B-attr疗/I-attr周/I-attr期/I-attr是/O 3/O 0/O天/O吗/O?/O”,问句有实体“老年人恶性心包积液”,属性“治疗周期”。实体共有病症、食物、检查、药品与症状五个类别,而属性则不区分类别,其缩写为B/I-attr,实体类型及缩写如表2所示。
表2实体类型及缩写
实体类型 缩写 实体类型 缩写
病症 B/I-dis 食物 B/I-food
检查 B/I-ins 药品 B/I-med
症状 B/I-sym
2.2、列表型问题,例如:“生产企业为贵州百灵的药品有哪些?”,条件随机场层的输出结果为“生/B-attr产/I-attr企/I-attr业/I-attr为/O贵/O州/O百/O灵/O的/O药/O品/O有/O哪/O些/O?/O”,问句有属性“生产企业”。
2.3、事实型问题,例如,“心肌病的病因是什么?”,条件随机场层的输出结果为“心/B-dis肌/I-dis病/I-dis的/O病/B-attr因/I-attr是/O什/O么/O?/O”,问句有实体“心肌病”,有属性“病因”。
2.4、复杂交互型问题,例如:“它的症状有哪些?”,条件随机场层的输出结果为“它/O的/O症/B-sym状/I-sym有/O哪/O些/O?”,问句有属性“症状”,其中前一句的标准实体为“甲亢性心脏病”。
步骤3、将识别的实体与知识图谱中的所有实体逐个进行匹配,与知识图谱中所有实体的匹配度最高的实体为标准实体;将识别的属性与知识图谱中所有属性逐个进行匹配,将知识图谱中匹配度最高属性作为标准属性。
所述匹配的具体方式是:
将识别的实体与知识图谱中的各实体的最长公共子序列的长度与标准实体的长度之比作为召回率R,将识别的实体与知识图谱中的各实体的最长公共子序列的长度与识别的实体的长度之比作为准确率P;知识图谱中的各实体的匹配度Slcs
式(2)中:β表示常数,β为9999;
R表示召回率,%;
P表示准确率,%。
步骤3.1、所述医疗问题的类别为验证型问题
将验证型问题的实体与知识图谱中的所有实体逐个进行匹配,则知识图谱中匹配度最高的实体为验证型问题标准实体。
将验证型问题的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为验证型问题标准属性。
对验证型问题的剩余文本进行属性值抽取,采用正则表达式的方式对抽取的属性值进行标准化,得到标准属性值。
例如:“老年人恶性心包积液的治疗周期是30天吗?”,问句识别出实体“老年人恶性心包积液”,属性“治疗周期”,对应的实体与属性的前4名的匹配度如表3所示。
表3对应的实体与属性的前4名匹配度
对应的实体 匹配度 对应的属性 匹配度
老年人恶性心包积液 0.99 治疗周期 0.99
心包积液 0.56 治疗费用 0.33
老年人风湿性心脏病 0.37 治疗方法 0.33
老年人甲减性心脏病 0.37 疾病 0.0
因此标准实体是“老年人恶性心包积液”,标准属性为“治疗周期”。
验证型问题的剩余文本是“的是30天吗?”,利用正则表达式r“(\d+[天日])”来匹配剩余文本中的属性值,获得标准属性值为“30天”。
步骤3.2、所述医疗问题的类别为列表型问题
将列表型问题中的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为列表型问题标准属性。
对列表型问题的剩余文本进行属性值抽取,采用正则表达式的方式对抽取的属性值进行标准化,得到列表型问题标准属性值。
例如:“生产企业为贵州百灵的药品有哪些?”,问句识别出属性“贵州百灵”,对应的属性的前4名的匹配度如表4所示。
表4对应的属性的前4名匹配度
对应的属性 匹配度
生产企业 0.99
包装规格 0.0
分析结果 0.0
批准文号 0.0
因此标准属性是“生产企业”。
验证型问题的剩余文本是“为贵州百灵的药品有哪些?”,利用正则表达式r“([贵][州][百][灵])”来匹配剩余文本中的属性值,获得标准属性值为“贵州百灵”,所述正则表达式中的中文能用知识图谱中所有属性值来替换。
步骤3.3、所述医疗问题的类别为事实型问题
将事实型问题中的实体与知识图谱中的所有实体逐个进行匹配,则知识图谱中匹配度最高的实体为事实型问题标准实体。
将事实型问题中的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为事实型问题标准属性。
例如:“心肌病的病因是什么?”,问句识别出实体“心肌病”和属性“病因”,对应的实体与属性的前4名的匹配度如表5所示。
表5对应的实体与属性的前4名匹配度
对应的实体 匹配度 对应的属性 匹配度
心肌病 0.99 病因 0.99
老年心肌病 0.67 治疗费用 0.0
肥厚型心肌病 0.57 是否需要空腹 0.0
限制型心肌病 0.57 最佳就诊时间 0.0
因此标准实体是“心肌病”,标准属性是“病因”。
步骤3.4、所述医疗问题的类别为复杂交互型问题
若复杂交互型问题中存在指示代词,则转换为上一个问句中的标准实体,反之,则直接采用上一个问句中的标准实体。
所述指示代词为“他”、“谁”、“什么”、“这”、“这个”、“哪”、“她”、“它”中的一个。
所述上一个问句为本次问句前保留的3个问句,其中会包含标准实体。
例如:“它的症状有哪些?”,问句识别出属性“症状”,其中前一句的标准实体为“甲亢性心脏病”,对应的属性的前4名的匹配度如表6所示。
表6对应的属性的前4名匹配度
属性 匹配度
症状 0.99
禁忌 0.0
包含项目 0.0
特殊人群用药 0.0
因此标准属性是“症状”。
在步骤1.1到1.4中:所述剩余文本为医疗问题中除识别的属性和识别的实体以外的文本。
所述正则表达式是对字符串操作的一种逻辑公式,所述逻辑公式由事先定义的字符组成,所述“事先定义的字符”包含26个英文字母的大写、26个英文字母的小写、所有中文字符、“\”、“{”、“}”、“[”、“]”、“?”、“*”、“+”、“<”、“>”、“|”、“^”、“=”、“:”、“.”和“$”,例如“\d+”的意思是匹配连续数字。
步骤4、将标准实体、标准属性和标准属性值转化为查询语句,知识图谱中查询模块收到查询语句后,即得到医疗问题的答案。
所述查询语句为Cypher,Cypher是一种用于管理图数据库管理系统的编程语言。
所述转换是基于Cypher模板进行的,将Cypher模板中的X替换成标准实体、Y替换成标准属性和Z替换成标准属性值,例如:MATCH(p:dis{name:“X”})-(:attr{name:“Y”})-(t:data)returnb;其中X和Y能根据需求进行替换。
所述医疗问题的类别为验证型问题时,Cypher模板为MATCH(n:dis{name:“X”})-(:attribute{name:“Y”})-(b:“Z”)return count(n);。
例如:“老年人恶性心包积液的治疗周期是30天吗?”,有标准实体“老年人恶性心包积液”、标准属性“治疗周期”和标准属性值“30天”,然后将模板中的X替换成“老年人恶性心包积液”、Y替换成“治疗周期”和Z替换成“30天”,得到查询语句为MATCH(n:dis{name:“老年人恶性心包积液”})-(:attribute{name:“治疗周期”})-(b:“30天”)return count(n);,查询模块收到查询语句后,返回的答案为1,即该问句为真,表明老年人恶性心包积液的治疗周期确实是30天。
所述医疗问题的类别为列表型问题时,Cypher模板为MATCH(n)-(:attribute{name:“Y”})-(b:“Z”)return n;。
例如:“生产企业为贵州百灵的药品有哪些?”,有标准属性“生产企业”和标准属性值“贵州百灵”,然后将模板中的Y替换成“生产企业”和Z替换成“贵州百灵”,得到查询语句为MATCH(n)-(:attribute{name:“生产企业”})-(b:“贵州百灵”)return n;,查询模块收到查询语句后,返回的答案为[阿莫西林舒巴坦匹酯咀嚼片-生产企业-贵州百灵,银丹心脑通软胶囊-生产企业-贵州百灵,小儿柴桂退热颗粒-生产企业-贵州百灵],因此得到答案有“阿莫西林舒巴坦匹酯咀嚼片”、“银丹心脑通软胶囊”和“小儿柴桂退热颗粒”。
所述医疗问题的类别为事实型问题或复杂交互型问题时,Cypher模板为MATCH(n:dis{name:“X”})-(:attr{name:“Y”})-(b:data)returnb;。
事实型问题,例如:“心肌病的病因是什么?”,有标准实体“心肌病”和标准属性“病因”,然后将模板中的X替换成“心肌病”和Y替换成“病因”,得到查询语句为MATCH(n:dis{name:“心肌病”})-(:attr{name:“病因”})-(b:data)returnb;,查询模块收到查询语句后,返回的答案为心肌炎感染、迷走神经兴奋、药物不良反应、各种器质性心脏病、高钾血症和尿毒症等。
复杂交互型问题,例如:“它的症状有哪些?”,有标准属性“症状”;其中前一句的标准实体为“甲亢性心脏病”,然后将模板中的X替换成“甲亢性心脏病”和将模板中的Y替换成“症状”,得到查询语句为MATCH(n:dis{name:“甲亢性心脏病”})-(:attr{name:“症状”})-(b:data)returnb;,查询模块收到查询语句后,返回的答案为“甲状腺病态地分泌过量的甲状腺激素”。
所述查询模块是Neo4j中的一个功能模块。
本具体实施方式与现有技术相比,具有以下有益效果:
(1)本具体实施方式在匹配时,充分考虑了实体之间的最长公共子序列以及属性之间的最长公共子序列,利用ROUGE-L的字符串匹配算法,简单高效地获得了标准实体和标准属性;在不增加负担的情况下,保持了识别器的识别精准度,进一步提高了本具体实施方式的识别精准度。
(2)本具体实施方式针对事实型问题、列表型问题、验证型问题和复杂交互型问题,在匹配和查询过程中进行分类处理,使得本具体实施方式的问句解析方法专用性强,问句分析错误率低。
(3)本具体实施方式的深度学习模型包括语言处理层、自注意力层、编码层和解码层,其中的语言处理层使用的是预训练语言模型,利用大数据对语言现象进行捕捉,提高了模型的语义理解能力,其中的编码层使用的是双向长短记忆网络,解决了输入序列较长的时候,循环神经网络存在的远距离信息丢失问题,能使梯度在更长距离进行传递,保证语义信息的持久性,并且兼顾了上下文信息,能更好的提取深层次的语义信息,因此能够提高识别的准确度。
(4)本具体实施方式在现有的BERT-BiLSTM-CRF模型基础上添加了自注意力机制,使识别器的准确率达到优秀的水准,并且通过对实体识别、属性识别与问题分类三个任务进行联合学习,提高了本具体实施方式的识别精准度。
(5)医疗知识图谱问答系统通过问答的形式为患者带来健康医疗服务,能有效缓解医疗资源的失衡,降低医疗成本,进一步推进全民医疗的普及。以智能医疗、健康医疗的方式推进医学人工智能的发展,在实际应用中具有非常可观的前景。
因此,本具体实施方式具有识别精准度高和问句分析错误率低的特点。

Claims (1)

1.一种面向医疗知识图谱问答的问句解析方法,其特征在于所述问句解析方法包括如下步骤:
步骤1、采用分类器对医疗问题进行分类:事实型问题,列表型问题,验证型问题,复杂交互型问题;
步骤2、采用识别器对医疗问题进行实体识别和属性识别:
验证型问题有一个实体和一个属性,
列表型问题有一个属性,
事实型问题有一个实体和一个属性,
复杂交互型问题有一个属性;
所述实体是指具有对客观个体的抽象;
所述属性为实体与实体之间关系的抽象和为实体的固有属性;
步骤3、将识别的实体与知识图谱中的所有实体逐个进行匹配,与所述知识图谱中匹配度最高的实体为标准实体;将识别的属性与知识图谱中所有属性逐个进行匹配,与知识图谱中匹配度最高的属性为标准属性;
所述匹配的具体方式是:
将识别的实体与知识图谱中的各实体的最长公共子序列的长度与标准实体的长度之比作为召回率R,将识别的实体与知识图谱中的各实体的最长公共子序列的长度与识别的实体的长度之比作为准确率P;知识图谱中的各实体的匹配度Slcs
式(1)中:β表示常数,β为9999,
R表示召回率,%,
P表示准确率,%;
步骤3.1、所述医疗问题的类别为验证型问题
将验证型问题的实体与知识图谱中的所有实体逐个进行匹配,则知识图谱中匹配度最高的实体为验证型问题标准实体;
将验证型问题的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为验证型问题标准属性;
对验证型问题的剩余文本进行属性值抽取,采用正则表达式的方式对抽取的属性值进行标准化,得到标准属性值;
步骤3.2、所述医疗问题的类别为列表型问题
将列表型问题中的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为列表型问题标准属性;
对列表型问题的剩余文本进行属性值抽取,采用正则表达式的方式对抽取的属性值进行标准化,得到列表型问题标准属性值;
步骤3.3、所述医疗问题的类别为事实型问题
将事实型问题中的实体与知识图谱中的所有实体逐个进行匹配,则知识图谱中匹配度最高的实体为事实型问题标准实体;
将事实型问题中的属性与知识图谱中的所有属性逐个进行匹配,则知识图谱中匹配度最高的属性为事实型问题标准属性;
步骤3.4、所述医疗问题的类别为复杂交互型问题
若复杂交互型问题中存在指示代词,则转换为上一个问句中的标准实体,反之,则直接采用上一个问句中的标准实体;
所述指示代词为“他”、“谁”、“什么”、“这”、“这个”、“哪”、“她”、“它”中的一个;
所述上一个问句为本次问句前保留的3个问句,其中包含标准实体;
在步骤3.1~步骤3.4中:所述剩余文本为医疗问题中除识别的属性和识别的实体以外的文本;
所述正则表达式是对字符串操作的一种逻辑公式;所述逻辑公式由事先定义的字符组成,所述“事先定义的字符”为大写的26个英文字母、小写的26个英文字母、所有中文字符、“\”、“{”、“}”、“[”、“]”、“?”、“*”、“+”、“<”、“>”、“|”、“^”、“=”、“:”、“.”和“$”中的一个以上;
步骤4、将标准实体、标准属性和标准属性值转化为查询语句,知识图谱中查询模块收到查询语句后,即得到医疗问题的答案;
所述查询语句为Cypher,Cypher是一种用于管理图数据库管理系统的编程语言;
所述转换是基于Cypher模板进行的,将Cypher模板中的X替换成标准实体、Y替换成标准属性和Z替换成标准属性值;
所述医疗问题的类别为验证型问题时,Cypher模板为MATCH(n:dis{name:“X”})-(:attribute{name:“Y”})-(b:“Z”)return count(n);
所述医疗问题的类别为列表型问题时,Cypher模板为MATCH(n)-(:attribute{name:“Y”})-(b:“Z”)return n;
所述医疗问题的类别为事实型问题或复杂交互型问题时,Cypher模板为MATCH(n:dis{name:“X”})-(:attr{name:“Y”})-(b:data)returnb;
所述查询模块是Neo4j中的一个功能模块;
步骤1所述分类器和步骤2所述识别器均为深度学习模型;
所述深度学习模型包括语言处理层、自注意力层、编码层和解码层,将医疗问题转换为向量,再将所述向量作为训练集对深度学习模型进行训练,训练包括:
在语言处理层,对训练集进行掩码训练和次句预测训练,将语言处理层的输出作为自注意力层的输入向量;
在自注意力层,输入向量乘三个随机初始化向量,创建一个Query向量、一个Key向量和一个Value向量,用点积计算Query向量和Key向量的相似度,同时利用初始化矩阵的维度对输出进行调节,然后用相似度除以最后通过softmax函数归一化,使最后的向量和为1;
所述dk表示Query向量的维度,所述dk为64维;
所述自注意力层的整体公式为
式(2)中:Q表示Query向量,
K表示Key向量,
V表示Value向量;
在编码层,采用前向、后向两个长短记忆网络对输入序列进行处理,得到编码向量;
在解码层,使用编码向量进行类型判断,根据类型判断结果对实体和属性进行识别。
CN202111170907.9A 2021-10-08 2021-10-08 一种面向医疗知识图谱问答的问句解析方法 Active CN113918694B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111170907.9A CN113918694B (zh) 2021-10-08 2021-10-08 一种面向医疗知识图谱问答的问句解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111170907.9A CN113918694B (zh) 2021-10-08 2021-10-08 一种面向医疗知识图谱问答的问句解析方法

Publications (2)

Publication Number Publication Date
CN113918694A CN113918694A (zh) 2022-01-11
CN113918694B true CN113918694B (zh) 2024-04-16

Family

ID=79238319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111170907.9A Active CN113918694B (zh) 2021-10-08 2021-10-08 一种面向医疗知识图谱问答的问句解析方法

Country Status (1)

Country Link
CN (1) CN113918694B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114626530A (zh) * 2022-03-14 2022-06-14 电子科技大学 一种基于双边路径质量评估的强化学习知识图谱推理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492077A (zh) * 2018-09-29 2019-03-19 北明智通(北京)科技有限公司 基于知识图谱的石化领域问答方法及系统
KR102194837B1 (ko) * 2020-06-30 2020-12-23 건국대학교 산학협력단 지식기반 질문 응답 방법 및 장치
CN112989005A (zh) * 2021-04-16 2021-06-18 重庆中国三峡博物馆 一种基于分阶段查询的知识图谱常识问答方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3557439A1 (en) * 2018-04-16 2019-10-23 Tata Consultancy Services Limited Deep learning techniques based multi-purpose conversational agents for processing natural language queries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492077A (zh) * 2018-09-29 2019-03-19 北明智通(北京)科技有限公司 基于知识图谱的石化领域问答方法及系统
KR102194837B1 (ko) * 2020-06-30 2020-12-23 건국대학교 산학협력단 지식기반 질문 응답 방법 및 장치
CN112989005A (zh) * 2021-04-16 2021-06-18 重庆中国三峡博物馆 一种基于分阶段查询的知识图谱常识问答方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于知识图谱的抑郁症自动问答系统研究;田迎;单娅辉;王时绘;;湖北大学学报(自然科学版);20200905(05);全文 *

Also Published As

Publication number Publication date
CN113918694A (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
CN110032648B (zh) 一种基于医学领域实体的病历结构化解析方法
CN109669994B (zh) 一种健康知识图谱的构建方法及系统
WO2023065858A1 (zh) 基于异构图神经网络的医疗术语规范化系统及方法
CN111078875B (zh) 一种基于机器学习的从半结构化文档中提取问答对的方法
CN109508459B (zh) 一种从新闻中提取主题和关键信息的方法
CN112131393A (zh) 一种基于bert和相似度算法的医疗知识图谱问答系统构建方法
Cai et al. A stacked BiLSTM neural network based on coattention mechanism for question answering
CN112487202A (zh) 融合知识图谱与bert的中文医学命名实体识别方法、装置
CN115292457B (zh) 知识问答方法、装置、计算机可读介质及电子设备
CN115019906B (zh) 多任务序列标注的药物实体和相互作用联合抽取方法
CN116910172B (zh) 基于人工智能的随访量表生成方法及系统
CN112349370B (zh) 一种基于对抗网络+众包的电子病历语料构建方法
CN115293161A (zh) 基于自然语言处理和药品知识图谱的合理用药系统及方法
CN113918694B (zh) 一种面向医疗知识图谱问答的问句解析方法
Lu et al. Chinese clinical named entity recognition with word-level information incorporating dictionaries
Xu Bootstrapping relation extraction from semantic seeds
CN117435714B (zh) 一种基于知识图谱的数据库和中间件问题智能诊断系统
Ramezani et al. Knowledge Graph‐Enabled Text‐Based Automatic Personality Prediction
CN113657086B (zh) 词语处理方法、装置、设备及存储介质
CN117423470B (zh) 一种慢性病临床决策支持系统及构建方法
CN112035627B (zh) 自动问答方法、装置、设备及存储介质
CN117591655A (zh) 基于中药知识图谱的智能问答系统
CN116741333B (zh) 一种医药营销管理系统
CN116108000B (zh) 医疗数据管理查询方法
Muangnak et al. The neural network conversation model enables the commonly asked student query agents

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant