[KBQA] Realization of Question Answering System for Medical Knowledge Graph

  1. Construction of Knowledge Graph

1.1 Collection of data

  • Preliminary Exploration of Medical Knowledge Graph : This article outlines the definition, characteristics and applications of medical knowledge graph, as well as the data sources and steps for constructing medical knowledge graph. The article points out that the current data sources for medical knowledge map construction can be divided into three parts: authoritative medical literature, clinical data and Internet information.

  • Key technologies and research progress of medical knowledge map construction: This article comprehensively sorts out key technologies and applications of medical knowledge map construction, including ontology construction, entity extraction, relationship extraction, attribute extraction, entity linking, knowledge fusion, etc. The article also introduces some public datasets and open source tools, as well as some typical application cases.

  • Medical knowledge map construction technology and research progress : This article also introduces the method of automatically extracting entities, relationships and attributes from unstructured data, and how to use existing ontology or standardized resources for entity linking and disambiguation. The article also analyzes the current problems and challenges, as well as possible future development directions.

1.2 Knowledge Extraction

1.2.1 Schema definition

The medical knowledge graph is a semantic network that reveals the relationship between medical entities and can be used to support intelligent applications in the medical field, such as question answering, diagnosis, recommendation, etc.

Schema definition in the construction of medical knowledge graph refers to the abstraction and standardization of concept types, attributes and relationships in the medical field to form a domain ontology, which is used to guide the data acquisition, storage and query of knowledge graphs.

Schema definition is an important step in the construction of knowledge graphs, and factors such as business scenarios, data resources, terminology standardization, and concept versatility need to be considered comprehensively.

The medical knowledge graph question answering system Schema definition refers to the design of a data structure for representing and querying questions and answers in the medical field on the basis of constructing a medical knowledge graph.

Generally speaking, a medical knowledge graph question answering system Schema includes the following parts:

  • Entity: Refers to specific concepts or objects in the medical field, such as drugs, diseases, symptoms, etc.

  • Attributes: Refers to characteristics or descriptions of entities, such as ingredients, dosage forms, indications, etc. of a drug.

  • Relationship: Refers to the connection or influence between entities, such as the treatment relationship between diseases and drugs, and the relationship between food avoidance and so on.

  • Question: Refers to users' information needs in the medical field, such as "What medicine should I take for high blood pressure?", "What are the common symptoms of a cold?", etc.

  • 答案:指代针对问题的回复或解释,如“高血压可以服用降压药物,如氨氯地平片、硝苯地平片等。”、“感冒常见的症状有发热、咳嗽、流鼻涕等。”等。

一个医疗知识图谱问答系统Schema定义的例子如下:

实体

属性

关系

问题

答案

药品

成分、剂型、适应症、禁忌证、不良反应等

治愈(与)(disease)、相互作用(与)(drug)、替代(与)(drug)等

氨氯地平片有什么作用?

氨氯地平片是一种降压药物,主要成分是氨氯地平。它可以扩张血管,降低心脏负担,从而降低血压。2

疾病

名称、别名、发生部位、临床表现、诊断方法、治愈率等

导致(由)(symptom)、引起(由)(cause)、治愈(由)(drug)、预防(由)(food)、忌吃(由)(food) 等

高血压怎么预防?

高血压是一种常见的慢性非传染性疾

1.2.2 知识抽取数据标准工具

医疗知识图谱问答系统知识抽取标注工具是指用于从医疗文本中自动或半自动地识别出实体、属性和关系,并将其标注为知识图谱的构建元素的软件工具。

目前,有一些开源的中文命名实体识别和关系抽取工具,可以用于辅助医疗知识图谱问答系统的知识抽取标注过程,例如:

1.2.3 医疗实体关系抽取及SOTA模型

医疗知识图谱问答系统实体关系抽取是指从医疗文本中识别出实体对,并标注它们之间的语义关系,从而构建知识图谱的三元组。

实体关系抽取是知识图谱构建的核心步骤之一,可以提升数据的整合能力,便于下游的知识推理任务。

