CN111639254A - 一种医疗领域的sparql查询语句的生成***和方法 - Google Patents

一种医疗领域的sparql查询语句的生成***和方法 Download PDF

Info

Publication number
CN111639254A
CN111639254A CN202010472760.8A CN202010472760A CN111639254A CN 111639254 A CN111639254 A CN 111639254A CN 202010472760 A CN202010472760 A CN 202010472760A CN 111639254 A CN111639254 A CN 111639254A
Authority
CN
China
Prior art keywords
chinese
natural language
query
word segmentation
template
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.)
Pending
Application number
CN202010472760.8A
Other languages
English (en)
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202010472760.8A priority Critical patent/CN111639254A/zh
Publication of CN111639254A publication Critical patent/CN111639254A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • 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/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开一种医疗领域的SPARQL查询语句的生成***和方法,属于机器翻译领域。包括:生成器,将查询模板库和知识库作为输入,用于从知识库中提取实体与属性,填充至中文问句模板和SPARQL查询模板中,生成训练集;分词模块,用于对训练集中中文问句进行分词处理,将分词结果转发给学习器;对目标中文问句进行分词处理,将分词结果转发给解释器;学习器,用于根据分词后的中文训练集对神经网络模型进行训练,得到训练好的模型;解释器,用于利用训练好的神经网络模型对分词后的目标中文问句进行预测,得到预测的SPARQL查询语句,从而不再使用复杂的统计和手工模型,实现直接将医疗健康查询中文问句转换为SPARQL查询语句。

Description

