KBQA 的定义/概念/应用前景是什么?

知识库问答(knowledge base question answering, KB-QA)即给定自然语言问题,通过对问题进行语义理解和解析,进而利用知识库进行查询、推理得出答案。具体的,从应用领域的角度划分,知识库问答可以分为开放域的知识问答,如百科知识问答,和特定域的知识问答,如金融领域,医疗领域,宗教领域等,以客服机器人,教育/考试机器人或搜索引擎等形式服务于我们的日常生活。

KBQA 和 DBQA 的区别以及各自的应用场景是什么?

KBQA 是基于知识库的问答,DBQA 是基于文档的问答。换言之,KBQA 利用的是结构化的知识,而 DBQA 所利用的是非结构化的文本。数据源的不同决定了他们不同的擅长领域,KBQA 更适合回答 what,when 等事实性问题;DBQA 更适合回答 why,how 等解释性、 述性问题。

KBQA 传统方法框架及经典系统结构(问题解析,生成查询,答案检索及评分等)包括哪些子模块?涉及哪些技术点?代表系统在测试集上效果如何?

传统的 KBQA 系统根据其框架共同特征,都可以大概分为四个模块。这四个模块形成的整体框架,可以视为一个粗糙而通用的 pipeline。四个模块为:问题分析(Question Analysis)、短语映射(Phrase Mapping)、消歧(Disambiguation)和查询构建(Query Construction)。

3.1在问题理解模块中,使用所有可能的语言学特征,来抽取所需要的信息, 具体的包括识别命名实体、词性标注、句法分析等子任务。

3.2在短语映射模块中,是将短语与知识库中的资源,通过概率计算,进行映射和链接,可以从语义相似度和字符串相似度等两个角度进行计算。从字符串相似度的角度可以使用编辑距离,jaccard 距离进行计算,或是使用 Lucene 提供的 FUZZY 模糊查询来找出与问句短语最相近的 label。

计算语义相似度可以使用以下几种方法:重定向方法,即根据本体中的 sameas、或异构本体的锚联结(anchor)来寻找相同的属性或类,从而扩展短语和 label 的映射;使用抽取的知识找到映射关系,从语料中抽取自然语言的二元关系,并与本体知识库进行映射。相关工具有:ReVerb,TEXTRUNNER,WOE,PATTY 等。使用大型文档来找到映射关系,即通过大型文档语料库,将本体中的属性 p 进行 文字述的扩展,相关工具为 BOA。使用词向量 word2vec,计算自然问句短语和本体 label 之间相似度,从而进行映射。

3.3在消歧(Disambiguation)模块中,需要解决短语映射模块中出现的歧义问题,用各种技术来无歧义地确定短语映射的知识库实体。

第一种方法是使用字符串相似度,即通过本体资源的 label 和相应的自然语句短语来进行相似度计算,并进行排序;第二种方法是判断属性和其参数(如属性的 domain 和 range)是否一致,将不符合一致性的排除。具体地可以使用图搜索、隐马尔科夫模型(HMM)、整数线性规划(ILP)、马尔可夫逻辑网络(MLN)、结构化感知器(Structured Perceptron)等数学模型,或者采用人工反馈调整的方法。

3.4在查询构建(Query Construction)模块中,需要将前述三个模块生成的结果融合,得到最终的 SPARQL 查询语句,并将其返回用户,可分为基于模板、基于问题分析中得到的信息、基于机器学习和基于语义信息构建查询 SPARQL 语句。

基于模板建立查询是建立起实现设计好的查询模板,其中包含一些空槽,需要将相关信息填入后形成一个完整的查询。另外还可以通过语法树分析、依存树分析或语法槽等方法,解构自然语言形成查询。同时也有一些工作通过机器学习的方法建立问句与查询语句之间的映射关系。 绝大多数系统的功能都可以划分为这四个模块,这四个模块的顺序可能不尽相同,但是不同系统中每个模块完成的功能都是一致的。

IBM Watson/Microsoft DeepQA 等成熟业界问答系统 KBQA 部分的解决方案

Watson 是问答系统领域的一座里程碑,作为一个工程项目,Watson 中应用了非常多的方法和技巧。

由框架图可以看到 Watson 中 DBQA 与 KBQA 均发挥着重要作用,其针对 KBQA 进行优化主要体现在候选答案生成模块的查询生成部分,详情可参阅本文 3.4 部分。

值得读的论文和开源项目(侧重于工程实用)

推荐知识问答领域较著名的测评 QALD:

https://qald.sebastianwalter.org/

官网中有历年获奖系统的论文,部分系统公布了开源代码。

推荐阅读 IBM watson 系统相关论文集 IBM Journal of Research and Development 2012:

http://researcher.watson.ibm.com/researcher/view_group_pubs.php?grp=209 9

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