目前,有一些开源的中文关系抽取工具,可以用于辅助医疗知识图谱问答系统的实体关系抽取过程,例如:

  • OpenRE:清华大学自然语言处理与社会人文计算实验室开发的开放式关系抽取框架,可以从任意领域和语言的文本中抽取出未预定义的关系类型。

STOA模型是一种基于预训练语言模型和自注意力机制的实体关系抽取模型,可以同时抽取多个实体对和多种关系。

STOA模型的主要特点有:

  • 使用BERT作为编码器,利用其强大的表征能力来捕捉文本中的语义信息。

  • 使用自注意力机制来计算每个实体对之间的相关性得分,从而选择最相关的实体对进行关系分类。

  • 使用多任务学习框架,将实体对选择和关系分类作为两个子任务,并共享编码器参数,提高模型效率和泛化能力。

1.2.4 医疗实体名称归一化与实体对齐

医疗实体名称归一是指将医学领域中的不同表达方式或同义词归为一个标准名称,例如“高血压”和“高血压症”都归为“高血压”。这样可以减少数据的冗余和歧义,提高知识图谱的质量。

医疗实体对齐是指判断多源异构数据中的实体是否指向真实世界同一对象的过程,例如判断两个知识图谱中的“阿司匹林”是否表示同一种药物。如果是,则在这些实体之间构建对齐关系,同时对实体包含的信息进行融合和聚集。这样可以增加知识图谱的覆盖度和完整性。

医疗实体名称归一和实体对齐都是知识图谱构建中的重要技术,需要利用多种信息,如关系三元组、属性三元组、摘要等,以及各种算法,如基于规则、基于特征、基于嵌入等。

医疗知识图谱问答系统实体名称归一化是指将不同来源或表达方式的实体名称统一为标准的实体名称,以消除歧义和冗余。

医疗知识图谱问答系统实体对齐是指在多个异源异构的知识图谱中发现完全等价的实体,即发现指代相同真实世界物体的两个实体。

这两个任务都是知识图谱构建和融合的重要步骤,可以提高知识图谱的质量和覆盖度,便于下游的知识检索和问答任务。

目前,有一些开源的中文实体名称归一化和实体对齐工具,可以用于辅助医疗知识图谱问答系统的这些过程,例如:

  • MedSyn:基于深度学习和规则匹配的中文医学术语归一化工具。

  • KGEA:基于知识表示学习和神经网络模型的跨语言跨领域知识图谱对齐框架。

医疗知识图谱问答系统实体关系抽取是指从医疗文本中识别出实体对,并标注它们之间的语义关系,从而构建知识图谱中的三元组。

1.3 知识存储

医疗知识图谱问答系统知识存储是指将医疗领域的实体、关系和属性等知识以图结构的形式存储在数据库中,以便于进行知识检索和问答。

一般来说,医疗知识图谱问答系统需要设计一个适合产品化的Schema,即定义好实体类型、关系类型和属性类型,并根据不同的医学信息标准来组织知识。

目前,有一些开源的数据库可以用于存储和管理医疗知识图谱,例如:

  • OrientDB:一个多模型数据库,支持图、文档、对象等数据模型,并提供SQL-like查询语言和RESTful API。

  • ArangoDB:一个分布式原生多模型数据库,支持图、文档、键值等数据模型,并提供AQL查询语言和GraphQL API。

2. 语义解析阶段(NLU)

2.1 意图识别

中文医疗意图识别是一种自然语言处理任务,目的是从医患对话中识别出患者或医生的意图,例如询问症状、建议治疗方案、预约检查等。

根据我搜索到的信息,目前中文医疗意图识别的sota模型是基于BERT的模型,例如Lex-BERT和CCL2021智能对话诊疗评测冠军方案。这些模型利用了预训练语言模型和实体类型信息来提高意图识别的准确性和鲁棒性。

医疗知识图谱问答系统意图识别是指根据用户的自然语言问题,识别出用户的查询意图,例如定义、病因、治疗方法等,并根据不同的意图构造相应的查询语句,在医疗知识图谱中搜索答案

意图识别是知识图谱问答系统的一个重要组成部分,它可以提高问答系统的准确性和效率