一种医疗领域的SPARQL查询语句的生成***和方法
技术领域
本发明属于深度学习和机器翻译领域,更具体地,涉及一种医疗领域的SPARQL查询语句的生成***和方法。
背景技术
在互联网的世界中,信息量也随着技术的迭代而飞快地增长。对于普通用户而言,如何精准地从海量的网络数据中获得自己需要的信息成为一个不小的问题。为了解决这个问题从而出现了搜索引擎,搜索引擎现在成为了用户从互联网上获取信息的最重要的途径之一。搜索引擎可以概括为两种实现方式一是传统的基于关键词匹配模式另一种可以归为未来的基于语义查询图的模式。不管使用什么技术,搜索引擎的目的都是在互联网上收集整理数据,给使用者提供搜索查询服务。从搜索引擎问世以来,它一直处于统治级地位,而随着时代的发展,新的技术不断出现,传统的搜索引擎在给用户提供服务的同时已经出现了瓶颈,也出现一些方面的不足;比如搜索引擎不能直接理解用户输入的语句,只能根据用户提供的关键词返回一组与关键词相关性由高到低的网页链接,这就需要用户自己去大量的网页链接中寻找他们想要的知识,而不是让搜索引擎去理解用户提出的问题。在1998年,互联网之父Tim Berners-Lee提出了语义网来处理以上问题,该语义网络将结构化数据组织成计算机可以识别和推理的格式,从而给予计算机代替用户理解问题,筛选答案的能力。语义网技术由RDF、SPARQL、JSON-LD、OWL、RDFS、RIF等技术组成,其中SPARQL是官方推荐的用于语义网查询语言。
由于日益增长的互联网信息,网络上已经存在着巨量的语义信息,基于这些语义信息知识,已经存在有数百万的网站支持语义网技术。但是用户在如此海量的数据中直接搜索自己需要的信息依旧是非常困难的。换句话说,对于普通用户来说,由于他们不了解SPARQL等语义网查询语言的语法结构,普通用户想要搜索自己需要的信息几乎成为了不可能的事。
自动问答***的发展有相当长的历史,自动问答***的早期发展主要依赖于搜索引擎技术,该技术主要是首先从文本源中查询相关的文档,然后在查询到的目标文档中提取与问题相关性最高的答案。后来发展出基于协同的智能问答***,该类***会在***的后台维护一个问题和答案的数据集合,返回的答案就是在后台的所有问题之中找到匹配度最高的问题,然后返回该问题所对应答案。当前自动问答***的主流技术变成了基于知识库的结构化查询。该类技术首先在理解普通用户提出的问题的情况下,将自然语言问句转化成结构化查询语句,例如常见的SQL查询语句,或者是后来出现的面向语义网的SPARQL查询语句,***通过查询语句在知识库中进行准确查询然后返回结果。
知识问答***的首要步骤就是理解用户提出的问题,该步骤在知识问答***中起着至关重要的作用,***只有正确地理解了问题的语义信息,才能准确地生成对应的查询语句并返回给用户。对于问答***来说,由于自然语言的表达存在多样性和多义性,问句的语义理解不正确导致返回结果不符合用户的需求。在浏览互联网时,人们有时也希望通过互联网来获得医疗健康相关的信息,甚至是进行自我诊断。但是根据本文统计国内多个相关的医疗健康网站的数据来看,这些网站所提供的自动问答服务***仍旧在使用基于传统搜索引擎技术的***,网站都是通过提取用户关键词来索引相关网页,这使得用户仍然需要花大量的时间来筛选信息。对于健康医疗这个与人们日常生活息息相关的领域,国内基于医疗知识库的智能问答***还不够成熟。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种医疗领域的SPARQL查询语句的生成***和方法,其目的在于不再使用复杂的统计和手工模型,实现直接将接收的医疗健康查询中文自然语言转换为SPARQL查询语句。
为实现上述目的,按照本发明的第一方面,提供了一种医疗领域的SRARQL查询语句的生成***,该***包括:
知识库,用于存放医疗领域知识,所述知识包含中文自然语言问句的答案;
查询模板库,用于存放中文自然语言问句模板和SPARQL查询模板,两个模板一一对应;
生成器,将查询模板库和知识库作为输入,用于从知识库中提取实体与属性,分别填充至中文自然语言问句模板和SPARQL查询模板中,从而生成训练数据集;
分词模块,用于对训练数据集中中文自然语言问句进行分词处理,并将分词结果转发给学习器;对输入的目标中文自然语言问句进行分词处理,并将分词结果转发给解释器;
学习器,用于根据分词处理后的中文训练集对神经网络模型进行训练,得到训练好的神经网络模型;
解释器,用于利用训练好的神经网络模型对分词处理后的目标中文自然语言问句进行预测,得到预测的SPARQL查询语句。
优选地,所述查询模板库中包含疾病的各种医疗知识对应的各种类型查询模板,所述各种医疗知识包含:疾病的病因、疾病的预防、疾病的症状、疾病的检查、疾病的治疗、疾病的护理。
优选地,所述生成器的功能通过以下方式实现:在实体和属性值列表中进行随机采样,并将实体的IRI和对应的中文标签分别填充至上述两个模板的占位符中,得到一对中文问句与SPARQL模板句对。
优选地,所述神经网络模型为Seq2Seq模型。
优选地,所述***还包括:预训练模块,用于利用额外的语料库生成词向量矩阵,对神经网络模型的嵌入层进行预训练。
为实现上述目的,按照本发明的第二方面,提供了一种医疗领域的SPARQL查询语句的生成方法,该方法包括以下步骤:
S1.构建存放医疗领域知识的知识库和存放中文自然语言问句模板和SPARQL查询模板的查询模板库,所述知识包含中文自然语言问句的答案,两个模板一一对应;
S2.从知识库中提取实体与属性,分别填充至中文自然语言问句模板和SPARQL查询模板中,从而生成训练数据集;
S3.对训练数据集中中文自然语言问句进行分词处理;
S4.根据分词处理后的中文训练集对神经网络模型进行训练,得到训练好的神经网络模型;
S5.对输入的目标中文自然语言问句进行分词处理,利用训练好的神经网络模型对分词处理后的目标中文自然语言问句进行预测,得到预测的SPARQL查询语句。
优选地,所述查询模板库中包含疾病的各种医疗知识对应的各种类型查询模板,所述各种医疗知识包含:疾病的病因、疾病的预防、疾病的症状、疾病的检查、疾病的治疗、疾病的护理。
优选地,步骤S2具体为:在实体和属性值列表中进行随机采样,并将实体的IRI和对应的中文标签分别填充至上述两个模板的占位符中,得到一对中文问句与SPARQL模板句对。
优选地,所述神经网络模型为Seq2Seq模型。
优选地,该方法在步骤S3和步骤S4之间还包括:利用额外的语料库生成词向量矩阵,对神经网络模型的嵌入层进行预训练。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的基于深度学习的自然语言到SPARQL语句的生成方法,结合了中文自然语言的语义特点和深度学习算法,所述深度学习算法以分词后的中文自然语言问句以及对应的SPARQL翻译为输入,生成一个预测的SPARQL语句,从输入数据中不仅能够学到中文自然语言问句到SPARQL语句之间的转换,还能够学到所有词语的词向量,以及中文词典与SPARQL词典的词向量之间的映射关系,从而不再使用复杂的统计和手工模型,实现直接将模型接收的中文自然语言转换为SPARQL语句,换句话说,就是使用端到端的方法将整个自然语言表达式转换为最终查询。
(2)本发明使用查询模板和分词模块构建问题分析模块,查询模板结合了知识库中的先验知识,这些知识将被基于深度学习的自然语言到SPARQL翻译模型所学习,共同解决命名实体识别、信息抽取、逻辑形式转换等问题。
(3)本发明利用额外的语料库生成词向量矩阵,对神经网络模型的嵌入层进行预训练,训练完成的嵌入层还能够进入基于深度学习的自然语言到SPARQL翻译模型进行正式的监督训练,而此时更多的是对常用词词向量的再训练,解决了词汇失配的问题。
附图说明
图1为本发明提供的一种医疗领域的SPARQL查询语句的生成***结构图;
图2为本发明提供的学习器模型图;
图3为本发明提供的解释器模型图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明提供了一种医疗领域的SPARQL查询语句的生成***,该***包括:
知识库,用于存放医疗领域知识,所述知识包含中文自然语言问句的答案。
查询模板库,用于存放中文自然语言问句模板和SPARQL查询模板,两个模板一一对应。
生成器,将查询模板库和知识库作为输入,用于从知识库中提取实体与属性,分别填充至中文自然语言问句模板和SPARQL查询模板中,从而生成训练数据集。
分词模块,用于对训练数据集中中文自然语言问句进行分词处理,并将分词结果转发给学习器;对输入的目标中文自然语言问句进行分词处理,并将分词结果转发给解释器。
学习器,用于根据分词处理后的中文训练集对神经网络模型进行训练,得到训练好的神经网络模型。
解释器,用于利用训练好的神经网络模型对分词处理后的目标中文自然语言问句进行预测,得到预测的SPARQL查询语句。
整个***主要由三个组件组成:一个生成器,一个学习器和一个解释器。图1中三个区域用于区分三个主要组件的工作流程,知识库在生成器和解释器中都起到提供数据的作用,学习器从训练数据中学到的模型,被解释器用于中文问句到SPARQL的翻译工作。
知识库
本实施例选择Protégé作为本体编辑工具,以OpenKG网站中提供的中文症状库为基础,并爬取了寻医问药、A+医学百科等国内健康医疗网站中的部分数据,来生成医疗领域知识库。
查询模板库
查询模板库中包含疾病的各种医疗知识对应的各种类型查询模板,包含但不限于以下类型:疾病的病因、疾病的预防、疾病的症状、疾病的检查、疾病的治疗、疾病的护理对应的查询模板。
查询模板由两部分组成:一个中文自然语言问句模板,用于表示神经网络模型所能够理解和接收的输入;一个SPARQL查询模板,用于直接作为神经网络模型期望输出的结果。SPARQL查询模板和中文自然语言问句模板均有占位符。本实施例编写了37个查询模板,每个查询模板涉及到一个或两个实体以及多个属性。
查询模板的编写,结合了知识库中的先验知识,以及与知识库紧密结合的自然语言查询与其对应的SPARQL查询,模板中涉及的实体由占位符替换。例如,编写一条查询某个疾病有什么症状的查询模板时,选择“_有什么症状”和“Select?x where{<_>:疾病相关症状?x}”分别作为中文自然语言问句模板和SPARQL查询模板的内容。
生成器
生成器是深度神经网络模型的先导部分,其最主要的作用在于连接模型与知识库,帮助模型理解和学习知识库。生成器以知识库和查询模板作为输入,输出中文自然语言问句和SPARQL标记序列作为数据集供学习器学习。
对于每一个模板,需要从领域知识库中获取一定数量的满足相应SPARQL图模式的实体和属性值。为了加快数据的生成,该过程的取值来自由预先抽取并归类的实体和属性值列表。在列表中进行随机采样,并将实体的IRI(国际化资源标识符,InternationalizedResource Identifiers)和对应的中文标签(实体/属性)分别填充至上述两个模板的占位符中,就能够得到一对中文问句与SPARQL模板句对。医学领域知识的实体包括:疾病名称、药物名称、症状等,医学领域知识的属性包括:治疗方式、疾病护理方式、治疗周期等。
本实施例中,从疾病实体列表中随机选取一个值,如“肺炎”。将“肺炎”填充至两个模板的占位符“_”中,得到中文自然语言问句“肺炎有什么症状”,得到SPARQL语句“Select?x where{<肺炎>:疾病相关症状?x}”。
学习器
学习器是为了理解和吸收知识库中的先验知识,与医疗知识库相关的问句,以及问句到SPARQL语句之间的转换规则,然后将理解的成果转换为一个深度神经模型。
学习器采用深度神经网络Seq2Seq,它以分词后的中文自然语言问句以及对应的SPARQL翻译为输入,生成一个预测的SPARQL语句,并利用梯度下降算法进行学习。共分为四层:嵌入层、编码层、解码层、输出层,其中,
嵌入层负责将中文词语转换为词向量,该层的神经元数量为中文词向量长度,输出层是经典的Softmax层,该层的神经元数量为SPARQL词典的大小,每一个神经元对应一个SPARQL词典中的词语。
编码层和解码层分别用于理解中文自然语言问句以及产生SPARQL语句,互为逆向操作,因此可以组合在一起视为一层隐藏层。隐藏层接收来自嵌入层的词向量序列
Figure BDA0002513461500000081
Figure BDA0002513461500000082
作为输入,输出一组数量为N,长度为|Ds|的实值向量,Ds为SPARQL词典,每一个实值向量表示SPARQL词典中的所有词语在该输出点的激活值。
激活值经过输出层,输出一组翻译序列y={y(1),...,y(N)},与
Figure BDA0002513461500000091
作比较并生成学习器的训练误差。
由公式(1-1),模型的训练目标是最大化以xinput为条件的
Figure BDA0002513461500000092
的生成概率。
Figure BDA0002513461500000093
组成隐藏层的编码层和解码层实际由一个编码器和一个解码器以及中间的上下文向量拼接而成。编码器Lencoder是一个单向LSTM,也可以使用双向LSTM代替,层数决定了模型捕获复杂结构的能力,以及能否更加精确地从文本窗口中抽取高层特征。由于引入了注意力机制,编码器依时间序读取输入文本窗口的词向量序列xhidden前半段{u(1),...,u(M)},然后生成M个隐藏状态而非一个上下文向量作为编码器的输出,见公式(1-2)和公式(1-3)。
h(t)=f(u(t),h(t-1)) (1-2)
Lencoder(u(1),...,u(M))={h(1),...,hM} (1-3)
h(t)为编码器的隐藏层在时刻t的状态t=(1,2,3...),通过前一个时刻的状态h(t -1)和当前时刻t的词向量u(t)计算得到,h(0)初始化为全零状态。公式中f是一个非线性的转换函数,在LSTM中是一系列复杂函数的组合,接下来会重点介绍。
为了控制隐藏状态h(t)的更新方式,LSTM模型在隐藏层还存在一个内部状态这个内部状态一般称之为记忆单元,记为Ct。除此之外,隐藏层还有三个门控结构,分别称之为遗忘门,输入门和输出门,三个门作用各不相同,但共同合作控制下一个隐藏状态的输出。对于任意时刻t,三种门均接收当前时刻模型的输入u(t)和前一个时刻的隐藏状态h(t-1)作为输入,通过激活函数以后,生成三个与隐藏状态等长的向量f(t)、i(t)、o(t)。其中三种门的输出向量见公式(1-4)、公式(1-5)和公式(1-6)。
f(t)=σ(Wf·h(t-1)+Uf·u(t)) (1-4)
i(t)=σ(Wi·h(t-1)+Ui·u(t)) (1-5)
o(t)=σ(Wo·h(t-1)+Uo·u(t)) (1-6)
遗忘门通过遗忘向量f(t)控制上一时刻的记忆单元有多少比例能够保留下来。公式中σ为Sigmoid函数,该函数计算所得向量的各个元素在[0,1]之间,代表保留上一时刻记忆单元内容的比例。
输入门通过输入向量i(t)控制当前时刻的输入值有多少比例能够进入记忆单元,这里的输入值由当前时刻模型的输入u(t)和前一个时刻的隐藏状态h(t-1)共同决定,再由输入门的向量以一定的概率决定加入多少输入值到隐藏记忆单元中,并更新记忆单元。当前时刻的输入值以及记忆单元的更新见公式(1-7)和公式(1-8)。
a(t)=tanh(Wa·h(t-1)+Ua·u(t)) (1-7)
C(t)=f(t)⊙C(t-1)+i(t)⊙a(t) (1-8)
其中,“⊙”表示两个矩阵的哈达玛积,即两个形状完全相同的矩阵或向量,对应元素一一相乘,乘积结果为形状不变的矩阵或向量,C0与h0一样,初始化为全零状态。
输出门最后通过输出向量o(t)控制当前时刻记忆单元有多少比例转换为隐藏状态。当前时刻的隐藏状态更新见公式(1-9)。
h(t)=o(t)⊙tanh(C(t)) (1-9)
解码器Ldecoder的流程是编码器的镜像操作,接收编码器输出的隐藏状态序列,依时间序读取输入文本窗口的词向量序列xhid后半段{v(1),...,v(N)},并生成一组实值向量o={o(1),...,o(N)}作为输出,其中o(t)由该时刻的隐藏状态H(t)所决定,如公式(1-10)、公式(1-11)和公式(1-12)所示。
Figure BDA0002513461500000101
o(t)=σ(VH(t)) (1-11)
Ldecoder(v(1),...,v(N),h(1),...,h(M))={o(1),...,o(N)} (1-12)
H(t)为解码器的隐藏层在时刻t的状态,通过编码器输出的隐藏状态序列、前一个时刻的状态H(t-1)和前一个输出层期望结果向量
Figure BDA0002513461500000111
的词向量v(t-1)计算得到,F为向量归一比较函数,负责计算给每个隐藏状态分配的注意力比例,H(0)为全零向量,v(0)为自然语言问句的句末符号,读入句末符号表示编码器工作结束,解码器工作开始。学习阶段,解码层的输出向量o(t)只用于误差的计算,不参与下一时刻隐藏层状态的计算,取代它参与计算的是期望结果的词向量v(t),目的是快速修正参数,使输出结果更快地接近期望结果。
学习器的输出层采用的是经典的Softmax层,该层节点使用的激活函数是逻辑函数的一种推广,被称为Softmax函数。输出层接收解码层的输出向量序列{o(1),...,o(N)},将长度为d的实值向量o(i)与所有SPARQL词典中的词语作对比,对比结果转换为长度为|Ds|的实值向量δ(o(i)),再通过Softmax函数归一化为y(i)。公式(1-13)为输出层的定义。
Figure BDA0002513461500000112
该函数的意义在于将解码层输出的每一组|Ds|维实值向量δ(o(i))压缩映射为相同维度,取值为[0,1]且和为1的实值向量σ(δ(o(i))),即确保所有输出层的节点的取值范围限制在[0,1]之间,且所有节点输出值之和为1。通过该层可以确保输出的一系列实值是一个合法的概率分布,并根据该概率分布进行下一步的结果输出。输出层中的每一个节点对应于SPARQL词典中的一个词语,其输出值是根据输出层接收的实值向量经过对比和归一计算而得的激活概率,最后运用贪心法选择激活概率最高的词语,该词语即为输出层的一次输出结果。如公式(1-14)和公式(1-15)所示,根据解码层的输出{o(1),...,o(N)},输出层最终输出一组连贯的、符合语义的词语序列{ws (1),...,ws (N)}。
Loutput(o(1),...,o(N))={ws (1),...,ws (N)} (1-14)
ws (i)=greedy(y(i)) (1-15)
其中,greedy(·)表示贪心算法,学习器输出的词语序列无任何用途,最终计算训练误差使用的是y={y(1),...,y(N)}。
图2展示了模型学习中文“肺炎有什么症状”与SPARQL语句“Select?x where{<肺炎>:疾病相关症状?x}”之间对应关系的过程。图2中隐藏层的左半部分编码过程、右半部分为解码过程。
解释器
本发明中解释器的工作是重用学习器学习好的神经网络模型,接收中文自然语言问句,经神经网络模型翻译成SPARQL查询,执行并得到查询的问答结果。
解释器对应模型的推理过程或问答过程。解释器的工作是重用学习器的神经网络模型,接收中文自然语言问句,经神经网络模型翻译成SPARQL查询,执行并得到查询的问答结果。解释器的模型在嵌入层、编码层的正向传播流程同学习器,只有解码层和输出层稍有不同,具体如图3所示,解释器将前一步解码层预测出的结果作为当前解码层的输入,解释器的输出为多个不同概率的结果。与学习器的图例对应,图3展示模型将中文“肺炎有什么症状”转换为“Select?xwhere{<肺炎>:疾病相关症状?x}”的过程。
解释器的输出层与学习器的输出层类似,同样能够将解码层的每一个输出向量oi压缩映射为概率向量σ(δ(oi)),只是可以根据概率向量从SPARQL词典中甄选一个或者多个词语作为输出。
甄选算法由简单到复杂可以分为三种,第一种方法等同于学习器的输出层,运用贪心法选择概率向量中最大数值的索引对应词典中的词语,这种方法简单高效,每次选择均为固定此前输出词语序列时的最优解,然而容易陷入局部最优解。第二种方法根据概率分布进行抽样,该方法通过一个温度参数T进行控制,计算出概率向量之后进行随机抽样,词语的激活概率越大,抽样选中该词语的几率也就越大。于是在这种情况下,加入温度参数的Softmax的公式见公式(1-16)。
Figure BDA0002513461500000131
其中,T为温度参数。随着温度参数的增大,输出向量oi每一个分量的差异性被成倍地缩小,所得概率会逐渐趋于彼此相等,此时方法退化为随机抽样;而随着温度参数的减小,oi每个分量的差异性被成倍地放大,所得概率之间的差异性也会愈发变大,此时方法退化为贪心法。这种方法相较于贪心法,添加了随机性,使每一次的输出不再固定为某一个最优解,从而增加了在非最优解时得到全局最优解的可能性。第三种方法为本文采用的方法,称为集束搜索,是一种启发式图搜索算法。如果将每一步输出的词语当作一个节点,考虑所有可能性,且固定输出长度为N,那么第一步能够产生|D′|个节点和路线,第二步能够产生|D′|2个节点和路线,以此类推,最后一步将产生|D′|N个节点和路线,在这些路线中,必定包含这样一条路线,且该路线经过的节点为全局最优解。在这种图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,通常使用广度优先策略建立搜索树,在每一步深度扩展的时候,按照启发代价或激活概率对节点进行排序,然后根据集束宽度参数,留下预先确定的个数的节点,这些节点代表质量较高的节点,并剪掉剩余质量比较差的节点,仅保留节点在下一层次继续扩展。这样减少了空间消耗,并提高了时间效率,但缺点就是有可能存在潜在的最佳方案被丢弃。
分词模块
从该数据中不仅能够学到中文自然语言问句到SPARQL语句之间的转换,还能够学到所有词语的词向量,以及中文词典与SPARQL词典的词向量之间的映射关系。中文语句不能未经处理就当作神经网络模型的输入。因此无论是生成器通过查询模板生成的中文自然语言问句,还是解释器接收的问句,都需要先经过分词模块处理,转换为以空格作为分隔符的中文词语序列,再输入神经网络模型中进行训练或推理。
所述***还包括:预训练模块,用于利用额外的语料库生成词向量矩阵,对神经网络模型的嵌入层进行预训练,以解决词汇失配的问题。
本发明采用负采样算法以提升训练生僻词语的效果,因为训练完成的嵌入层还能够进入基于深度学习的自然语言到SPARQL翻译模型进行正式的监督训练,而此时更多的是对常用词词向量的再训练。进行嵌入层预训练时,***从语料库中随机选择2s+1个连续的词语序列(s表示目标单词上下文的词语数量),取出位于中间位置的词语和余下的词语序列,将其中一方作为模型的训练输入,另一方则作为期望输出。模型的嵌入层负责将输入的一个或多个词语转换为对应的词向量,然后依次经过隐藏层和输出层的计算,得到期望输出的概率,求其对数似然函数的负值作为模型误差,再使用反向传播算法进行隐藏层和嵌入层的参数修正,其中主要是对嵌入层的参数进行修正,直到模型在语料库上的后验概率达到最大,即误差降至最低。此时可以说,嵌入层的词向量矩阵已经学到了语料库中的语义知识。训练完成以后,去掉隐藏层和输出层,其嵌入层对应的参数为词向量矩阵,就是预训练的成果。
预训练的语料库不同于基于深度学习的自然语言到SPARQL翻译模型的训练语料,前者可以是任意的中文文本,且十分便于获取。但此时的预训练过程也是确定中文词典的过程,因此在任意中文文本的随机选择并预训练完成以后,也需要将后续训练基于深度学习的自然语言到SPARQL翻译模型的语料输入中文神经语言模型中进行预训练,以便将只出现于知识库而非语料库中的中文词语加入中文词典中。嵌入层预训练过程不仅能够达到扩充查询模板同样的目的,还能够因为直接提供训练好的词向量矩阵,缩短后续训练基于深度学习的自然语言到SPARQL翻译模型的时间。
本实施例采用gensim word2vec模型,在大约80万个中文医疗对话数据集上进行无监督训练,并最终得到词语的词向量。
对应地,本发明提供了一种医疗领域的SPARQL查询语句的生成***,该***包括:
S1.构建存放医疗领域知识的知识库和存放中文自然语言问句模板和SPARQL查询模板的查询模板库,所述知识包含中文自然语言问句的答案,两个模板一一对应。
S2.从知识库中提取实体与属性,分别填充至中文自然语言问句模板和SPARQL查询模板中,从而生成训练数据集。
S3.对训练数据集中中文自然语言问句进行分词处理。
S4.根据分词处理后的中文训练集对神经网络模型进行训练,得到训练好的神经网络模型。
S5.对输入的目标中文自然语言问句进行分词处理,利用训练好的神经网络模型对分词处理后的目标中文自然语言问句进行预测,得到预测的SPARQL查询语句。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种医疗领域的SPARQL查询语句的生成***,其特征在于,该***包括:
知识库,用于存放医疗领域知识,所述知识包含中文自然语言问句的答案;
查询模板库,用于存放中文自然语言问句模板和SPARQL查询模板,两个模板一一对应;
生成器,将查询模板库和知识库作为输入,用于从知识库中提取实体与属性,分别填充至中文自然语言问句模板和SPARQL查询模板中,从而生成训练数据集;
分词模块,用于对训练数据集中中文自然语言问句进行分词处理,并将分词结果转发给学习器;对输入的目标中文自然语言问句进行分词处理,并将分词结果转发给解释器;
学习器,用于根据分词处理后的中文训练集对神经网络模型进行训练,得到训练好的神经网络模型;
解释器,用于利用训练好的神经网络模型对分词处理后的目标中文自然语言问句进行预测,得到预测的SPARQL查询语句。
2.如权利要求1所述的***,其特征在于,所述查询模板库中包含疾病的各种医疗知识对应的各种类型查询模板,所述各种医疗知识包含:疾病的病因、疾病的预防、疾病的症状、疾病的检查、疾病的治疗、疾病的护理。
3.如权利要求1或2所述的***,其特征在于,所述生成器的功能通过以下方式实现:在实体和属性值列表中进行随机采样,并将实体的IRI和对应的中文标签分别填充至上述两个模板的占位符中,得到一对中文问句与SPARQL模板句对。
4.如权利要求1至3任一项所述的***,其特征在于,所述神经网络模型为Seq2Seq模型。
5.如权利要求1至4任一项所述的***,其特征在于,所述***还包括:预训练模块,用于利用额外的语料库生成词向量矩阵,对神经网络模型的嵌入层进行预训练。
6.一种医疗领域的SPARQL查询语句的生成方法,其特征在于,该方法包括以下步骤:
S1.构建存放医疗领域知识的知识库和存放中文自然语言问句模板和SPARQL查询模板的查询模板库,所述知识包含中文自然语言问句的答案,两个模板一一对应;
S2.从知识库中提取实体与属性,分别填充至中文自然语言问句模板和SPARQL查询模板中,从而生成训练数据集;
S3.对训练数据集中中文自然语言问句进行分词处理;
S4.根据分词处理后的中文训练集对神经网络模型进行训练,得到训练好的神经网络模型;
S5.对输入的目标中文自然语言问句进行分词处理,利用训练好的神经网络模型对分词处理后的目标中文自然语言问句进行预测,得到预测的SPARQL查询语句。
7.如权利要求6所述的方法,其特征在于,所述查询模板库中包含疾病的各种医疗知识对应的各种类型查询模板,所述各种医疗知识包含:疾病的病因、疾病的预防、疾病的症状、疾病的检查、疾病的治疗、疾病的护理。
8.如权利要求6或7所述的方法,其特征在于,步骤S2具体为:在实体和属性值列表中进行随机采样,并将实体的IRI和对应的中文标签分别填充至上述两个模板的占位符中,得到一对中文问句与SPARQL模板句对。
9.如权利要求6至8任一项所述的方法,其特征在于,所述神经网络模型为Seq2Seq模型。
10.如权利要求6至9任一项所述的方法,其特征在于,该方法在步骤S3和步骤S4之间还包括:利用额外的语料库生成词向量矩阵,对神经网络模型的嵌入层进行预训练。
CN202010472760.8A 2020-05-28 2020-05-28 一种医疗领域的sparql查询语句的生成***和方法 Pending CN111639254A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010472760.8A CN111639254A (zh) 2020-05-28 2020-05-28 一种医疗领域的sparql查询语句的生成***和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010472760.8A CN111639254A (zh) 2020-05-28 2020-05-28 一种医疗领域的sparql查询语句的生成***和方法

