首页> 中国专利> 一种基于模板匹配和深度学习的知识库问答系统构建方法

一种基于模板匹配和深度学习的知识库问答系统构建方法

摘要

本发明公开了一种基于模板匹配和深度学习的知识库问答系统构建方法,包括:包括如下步骤:S1:设计和构建问答模板,设计问答模板时,必须具有问答完备性,用户可能问到的问题都必须含有对应的一个问答模板,这部分要求设计人员对业务问题的充分调研;S2:设计和构建本体图谱,根据实体数据和关系数据、场景业务和意图模板来设计本体图谱;S3:构建标记层;S4:构建触发层;S5:构建匹配层;S6:构建对齐层;S7:构建查询层。本发明,使用模板匹配和模型预测结合、ES搜索和模型预测结合的方式,使得问答系统的覆盖率和准确率更高,增强了问答系统的健壮性,本发明考虑了问句的多样性,扩大了问答的范围和形式,使得问答系统变得更加丰富。

著录项

  • 公开/公告号CN113157873A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 北京海致星图科技有限公司;

    申请/专利号CN202110098202.4

  • 发明设计人 张涵;

    申请日2021-01-25

  • 分类号G06F16/332(20190101);G06F16/36(20190101);G06F40/205(20200101);G06F40/279(20200101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11833 北京化育知识产权代理有限公司;

  • 代理人尹均利

  • 地址 100089 北京市海淀区学院路甲5号2幢平房B-1031室

  • 入库时间 2023-06-19 11:57:35

说明书

技术领域

本发明涉及人工智能自然语言处理技术领域,具体为一种基于模板匹配和深度学习的知识库问答系统构建方法。

背景技术

当下基于知识库的问答系统有两大类:基于模板的问答系统和基于模型推断的问答系统。基于模板的问答系统准确率高,但是需要提前编写业务场景相关的问答模板,而且难以覆盖用户灵活多变的问句;基于模型的问答系统虽然可以覆盖更多的问句形式和内容,但是往往依赖于场景相关的大量训练数据,导致实际应用时不能达到理想的效果程度。

除了问答系统的主要解决方式之外,当下的问答系统都没有形成一个完整的处理流程,而且也没有针对答案的图数据搜索和装饰给出一个比较好的解决方法。

例如,现有公告号为CN112071429A的发明专利,其公开了一种基于知识图谱的医疗自动问答系统构建方法,包括:对医疗领域知识图谱中的实体、关系以及属性进行预定义;获取医疗领域数据,根据所预定义的医疗领域知识图谱,利用数据自动标注算法对医疗领域数据进行标注;利用知识图谱构建模型对所述标注数据进行知识图谱的构建,得到医疗领域知识图谱;利用对话编码器将用户的对话文本进行编码,得到对话文本编码数据;利用基于知识图谱的强化学习网络对文本编码数据进行路径推断,得到用户的意图路径,意图路径所指向的知识图谱结果即为自动问答结果。其还构建了一种基于知识图谱的医疗自动问答系统,实现了医疗领域的自动问答。

但是上述发明专利仍然存在一下缺陷:

1、上述发明专利仅仅是解决医疗领域内的一种知识问答方法,难以结合各个领域的具体场景进行更加灵活地构建问答系统;

2、上述发明专利采用编码和强化学习路径推断得到用户意图,导致问答的准确率不高。

3、上述发明专利中的问答系统只能回答知识库问句对应的固有模板答案,难以给出具体的数量答案。

发明内容

本发明的目的在于提供一种基于模板匹配和深度学习的知识库问答系统构建方法,可将塑料颗粒中残留的铁质杂物吸附,达到除去塑料颗粒中残留的铁质杂物的目的,可避免铁质杂物进入注塑机而导致注塑机损坏的不良现象发生,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于模板匹配和深度学习的知识库问答系统构建方法,包括如下步骤:

S1:设计和构建问答模板,设计问答模板时,必须具有问答完备性,用户可能问到的问题都必须含有对应的一个问答模板,这部分要求设计人员对业务问题的充分调研;

S2:设计和构建本体图谱,根据实体数据和关系数据、场景业务和意图模板来设计本体图谱,便于高效访问图数据库得到答案;

S3:构建标记层,将公司名称、时间、地点业务所涉及到的实体标记为对应的标记形成标记层;

S4:构建触发层,使用触发机制,缩小匹配范围,触发机制分为意图触发和问题触发,用户输入不规范、用户输入过于灵活,用户输入的部分词语同义词过多,使用意图分类作为触发机制的补充手段,对问句进行意图模型分类,打一个标签,需根据业务提前设计好标签和对应问题分类,该部分使用TextCNN模型来预测分类;

S5:构建匹配层,定义正则表达式变量以及导入词典集合文件;

S6:构建对齐层,包括ES搜索和模型预测;

S7:构建查询层,将实例化的模板查询语句提交图数据库进行查询,图查询语句所返回的查询结果类型统一为:Array[Map[String,Any]];

S8:构建装饰层,对查询结果进行解析并装饰。

进一步的,在步骤S3中,当问句中可能含有两个有顺序的实体,则训练标注模型来识别有顺序的索引1实体和索引2实体。

进一步的,在步骤S4中,TextCNN模型中的TextCNN神经网络主要以CNN 网络对文本信息进行特征的抽取,把词向量的维度和文本的长度当成另一个维度用于构成一个矩阵,CNN网络用于在文本进行卷积核的计算或者文本的特征抽取,将TextCNN使用预先训练好的词向量作Embedding Layer,将数据集里的词表征成一个向量,用于得到一个嵌入矩阵MM,MM里的每一行都是词向量,所述MM是静态的或者非静态的,或者根据反向传播更新,TextCNN中的实现具体过程是多个卷积核对文本进行滑动获取语义特征,而CNN中的卷积核是能保留特征之间的相对位置的,因为卷积核是滑动的,从左至右滑动,因此捕获到的特征也是如此顺序排列,所以它在结构上已经记录了相对位置信息了,但是卷积层后面立即接上Pooling层的话,Max Pooling的操作逻辑是:从一个卷积核获得的特征向量里只选中并保留最强的那一个特征,所以到了Pooling层,位置信息就被损失掉了(信息损失),因此在对应需要捕获文本的词序信息特征时,Pooling层应该需要添加上位置信息。

进一步的,所述正则表达式变量的定义为:能够重复使用正则表达式,方便编写正则模板;导入词典集合文件为定义一个正则表达式变量表示文件中的词语皆可表示,比如${weather}表示天气文件中的各类天气如晴天、阴天和雨天,则“今天是${weather}吗”转换为“今天是[晴天|阴天|雨天]吗”;如果匹配到多个正则,使用优先级或文本匹配作为正则匹配的补充手段,如果匹配不到正则,使用文本匹配作为正则匹配的补充手段,该部分使用BERT 模型编码句子向量,然后使用COS余弦计算句子之间的相似度。

进一步的,所述BERT模型具体如下:

BERT模型的全称是:Bidirectional Encoder Representations fromTransformer。从名字中可以看出,BERT模型的目标是利用大规模无标注语料训练、获得文本的包含丰富语义信息的Representation,即:文本的语义表示,然后将文本的语义表示在特定NLP任务中作微调,最终应用于该NLP任务。BERT本质上是一个两段式的NLP模型。第一个阶段叫做:Pre-training,跟WordEmbedding类似,利用现有无标记的语料训练一个语言模型。第二个阶段叫做:Fine-tuning,利用预训练好的语言模型,完成具体的NLP下游任务。BERT是一个强大的预训练,因其超大的参数量和较强的特征提取能力,能够从海量的语料中学习到一些语言学和一定程度的语义信息。

进一步的,GQ类型包括查询实体集合和查询关系集合。

与现有技术相比,本发明的有益效果是:

1、本发明是构建和介绍一种通用的构建场景的问答系统方法,可以结合各个领域的具体场景进行更加灵活地构建问答系统。

2、本发明综合利用了先验知识库和最流行的深度学习模型对用户意图进行判断,从而提高问答的准确率。

3、本发明可以通过用户配置和数据库查询回答出更加具体的答案细节;

4、本发明采用以ES搜索匹配为主、以模型预测为辅的结合方式。 elasticsearch简写ES,ES是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据,全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。全文搜索搜索引擎数据库中的数据。以ES搜索匹配为主,使得实体对齐更加准确和快速;以模型预测为辅,弥补ES搜索可能匹配不到的缺陷,关于构建查询语句,本发明定义了图数据库查询的语句形式,用JSON格式表示,这也使得在扩展图数据库时能够很容易地修改和兼容。

附图说明

图1为本发明的BiLSTM+CRF模型架构示意图;

图2为本发明的本体设计实体的架构示意图;

图3为本发明的问答系统架构的架构示意图;

图4为本发明的问答模板示例的示意图;

图5为本发明的TextCNN模型的架构示意图;

图6为本发明的BERT模型的架构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-6,本发明提供一种技术方案:

一种基于模板匹配和深度学习的知识库问答系统构建方法,包括如下步骤:

S1:设计和构建问答模板,设计问答模板时,必须具有问答完备性,用户可能问到的问题都必须含有对应的一个问答模板,这部分要求设计人员对业务问题的充分调研,问答模板示例如图4所示;

S2:设计和构建本体图谱,根据实体数据和关系数据、场景业务和意图模板来设计本体图谱,便于高效访问图数据库得到答案,本体设计示例如图2 所示。

S3:构建标记层,将公司名称、时间、地点业务所涉及到的实体标记为对应的标记形成标记层;

问句中可能含有两个有顺序的实体,那么也可以训练标注模型来识别有顺序的索引1实体和索引2实体。当然也可以通过设计正则模板在一定程度上解决这个问题;

S4:构建触发层,正则模板可能会有很多,如果都去匹配,效率太慢,因此使用触发机制,缩小匹配范围,从而提高匹配效率,触发机制分为意图触发和问题触发,用户输入不规范、用户输入过于灵活,用户输入的部分词语同义词过多,使用意图分类作为触发机制的补充手段,对问句进行意图模型分类,打一个标签,需根据业务提前设计好标签和对应问题分类,该部分使用TextCNN模型来预测分类;

TextCNN模型结构如图5所示,具体流程如下所述:

TextCNN神经网络主要以CNN网络对文本信息进行特征的抽取,在图像的处理上,CNN的特征抽取能力是非常强的。我们把词向量的维度和文本的长度当成另一个维度是可以构成一个矩阵的,于是,CNN便可以在文本进行卷积核的计算(文本的特征抽取)。此时,卷积核的大小就相当于N-Gram的特征了。 TextCNN使用预先训练好的词向量作EmbeddingLayer。对于数据集里的所有词,因为每个词都可以表征成一个向量,因此我们可以得到一个嵌入矩阵MM, MM里的每一行都是词向量。这个MM可以是静态的,也就是固定不变。可以是非静态的,也就是可以根据反向传播更新。TextCNN中的实现步骤中是有Max Pooling的一步的。具体过程是多个卷积核对文本进行滑动获取语义特征,而 CNN中的卷积核是能保留特征之间的相对位置的,因为卷积核是滑动的,从左至右滑动,因此捕获到的特征也是如此顺序排列,所以它在结构上已经记录了相对位置信息了。但是卷积层后面立即接上Pooling层的话,Max Pooling 的操作逻辑是:从一个卷积核获得的特征向量里只选中并保留最强的那一个特征,所以到了Pooling层,位置信息就被损失掉了(信息损失)。因此在对应需要捕获文本的词序信息特征时,Pooling层应该需要添加上位置信息;

S5:构建匹配层,定义正则表达式变量以及导入词典集合文件;

定义正则表达式变量:能够重复使用正则表达式,方便编写正则模板。

导入词典集合文件:定义一个正则表达式变量表示文件中的词语皆可表示,比如${weather}表示天气文件中的各类天气如晴天、阴天和雨天,则“今天是${weather}吗”转换为“今天是[晴天|阴天|雨天]吗”。

如果匹配到多个正则,使用优先级或文本匹配作为正则匹配的补充手段。如果匹配不到正则,使用文本匹配作为正则匹配的补充手段。本部分使用BERT 模型编码句子向量,然后使用COS余弦计算句子之间的相似度。BERT模型如图6所示,具体解释如下所述:

BERT模型的全称是:Bidirectional Encoder Representations fromTransformer。从名字中可以看出,BERT模型的目标是利用大规模无标注语料训练、获得文本的包含丰富语义信息的Representation,即:文本的语义表示,然后将文本的语义表示在特定NLP任务中作微调,最终应用于该NLP任务。BERT本质上是一个两段式的NLP模型。第一个阶段叫做:Pre-training,跟WordEmbedding类似,利用现有无标记的语料训练一个语言模型。第二个阶段叫做:Fine-tuning,利用预训练好的语言模型,完成具体的NLP下游任务。BERT是一个强大的预训练,因其超大的参数量和较强的特征提取能力,能够从海量的语料中学习到一些语言学和一定程度的语义信息;

S6:构建对齐层,包括ES搜索和模型预测;比如数据库中的实体企业是全称,用户输入问句后抽取到的实体可能是简称、也有可能是部分,或错别字;通过使用ES引擎来实现实体对齐这个功能。另外考虑公司名字后面的“公司”或“有限公司”等会严重影响查询性能,在ES建索引时就去除名字后面的字或者在搜索查询时去除搜索词中的共有性词;

S7:构建查询层,将实例化的模板查询语句提交图数据库进行查询,图查询语句所返回的查询结果类型统一为:Array[Map[String,Any]];

GQ类型主要有查询实体集合和查询关系集合。

查询实体集合有以下形式(实体和关系都可以有过滤条件,类型过滤和属性过滤):

类型+属性=>实体

实体+关系=>实体

实体+关系+实体+关系=>实体

查询关系集合有以下形式:

实体+实体=>关系

GQ模板:含有形式参数的GQ模板用JSON表示。实体所表示的地方用$num 表示,num对应于正则表达式中实体的位置(从1开始)。

type(String):GQ类型;

patterns(Array[JSON]):顶点和边的链式表示,即 vertex1-edge1-vertex2,按顺序书写;顶点和边都用json表示:

name(String):即vertex1、edge1、vertex2

type(String):顶点或边的类型,用逗号分隔

filters(Array[JSON]):筛选条件集合,包含四个字段:field、operator、 value、type。

target(JSON):返回的对象和计算类型,具体如下所示:

name(String):返回的即vertex1、edge1、vertex2

type(String):顶点或边的类型,用逗号分隔

aggregate(String):指定查询集合的聚合类型,包含sum、max、min

fields(Array[String]):指定顶点或边的属性值字段,用逗号分隔

查询语句如下所示:

{"type":"1","patterns":[{"name":"vertex1","type":"Comapny","filters":[{"field":"name","operator":"=","value":"${1}","type":"stri ng"}]}],"target":{"name":"vertex1","aggregate":"","type":"Company", "fields":"capital"}};

{"type":"2","patterns":[{"name":"vertex1","type":"Person","fil ters":[{"field":"name","operator":"=","value":"${1}","type":"strin g"}]},{"name":"edge1","type":"invest"},{"name":"vertex2","type":"C ompany"}],"target":{"name":"vertex2","aggregate":"","type":"Compan y","fields":"name"}}

S8:构建装饰层,对查询结果进行解析并装饰。

进一步的,在步骤S3中,当问句中可能含有两个有顺序的实体,则训练标注模型来识别有顺序的索引1实体和索引2实体,用JSON表示,装饰语句示例如下所示:

{"headFormat":"${1}投资的公司有:\n@{*}"}

装饰具体由下面两部分组成:

headFormat(String):指定答案的标题格式,可以使用两种形式数据:

1、正则表达式所抽取出的实体值,用“${num}”表示,num表示对应位置的值,从1开始;

2、图查询整体结果,用“@{*}”表示。

rowFormat(String):指定答案中图查询结果每一条记录的装饰格式,可以使用两种形式数据:

1、正则表达式所抽取出的实体值,用“${num}”表示,num表示对应位置的值,从1开始;

2、图查询每条记录。对于aggregate类型,只有“${A1}”一种表示;对于fields类型,用“@{Fnum}”表示,num表示对应GQ模板target中fields 的字段索引,从1开始。

进一步的,在步骤S4中,TextCNN模型中的TextCNN神经网络主要以CNN 网络对文本信息进行特征的抽取,把词向量的维度和文本的长度当成另一个维度用于构成一个矩阵,CNN网络用于在文本进行卷积核的计算或者文本的特征抽取,将TextCNN使用预先训练好的词向量作Embedding Layer,将数据集里的词表征成一个向量,用于得到一个嵌入矩阵MM,MM里的每一行都是词向量,所述MM是静态的或者非静态的,或者根据反向传播更新,TextCNN中的实现具体过程是多个卷积核对文本进行滑动获取语义特征,而CNN中的卷积核是能保留特征之间的相对位置的,因为卷积核是滑动的,从左至右滑动,因此捕获到的特征也是如此顺序排列,所以它在结构上已经记录了相对位置信息了,但是卷积层后面立即接上Pooling层的话,Max Pooling的操作逻辑是:从一个卷积核获得的特征向量里只选中并保留最强的那一个特征,所以到了Pooling层,位置信息就被损失掉了(信息损失),因此在对应需要捕获文本的词序信息特征时,Pooling层应该需要添加上位置信息。

进一步的,所述正则表达式变量的定义为:能够重复使用正则表达式,方便编写正则模板;导入词典集合文件为定义一个正则表达式变量表示文件中的词语皆可表示,比如${weather}表示天气文件中的各类天气如晴天、阴天和雨天,则“今天是${weather}吗”转换为“今天是[晴天|阴天|雨天]吗”;如果匹配到多个正则,使用优先级或文本匹配作为正则匹配的补充手段,如果匹配不到正则,使用文本匹配作为正则匹配的补充手段,该部分使用BERT 模型编码句子向量,然后使用COS余弦计算句子之间的相似度。

进一步的,所述BERT模型具体如下:

BERT模型的全称是:Bidirectional Encoder Representations fromTransformer。从名字中可以看出,BERT模型的目标是利用大规模无标注语料训练、获得文本的包含丰富语义信息的Representation,即:文本的语义表示,然后将文本的语义表示在特定NLP任务中作微调,最终应用于该NLP任务。BERT本质上是一个两段式的NLP模型。第一个阶段叫做:Pre-training,跟WordEmbedding类似,利用现有无标记的语料训练一个语言模型。第二个阶段叫做:Fine-tuning,利用预训练好的语言模型,完成具体的NLP下游任务。BERT是一个强大的预训练,因其超大的参数量和较强的特征提取能力,能够从海量的语料中学习到一些语言学和一定程度的语义信息。

关于用户问句的解析,实体抽取通过BiLSTM+CRF模型来解决。命名实体识别(NER)是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。命名实体识别是信息提取、问答系统、句法分析、机器翻译等应用领域的重要基础工具,作为结构化信息提取的重要步骤。LSTM的优点是能够通过双向的设置学习到观测序列(输入的字)之间的依赖,在训练过程中,LSTM能够根据目标(比如识别实体)自动提取观测序列的特征,但是缺点是无法学习到状态序列(输出的标注)之间的关系,要知道,在命名实体识别任务中,标注之间是有一定的关系的,比如B类标注(表示某实体的开头)后面不会再接一个B类标注,所以LSTM在解决NER这类序列标注任务时,虽然可以省去很繁杂的特征工程,但是也存在无法学习到标注上下文的缺点。条件随机场可以把label的上下文学出来。CRF的优点就是能对隐含状态建模,学习状态序列的特点,但它的缺点是需要手动提取序列特征。所以一般的做法是,在LSTM后面再加一层CRF,以获得两者的优点。把CRF 接到LSTM上面,把LSTM在time_step上把每一个hidden_state的向量输入给CRF,让LSTM负责在CRF的特征限定下,依照新的损失函数,学习出一套新的非线性变换空间。如图1所示,BiLSTM层的输入表示该单词对应各个类别的分数。如W0,BiLSTM节点的输出是1.5(B-Person),0.9(I-Person),0.1(B-Organization),0.08(I-Organization)and 0.05(O)。这些分数将会是CRF层的输入。所有的经BiLSTM层输出的分数将作为CRF层的输入,类别序列中分数最高的类别就是我们预测的最终结果。

对用户意图的分析问题,本发明采用以模板匹配为主、以模型预测为辅的结合方式。以模板匹配为主,使得问答意图分析更加准确;以模型预测为辅,弥补模板匹配可能匹配不到的缺陷。

对于实体对齐,本发明采用以ES搜索匹配为主、以模型预测为辅的结合方式。elasticsearch简写ES,ES是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。全文搜索搜索引擎数据库中的数据。以ES 搜索匹配为主,使得实体对齐更加准确和快速;以模型预测为辅,弥补ES搜索可能匹配不到的缺陷。

关于构建查询语句,本发明定义了图数据库查询的语句形式,用JSON格式表示,这也使得在扩展图数据库时能够很容易地修改和兼容。

如图3所示,本实施例以北京海致星图科技有限公司举例说明本发明构建的基于模板匹配和深度学习的知识库问答系统的使用流程。

综上所述,本发明使用模板匹配和模型预测结合、ES搜索和模型预测结合的方式,使得问答系统的覆盖率和准确率更高,增强了问答系统的健壮性。

本发明考虑了问句的多样性,扩大了问答的范围和形式,使得问答系统变得更加丰富。

本发明中未涉及部分均与现有技术相同或可采用现有技术加以实现。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号