【语料】百度的中文问答数据集WebQA
By 苏剑林 | 2017-04-12 | 225637位读者 |信息抽取 #
众所周知,百度知道上有大量的人提了大量的问题,并且得到大量的回复。然而,百度知道上的回复者貌似懒人居多,他们往往喜欢直接在网上复制粘贴一大片来作为回答内容,而且这些内容可能跟问题相关,也可能跟问题不相关,比如
https://zhidao.baidu.com/question/557785746.html
问:广州白云山海拨多高
答:广州白云山(Guangzhou Baiyun Mountain),是新 “羊城八景”之首、国家4A级景区和国家重点风景名胜区。它位于广州市的东北部,为南粤名山之一,自古就有“羊城第一秀”之称。山体相当宽阔,由30多座山峰组成,为广东最高峰九连山的支脉。面积20.98平方公里,主峰摩星岭高382米(注:最新测绘高度为372.6米——国家测绘局,2008年),峰峦重叠,溪涧纵横,登高可俯览全市,遥望珠江。每当雨后天晴或暮春时节,山间白云缭绕,蔚为奇观,白云山之名由此得来
事实上,对于这个问题来说,只有“主峰摩星岭高382米”这一句才是有意义的,如果更精炼些,那么只有“382米”是有意义的,其他基本上是废话。事实上,如何从大片相关文本中,为给定问题提取正确的、简明的答案,不论是对于人还是机器来说,都是一个难题。这不仅需要好的算法,还需要好的数据集进行训练。
WebQA #
为此,百度利用百度知道和其他资源,构建了一个这样的一个数据集,称为WebQA,目前是v1.0版:
http://idl.baidu.com/WebQA.html
百度利用这个数据集所做的论文:
Peng Li, Wei Li, Zhengyan He, Xuguang Wang, Ying Cao, Jie Zhou, and Wei Xu. 2016. Dataset and Neural Recurrent Sequence Labeling Model for Open-Domain Factoid Question Answering. arXiv:1607.06275 .
感谢百度!开源数据集是难能可贵的!
数据概览 #
这部分内容均转载自http://idl.baidu.com/WebQA.html
$$\begin{array}{c|c|lc|c}
\hline
& & \rlap{\text{Annotated Evidence}}\\
& \text{Question} & Positive & Negative & \text{Retrieved Evidence}\\
\hline
Training & 36,181 & 140,897 & 125,886 & 181,661\\
Validation & 3,018 & \,\,5,305 & / & 60,351\\
Training & 3,024 & \,\,5,315 & / & 60,465\\
\hline
\end{array}$$
发布的文件有267MB,但对于我们来说,里边的东西貌似有点过多了,因为里边包含了分词结果、序列标注结果、词向量结果,貌似是内部研究小组直接用来做的实验。对于我们来说,显然只需要纯粹的问答语料就行了。因此,我做了精简,仅保留了最基本的语料内容:
纯净版 #
链接: https://pan.baidu.com/s/1pLXEYtd 密码: 6fbf
文件列表:
WebQA.v1.0/readme.txt
WebQA.v1.0/me_test.ann.json (一个问题只配一段材料,材料中有答案)
WebQA.v1.0/me_test.ir.json (一个问题配多段材料,材料可能有也可能没有答案)
WebQA.v1.0/me_train.json (混合的训练语料)
WebQA.v1.0/me_validation.ann.json (一个问题只配一段材料,材料中有答案)
WebQA.v1.0/me_validation.ir.json (一个问题配多段材料,材料可能有也可能没有答案)test跟validation的区别是,理论上来说,validation的分布跟train的分布更加接近。一般而言,validation用来验证模型的精确度,test用来验证模型的迁移能力。ann与ir的区别是,因为ir给每个问题配置了多段材料,可以通过各段材料投票来得到更加可靠的答案;而ann则是一问一材料的形式,是真正考验阅读理解能力的测试集。
整理后的数据格式如下,以me_train.json为例:
1、如果用Python的json库读取后,得到一个字典me_train,字典的键是Q_TRN_010878这样的问题标号;
2、通过me_train['Q_TRN_010878']获得单条记录,每条记录也是一个字典,字典下有两个键:question和evidences;
3、me_train['Q_TRN_010878']['question']就可以获得问题的文本内容,如“勇敢的心霍笑林的父亲是谁出演的”;
4、evidences是问题的材料和对应答案,也是一个字典,字典的键是Q_TRN_010878#06这样的标号;
5、me_train['Q_TRN_010878']['evidences']['Q_TRN_010878#05']获得单条记录,也是一个字典,字典有两个键:evidence和answer;
6、evidence为对应的材料,如“答:《勇敢的心》霍绍昌与华夫人的儿子杨志刚饰霍啸林简介男主角,霍家少爷,领衔主演寇振海饰霍绍昌简介霍啸林的父亲‘举人’,主演史可饰华夫人简介霍啸林和赵舒城的母亲,主演”,answer是一个答案列表(因为答案可能有多个),如[u'寇振海'],如果材料中并没有答案,那么答案是[u'no_answer']。
这些都是跟原数据集一一对应的。
转载到请包括本文地址:https://kexue.fm/archives/4338
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Apr. 12, 2017). 《【语料】百度的中文问答数据集WebQA 》[Blog post]. Retrieved from https://kexue.fm/archives/4338
@online{kexuefm-4338,
title={【语料】百度的中文问答数据集WebQA},
author={苏剑林},
year={2017},
month={Apr},
url={\url{https://kexue.fm/archives/4338}},
}
May 11th, 2017
跪求楼主共享纯净版数据,链接失效了
谢谢提醒,已经更新链接~
June 19th, 2017
关于做QA这方面,苏神有没有什么相关的大致思路,最近做这个一直想用基于规则的方式,但又无从下手,烦请您指点一二
QA基本是基于问题之间的相似度匹配来做的,一般场景用传统的tfidf词袋效果就不错。
这样的QA是不是先做 question 和 evidence 匹配 再从匹配到的evidence里面通过RNN抽取答案(RNN这块细节还在思考ing)
August 15th, 2017
分享另外一个语料库,是面向垂直行业的常用问题集语料:https://github.com/Samurais/insuranceqa-corpus-zh。百度中文问答数据集WebQA是面向事实的模型训练,insuranceqa-corpus-zh是面向FAQ的。
August 16th, 2017
怎么会读不了这样的json文件。me_train=json.load(r'C:\\Users\\Administrator.PC-20150322XQVU\\Desktop\\me_train.json')
为什么呀?
报什么错
后来读出来了,可是为什么不是中文文本,都是标号类的?这种
"Q_ANN_VAL_002669": {"question": "\u9b4f\u56fd\u9886\u5bfc\u8005\u662f\u8c01", "evidences": {"Q_ANN_VAL_002669#00": {"answer": ["\u66f9\u4e15"],
求教呀
怎么样才能使读出来的是汉字呀? 大神,求指点一下^_^
本来就已经是汉字,请你自行去了解python中的文本编码(utf-8)
请问解决这个问题了吗
October 3rd, 2017
我在百度官网下载的数据集,下载后data文件夹里面都是压缩包,请问这些压缩文件是都要解压缩吗
关于百度官网的,我不做回答,有问题请咨询官方。
November 18th, 2017
苏神,你说的“通过各段材料投票来得到更加可靠的答案”具体怎么做的,能提供一个思路吗,是和PageRank类似的算法吗
January 19th, 2018
再次跪求楼主共享纯净版数据,链接又失效啦
感谢反馈,已经修正。
February 5th, 2018
请问还有百度原始提供的数据么?http://idl.biadu.com/WebQA.html 网页打不开了。
April 9th, 2018
test和validation的ir文件每对问题材料都是有答案的即使该材料中没有提到该答案,如下:
问题 材料 答案 我的标记
网球王国是? 网球ace球(本球全名ace11223,简称ace): ["英国"] 1
网球王国是? 现代的网球则于1873年12月由华尔特·科洛普顿·温菲尔德(waltercloptonwingfield)少校在英国发明,当时这个游戏是用来在后院的派对中取悦客人。 ["英国"] 1
网球王国是? 手球王国――联邦德国网球王国――英国 ["英国"] 1
网球王国是? 网球王国――英国水球王国――匈牙利 ["英国"] 1
网球王国是? 1912年3月1日,澳大利亚、英国、法国等12国的网协代表,在巴黎召开会议,成立了国际网球联合会,总部设在伦敦。 ["英国"] 1
网球王国是? 英国手球王国――联邦德国网球王国――英国 ["英国"] 1
网球王国是? 【网球术语】 ["英国"] 1
网球王国是? 而ace球就是网球发球动作的“杰作”。 ["英国"] 1
网球王国是? 网球王国:澳大利亚 ["英国"] 1
网球王国是? 答:世界上的体育王国足球王国――巴西篮球王国――美国网球王国――英国水球王国――匈牙利冰球王国――加拿大棒球王国――美国马球王国――巴基斯坦柔道王国――日本举重王国――保加利亚钓鱼王国――日本游泳王国――澳大利亚长跑王国――芬兰斗牛王国――西班... ["英国"] 1
网球王国是? 网球王国-英国 ["英国"] 1
此种情况下就只能通过判断材料中是否contain该答案的字符串来判断该材料是否回答了该问题了,这样会不会有很多噪音在里面,比如上述题目问“网球王国在哪”,材料比如说”英国的别称是大不列颠帝国,现在已经衰落“,这样也算是回答了该问题的材料吗?
April 9th, 2018
接上面问题(不好意思网络延迟上述问题问了2次),处理后,明显的会产生噪音:
比如下面该问题,第二个回答”鞋“没有完全匹配”鞋子“而被认为是错误的。
成语"削足适履"的"履"是指什么? 《淮南子·说林训》在评论这两件因遭人陷害,以致弟弟逼死哥哥、父亲杀死儿子的事件时就说出了成语削足适履的意思:“这种骨肉相残的事,好比为了适合鞋子的尺寸,把脚削小;为了适应帽子的大小,把脑袋削尖一样愚蠢。 ["鞋子"] 1
成语"削足适履"的"履"是指什么? 答:削足适履成语意思:适:适应;履:鞋。 ["鞋子"] 0
这是没有办法的,大部分材料通过“是否包含答案字符串”确实能定位答案位置,部分情况需要一些人为的规则,比如“广东省”和“广东”的等价性,才能找到答案。除此之外的情形,除了人工标注外,基本没有办法。只能寄望于大部分正确的情形能够具有足够多的代表性。
好的好的 明白了 谢谢您!