Publications (1)

Publication Number Publication Date
CN111639254A true CN111639254A (zh) 2020-09-08

Family

ID=72331249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010472760.8A Pending CN111639254A (zh) 2020-05-28 2020-05-28 一种医疗领域的sparql查询语句的生成***和方法

Country Status (1)

Country Link
CN (1) CN111639254A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813802A (zh) * 2020-09-11 2020-10-23 杭州量之智能科技有限公司 一种基于自然语言生成结构化查询语句的方法
CN112287093A (zh) * 2020-12-02 2021-01-29 上海交通大学 基于半监督学习和Text-to-SQL模型的自动问答***
CN112447300A (zh) * 2020-11-27 2021-03-05 平安科技(深圳)有限公司 基于图神经网络的医疗查询方法、装置、计算机设备及存储介质
CN113537346A (zh) * 2021-07-15 2021-10-22 思必驰科技股份有限公司 医疗领域数据标注模型训练方法及医疗领域数据标注方法
CN114064820A (zh) * 2021-11-29 2022-02-18 上证所信息网络有限公司 一种基于混合架构的表格语义查询粗排方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010137940A1 (en) * 2009-05-25 2010-12-02 Mimos Berhad A method and system for extendable semantic query interpretation
CN107748757A (zh) * 2017-09-21 2018-03-02 北京航空航天大学 一种基于知识图谱的问答方法
CN109522393A (zh) * 2018-10-11 2019-03-26 平安科技(深圳)有限公司 智能问答方法、装置、计算机设备和存储介质
US20200004831A1 (en) * 2018-06-27 2020-01-02 Bitdefender IPR Management Ltd. Systems And Methods For Translating Natural Language Sentences Into Database Queries

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010137940A1 (en) * 2009-05-25 2010-12-02 Mimos Berhad A method and system for extendable semantic query interpretation
CN107748757A (zh) * 2017-09-21 2018-03-02 北京航空航天大学 一种基于知识图谱的问答方法
US20200004831A1 (en) * 2018-06-27 2020-01-02 Bitdefender IPR Management Ltd. Systems And Methods For Translating Natural Language Sentences Into Database Queries
CN109522393A (zh) * 2018-10-11 2019-03-26 平安科技(深圳)有限公司 智能问答方法、装置、计算机设备和存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SHENG ZHANG ET AL.: "Chinese Medical Question Answer Matching Using End-to-End Character-Level Multi-Scale CNNs" *
TOMMASO SORU ET AL.: "SPARQL as a Foreign Language" *
李东潮: "基于深度学习算法的中文文本与SPARQL的转换方法研究" *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813802A (zh) * 2020-09-11 2020-10-23 杭州量之智能科技有限公司 一种基于自然语言生成结构化查询语句的方法
CN111813802B (zh) * 2020-09-11 2021-06-29 杭州量之智能科技有限公司 一种基于自然语言生成结构化查询语句的方法
CN112447300A (zh) * 2020-11-27 2021-03-05 平安科技(深圳)有限公司 基于图神经网络的医疗查询方法、装置、计算机设备及存储介质
CN112447300B (zh) * 2020-11-27 2024-02-09 平安科技(深圳)有限公司 基于图神经网络的医疗查询方法、装置、计算机设备及存储介质
CN112287093A (zh) * 2020-12-02 2021-01-29 上海交通大学 基于半监督学习和Text-to-SQL模型的自动问答***
CN113537346A (zh) * 2021-07-15 2021-10-22 思必驰科技股份有限公司 医疗领域数据标注模型训练方法及医疗领域数据标注方法
CN113537346B (zh) * 2021-07-15 2023-08-15 思必驰科技股份有限公司 医疗领域数据标注模型训练方法及医疗领域数据标注方法
CN114064820A (zh) * 2021-11-29 2022-02-18 上证所信息网络有限公司 一种基于混合架构的表格语义查询粗排方法
CN114064820B (zh) * 2021-11-29 2023-11-24 上证所信息网络有限公司 一种基于混合架构的表格语义查询粗排方法