计算机网络从入门到放弃,自由讨论 | KBQA从入门到放弃—入门篇相关推荐

  1. 揭开知识库问答KB-QA的面纱3·信息抽取篇

    内容速览 你是如何通过知识库回答问题的 如何确定候选答案 如何对问题进行信息抽取 如何筛选候选答案 论文实验与总结 本期我们将介绍KB-QA传统方法之一的信息抽取(Information Extrac ...

  2. 揭开知识库问答KB-QA的面纱4·向量建模篇

    内容速览 向量建模的核心思想 如何用分布式表达表示答案和问题 如何训练分布式表达 论文实验与总结 本期我们将介绍KB-QA传统方法之一的向量建模(Vector Modeling),我们以一个该方法的经 ...

  3. python入门教程傻瓜版_毫无基础的人如何入门 Python ?Python入门教程拿走不谢啦!...

    随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 如果你是零基 ...

  4. 今晚直播丨国产数据库入门:openGauss数据库的基本管理和SQL语句入门

    国产数据库入门:openGauss数据库的基本管理和SQL语句入门 - 08/13 简介: 本讲座通过实验,学习管理openGauss数据库和SQL语言的使用: 通过学习基本的openGauss数据库 ...

  5. ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门 1

    ASP.NET Core 入门教程 6.ASP.NET Core MVC 视图布局入门 原文:ASP.NET Core 入门教程 6.ASP.NET Core MVC 视图布局入门 一.前言 1.本教 ...

  6. Camunda入门(四) - 流程应用(支付流程)入门示例

    参考文章:Camunda入门(四) - 流程应用(支付流程)入门示例_罗小爬EX的博客-CSDN博客_camunda入门 1. 支付流程 - 场景设定 为了快速上手Camunda,结合Camunda官 ...

  7. 全世界都可以放弃你,但是你不可以放弃你自己!

    昨天看到这样一个电影,故事中讲述了一个发人深省的哲理,故事中的主人公在一次比赛中讲的话,令人深思."全世界都可以放弃你,但是你不可以放弃你自己!" 这是美国的一部电影,它向我们讲了一个勇于坚持的一个职 ...

  8. python 量化分析 入门_【合辑·收藏】Python量化从入门到精通

    原标题:[合辑·收藏]Python量化从入门到精通 引言 自2018年9月27日发第一篇推文以来,公众号"Python金融量化"专注于分享Python在金融量化领域的实战应用,坚持 ...

  9. SpringAOP从入门到源码分析大全,学好AOP这一篇就够了(二)

    文章目录 系列文档索引 四.Spring AOP的使用入门 1.激活AspectJ模块 (1)注解激活 (2)XML激活 2.创建 @AspectJ 代理(了解) (1)编程方式创建 @AspectJ ...

最新文章

  1. 基于OpenCV的透视图转化为不同平面
  2. 升级到12c云数据库的最佳实践
  3. MVC在基控制器中实现处理Session的逻辑
  4. 报表中利用隐藏列对扩展格显示值求和
  5. pytest第一版 入门学习
  6. antd request 通过jsessionid传参数_Umi-request源码阅读
  7. 京东开普勒php接口,IOS菜鸟初学第十五篇:接入京东开普勒sdk,呼起京东app打开任意京东的链接-Go语言中文社区...
  8. python怎样安装模块_python中如何安装模块
  9. pycharm pyqt5 pyrrc_编程基础 | Pycharm安装、配置、快捷键
  10. 递归求n的阶层算法实现
  11. python 的内置方法zip()介绍
  12. mysql 命令行执行存储过程_mysql 命令行执行存储过程
  13. Solr服务器搭建与简单使用
  14. 可能最详细的教程,新手如何获取Zcash钱包(ZEC钱包)官方客户端地址的方法
  15. 如何去除word文档中向下的箭头
  16. java应用程序由若干个_Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中。...
  17. Python 简单的人名对话
  18. 2018推荐的android手机,2018年7月份Android手机性价比排行榜
  19. 弹幕插件easyDanmaku.js使用详解
  20. c语言初学——运算符和表达式

热门文章

  1. struts-step
  2. 华为机试HJ26:字符串排序
  3. 卷组删除pv_CentOS下删除一个卷组(VG)
  4. java sbt二叉树,Treap——堆和二叉树的完美结合,性价比极值的搜索树
  5. php 创建自定义文件夹,Laravel 自定命令以及生成文件的例子
  6. model存储 swift_使用Swift原生JSON-Model
  7. 测试思路系列:《谷歌的软件测试之道》读书笔记
  8. Python闭包基本介绍与作用
  9. linux16.04设置网络,ubuntu16.04之后网络IP配置
  10. marshaller java 乱码_Marshaller根据对象生成xml文件