2.2 槽位填充

  • 基于医疗知识图谱的问答系统:这篇文章介绍了如何构建一个基于医疗知识图谱的问答系统,包括知识图谱的构建、意图识别、实体链接、查询生成和结果返回等步骤。

2.2.1 语义槽设计

医疗知识图谱问答系统语义槽设计是指根据用户的问题,抽取出相关的实体和属性,作为查询知识图谱的条件。

语义槽设计是知识图谱问答系统的一个重要组成部分,它可以提高问答系统的灵活性和鲁棒性。

2.2.2实体链指

实体识别:首先要识别出文本中表示医疗实体的词语,如疾病、药物、器官等。这一步可以采用基于规则或基于机器学习的方法,如字典匹配、条件随机场、双向循环神经网络等。

候选实体生成:然后要从知识库中找出与文本中识别出的实体词语相对应的候选实体。这一步可以采用基于字符串相似度或基于语义相似度的方法,如编辑距离、Jaccard系数、余弦相似度等。

实体消歧:接着要从候选实体中选择出最合适的一个作为文本中实体词语所指代的真正实体。这一步可以采用基于特征或基于深度学习的方法,如支持向量机、随机森林、注意力机制等。

NIL判断:最后要判断文本中是否存在没有对应知识库中实体的指称项,即NIL指称项,并给出其类别。这一步可以采用基于规则或基于问答的方法,如正则表达式、模板匹配、BERT等。

医疗实体链指是指将自然语言文本中的医疗实体与知识库中的标准化概念进行对应的任务这是一个具有挑战性和重要性的任务,因为不同的数据源可能使用不同的术语来表示相同或相似的医疗实体

目前,最新的(SOTA)模型是SapBERT,它是一个基于自监督对齐预训练(Self-Alignment Pretraining)的双向编码器表示模型(Biomedical Entity Representations)。它可以同时处理多种类型的医疗实体,并且在六个公开的医疗实体链指基准数据集上取得了最佳效果

3. 知识计算模块

3.1图数据库操作(Ctpher)

医疗知识图谱问答系统图数据库操作是指使用图数据库(如neo4j)来存储和查询医疗知识图谱中的实体和关系。

图数据库操作是知识图谱问答系统的一个重要组成部分,它可以提高问答系统的速度和效果。

3.2 问题检索

医疗知识图谱问答系统问题检索是指根据用户的问题,从知识图谱中查找相关的答案。

问题检索是知识图谱问答系统的一个重要组成部分,它可以提高问答系统的准确性和可靠性。

3.2.1 文本倒排索引

医疗知识图谱问答系统文本倒排索引是指使用文本倒排索引的技术,来提高从知识图谱中检索相关答案的效率

文本倒排索引是一种存储某个单词(或词组)在一组文档中的存储位置的映射,提供了可以根据内容来查找文档的方式它可以将用户的问题分解为关键词,然后根据关键词匹配相应的文档,从而缩小搜索范围

3.2.2 文本向量化表示

文本向量化表示是指将文本用向量或矩阵的形式表示,也可以理解为对文本的数值化处理。它可以将单词映射到另一个空间,生成一个在新空间上的表达。文本向量化是自然语言处理中必不可少的步骤,可以根据不同的粒度分为字、词、句子或篇章几个层次

3.2.3 faiss向量索引

Faiss是一个用于高效相似度搜索和密集向量聚类的库。它包含了在任意大小的向量集合中搜索的算法,甚至可以处理那些可能不适合在RAM中存储的向量集合。它还包含了用于评估和参数调优的支持代码Faiss是用C++编写的,完全支持Python/numpy接口

Faiss有多种类型的索引,其中一种是Flat索引,它只是将向量编码成固定大小的代码,并将它们存储在一个ntotal * code_size字节的数组中。在搜索时,所有索引的向量都被顺序解码并与查询向量进行比较

结论

医疗知识图谱问答系统是指利用医疗领域的知识图谱来回答自然语言问题的系统。这是一个复杂的任务,需要将自然语言问题转换为结构化的查询语言,并在知识图谱中寻找合适的答案

目前,有许多关于医疗知识图谱问答系统的研究,例如:

参考文献

Guess you like

Origin blog.csdn.net/sikh_0529/article/details/129318391