KBQA数据集整理(一):LC-QuAD 1.0

916 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

导语

KBQA 知识图谱问答(Knowledge Base Question Answering,简称KBQA)是指利用机器对自然语言分析与处理能力,理解用户所提出的问题,并利用知识图谱中的结构化知识进行查询、推理,找到解决该问题的精准答案并反馈给用户,协助用户解决不同类型的问题的任务。在KBQA领域中,最重要的一环就是将用户的自然语言问句转换为知识图谱查询语句,即SPARQL语句。本篇博客主要记录一个经典的数据集LC-QuAD 1.0的相关资料。

简介

随着大规模知识库(KBs)的出现,如DBpedia、Freebase和Wikidata,结构化数据上的问答(QA)已经成为一个主要的研究主题。在结构化数据上的QA系统,是用户用他们自己的术语用自然语言提出问题,并从系统获得简洁的回答。这些系统使用结构化数据作为背景知识,经常将QA问题建模为将自然语言问题(NLQ)转换为正式的查询语言表达式,如SPARQL或λ-Calculus表达式。

在LC-QuAD创建之前,常用的KBQA数据集例如Free917,QALD-6包含的标注数目都比较少(Free917包含917个example,QALD-6包含550个example),LC-QuAD是第一个大型的包含复杂SPARQL查询的数据集,包含一共有5000个数据样例。

相关工作

数据量生成的工作流

下图展示了LC-QuAD数据集的生成过程,

image.png

数据集的生成框架与以往先提问题,然后人工标注不同,LC-QuAD使用一种反向的过程:

  1. 创建一系列的SPARQL模板、seed entity列表和谓词白名单;
  2. 对于每一个seed entity,从DBpedia中提取subgraph,其中包含的三元组在seed entity两跳范围内;
  3. 通过使用subgraph中的三元组,将这些模板转化为有效的SPARQL语句。

同时,为了避免产生相似的问题,作者对子图进行了修剪,以避免产生类似的问题。所谓的相似在这里定义如下:拥有同样的SPARQL模板、谓词和相同的RDF类型的实体。

下表展示了数据集中的几个样例,

image.png

本文对于特定的SPARQL模板,为他们人工创建对应的自然语言模板,然后将实体和谓词填入进去。最后,只需要找人将这些机械、生硬甚至有语法错误的模板进行语法纠正和同义解释就可以。(其中Normalized Natural Question Templates (NNQT).)

通过这种方式,使用NNQT,作者将解释和表述SPARQL查询的任务转换为更简单的语法纠正和解释任务,从而减少了数据集生成过程所需的领域专业知识。这样需要的标注人员并不用精通或者了解SPARQL语句,只需要native English speaker就行。

数据集特征

数据集统计指标如下:

image.png

可以看到,相对于之前的两个复杂KBQA数据集,LC-QuAD有着更大的数据规模和实体数目,同时也给出了对应的SPARQL语句。所有的数据依赖于DBpedia 2016-04版本的sparql endpoint进行执行。

总结

本篇博客介绍了KBQA领域第一个大型的复杂Text2SPARQL数据集,所有的数据以一种半人工的方式在DBpedia上进行标注,为后续的研究提供了很好的资源。