Similar Documents

Publication Publication Date Title
Zhang et al. Neural, symbolic and neural-symbolic reasoning on knowledge graphs
CN107748757B (zh) 一种基于知识图谱的问答方法
CN111639254A (zh) 一种医疗领域的sparql查询语句的生成***和方法
WO2023225858A1 (zh) 一种基于常识推理的阅读型考题生成***及方法
Sharma et al. A survey of methods, datasets and evaluation metrics for visual question answering
CN115048447B (zh) 一种基于智能语义补全的数据库自然语言接口***
CN112328800A (zh) 自动生成编程规范问题答案的***及方法
CN113779220A (zh) 一种基于三通道认知图谱和图注意力网络的蒙语多跳问答方法
CN114428850B (zh) 一种文本检索匹配方法和***
CN113407697A (zh) 深度百科学习的中文医疗问句分类***
CN117131933A (zh) 一种多模态知识图谱建立方法及应用
CN116010553A (zh) 一种基于双路编码和精确匹配信号的观点检索***
CN114841353A (zh) 一种融合句法信息的量子语言模型建模***及其应用
Aakur et al. Leveraging symbolic knowledge bases for commonsense natural language inference using pattern theory
Garg et al. Temporal restricted boltzmann machines for dependency parsing
CN112417170B (zh) 面向不完备知识图谱的关系链接方法
Pîrtoacă et al. Improving retrieval-based question answering with deep inference models
CN112100342A (zh) 一种基于知识表示学习技术的知识图谱问答方法
Ben Lamine et al. Deep learning-based extraction of concepts: A comparative study and application on medical data
CN114579605A (zh) 表格问答数据处理方法、电子设备及计算机存储介质
Crouse Question-Answering with Structural Analogy
CN114648017A (zh) 一种基于异质图注意力网络的文档级关系抽取方法
CN114443818A (zh) 一种对话式知识库问答实现方法
CN115033706A (zh) 一种知识图谱自动补全和更新的方法
Mohammadi et al. A comprehensive survey on multi-hop machine reading comprehension approaches

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200908

WD01 Invention patent application deemed withdrawn after publication