基于知识图谱的问答系统(上)
基于知识图谱的问答系统(上)
本项目是基于知识图谱的问答系统,BERT+BILSTM+CRF做命名实体识别和句子相似度比较,最后实现线上的部署。
项目的分以下步骤进行描述:
- 1-问答QA系统简单介绍
- 1.1-问答系统目标
- 1.2-问答系统分类
- 1.3-问答系统框架 - 2-知识库问答KB-QA介绍
1-问答QA系统简单介绍
-1.1-问答系统目标
总目标:给定一个自然语言的问题,能够得到简短、精确的答案。或是⼀个能回答任意⾃然语⾔形式问题的⾃动机。
-1.2-问答系统分类
-1.3-问答系统框架
⼀个较完整的问答系统流程主要有以下三步:
- 1-问题分析模块
总的⽬标:如何去分析问题
问题分析模块主要负责对⽤户的提问进⾏处理,⽐如,“华⼭在哪⾥?”问题分析模块通过对这个问题的
分析,就可以知道⽤户是在问华⼭的地理位置。问题的分析⼀般包括:
⽣成查询关键词(提问关键词,扩展关键词,…)
确定提问答案类型(PER, LOC, ORG, TIM, NUM, …)
确定提问的句法、命名实体、语义表示等等。 - 2-问题回答模块(信息检索)
总的⽬标:如何根据问题的分析结果去缩⼩答案可能存在的范围。这个过程包含
2.1.信息抽取
⽅法描述:从问句中提取关键词语,⽤信息检索的⽅法找出包含候选答案的段落或句⼦,然后基于问答
类型⽤信息抽取的⽅法从备选答案集中提取出最佳答案。
检索过程:段落或者句⼦级排序,利⽤不同类型关键词的加权组合
答案抽取过程:根据问答类型从排序后的段落或句⼦中抽取答案
2.2.模式匹配
基本思想:对于某些提问类型(某⼈的出⽣⽇期、原名、别称等),问句和包含答案的句⼦之间存在⼀
定的答案模式,该⽅法在信息检索的基础上根据这种模式找出答案。因此如何⾃动获取某些类型提问的
尽可能多的答案模式是其中的关键技术。
举个例⼦:
问题⽂本:1968年的今天,加州斯坦福研究所的道格·恩格勒巴特发明了世界上第⼀只⿏标。最初恩格
勒巴特给⿏标 起的名字叫“显示位置纵横显示器”最初的⿏标不过是⼀个⽊盒拖着⼀根绳⼦。但⼀个“⿏
标”(Mouse)的⼩名却⻛靡天下。就是这⽆名⿏辈,竟让世界发⽣了天翻地覆的变化。……
如下给出了⼀个发明家(INVENTOR)型问题的的答案模式及其答案匹配过程:
问题:⿏标是谁发明的?
先由问题解析问题类型< Question Type>和问题词< Q_tag>,这个⽅法略过。
问题类型< Question Type>:发明家(INVENTOR)
问题词< Q_tag>:⿏标
我们要求的是答案< A>,然后根据候选句的评分,进⾏排序,返回前n句中匹配到的答案项。
1.0 < A> 发明 < Q_tag>
1.0 < Q_tag> 被 < A> 发明
0.83 < A> 的 发明 < Q_tag>
0.79 < A> < Q_tag> 的 发明者
0.50 < A> (< Q_tag>)
……
匹配到的模式:1.0 < A> 发明 < Q_tag>
匹配到的答案:道格·恩格勒巴特(如上⽂本⿊体加粗⽂字)
2.3.问答
给定⾃然语⾔问题,通过对问题进⾏语义理解和解析,利⽤知识库进⾏查询、推理得出答案。 其特点
是,回答的答案是知识库中的实体。 KBQA问答是我们本项⽬的重点,具体的下个章节论述。 - 3-答案⽣成模块
总的⽬标:如何从可能存在答案的信息块中抽取答案。
⼀般搜索引擎返回的是⼀堆⽹⻚,⽽问答系统需要返回的是简短的答案。这样,通过信息检索模块
搜索出来的相关⽂档就要提交给答案抽取模块来提炼答案。答案可以是⼀句话,或者是⼏句话,也
可以是⼏个词或者短语。对于那些问时间地点的问题,就可以⽤很短的语句来回答,⽽对于询问原
因、事件的问题就需要较⻓的语句才能回答。⽐如对于问题“9.11事件的是怎么回事?”就不可能⽤
⼀句话就能回答的。所以答案的抽取还需要依据问题的类型。
最后是⽤户⾏为反馈,就是怎么样根据⽤户的结果去指导我们去做更好对话模型的理解。
2-知识库问答KB-QA介绍
参考:揭开知识库问答KB-QA的面纱1·简介篇 这篇博客介绍的很详细。内容速览:
- 什么是知识库(knowledge base, KB)
- 什么是知识库问答(knowledge base question answering, KB-QA)
- 知识库问答的主流方法
- 知识库问答的数据集
参考:揭开知识库问答KB-QA的面纱2·语义解析篇 内容速览:
- 什么是语义解析(Semantic Parsing)
- 什么是逻辑形式(Logic Form)
- 语义解析KB-QA的方法框架
- 实验结果
参考:揭开知识库问答KB-QA的面纱3·信息抽取篇 内容速览:
- 你是如何通过知识库回答问题的
- 如何确定候选答案
- 如何对问题进行信息抽取
- 如何筛选候选答案
- 论文实验与总结
参考:揭开知识库问答KB-QA的面纱4·向量建模篇 内容速览:
- 向量建模的核心思想
- 如何用分布式表达表示答案和问题
- 如何训练分布式表达
- 论文实验与总结
下半部分我们来介绍关于项目的部分。