查看原文
其他

中文机器阅读理解(片段抽取)数据集整理

刘聪NLP NLP工作站 2023-11-28

近期,在做阅读理解任务时,突然意识到每一次需要什么数据时,都是从网上现找,重新处理,很是麻烦。

因此,准备弄个Github项目记录自己整理的一些数据集。恰好之前,整理过中文摘要数据集汇总,最近又整理中文机器阅读理解数据集。

Github项目地址:https://github.com/liucongg/NLPDataSet

本博客对机器阅读理解数据进行详细描述。常见的机器阅读理解任务可以分为四种类型:完形填空、多项选择、片段抽取和自由回答;本次整理的机器阅读理解数据,仅为片段抽取任务类型数据。

整理不易,请多多关注、转发、点赞。也请多多关注本人知乎「刘聪NLP」,有问题的朋友也欢迎加我微信私聊。

我们的口号是“生命不止,学习不停”。

原始数据描述


数据集包括:DRCD、cmrc2018、chinese-squad、中医数据集、法研杯2019、莱斯杯机器阅读理解、疫情QA、WebQA、Dureader等9个数据集。
数据名称
数据连接
数据说明
DRCD
https://github.com/DRCKnowledgeTeam/DRCD
台达阅读理解资料集 Delta Reading Comprehension Dataset (DRCD) 属于通用领域繁体中文机器阅读理解资料集。  本资料集期望成为适用于迁移学习之标准中文阅读理解资料集。  本资料集从2,108篇维基条目中整理出10,014篇段落,并从段落中标注出30,000多个问题   
cmrc2018
https://hfl-rc.com/cmrc2018/
第二届“讯飞杯”中文机器阅读理解评测
chinese-squad
https://github.com/pluto-junzeng/ChineseSquad
中文机器阅读理解数据集,本数据集通过机器翻译加人工校正的方式从原始Squad转换而来,其中包括V1.1 和V2.0。由于部分翻译无法找到原文中的答案(短答案翻译和文档翻译有出入),故数据量对比原始英文版SQuAD 有所减少。
中医数据集
https://tianchi.aliyun.com/competition/entrance/531826/introduction
本次标注数据源来自中医药领域文本,包括【黄帝内经翻译版】、【名医百科中医篇】、【中成药用药卷】、【慢性病养生保健科普知识】四个主要来源,共标注 13000对(问题、文档、答案),来源于5000篇文档,每篇文档由人工标注产生1~4对(问题, 答案)对。
法研杯2019
http://cail.cipsc.org.cn:2019/
裁判文书中包含了丰富的案件信息,比如时间、地点、人物关系等等,通过机器智能化地阅读理解裁判文书,可以更快速、便捷地辅助法官、律师以及普通大众获取所需信息。本任务是首次基于中文裁判文书的阅读理解比赛,属于篇章片段抽取型阅读理解比赛(Span-Extraction Machine Reading Comprehension)。
莱斯杯机器阅读理解
https://www.heywhale.com/home/competition/5d142d8cbb14e6002c04e14a
本次竞赛将提供面向军事应用场景的大规模中文阅读理解数据集,围绕多文档机器阅读理解进行竞赛,涉及理解、推理等复杂技术。每个问题对应五篇候选文章,问题与篇章中的答案证据句间存在较大的语法与句式变化。需要在多篇章定位与深度理解的基础上,从存在干扰项的多篇文章中搜寻出最优答案,更富挑战性的是问题的答案可能需要结合至少两篇文章的相关内容,进行关联推断才能够准确得出。
疫情QA
https://www.datafountain.cn/competitions/424/datasets
任务将提供以疫情为主的政策数据集、用户问题以及标注好的答案片段,参赛者可自行通过对政策数据的分析、处理和组织,利用训练数据集训练智能问答算法,并在测试数据集上进行评测,评测指标为最终返回答案的准确性。
WebQA
https://kexue.fm/archives/4338
百度利用百度知道和其他资源,构建了一个这样的一个数据集,称为WebQA
Dureader
http://ai.baidu.com/broad/download?dataset=dureader
百度整理出来的阅读理解数据集,问题和文档均来自于百度搜索和百度知道,而答案是人工手动生成的,因此数据集更加切合真实场景。

清洗数据描述


将上述数据进行简单地数据清洗以及格式(sqaud格式)转换操作,为了方便读取;具体格式如下:
其中,version为str类型,表示哪个数据版本;data为一个list,里面包含多个字典,每个字典包含一篇文档对应的相关内容,有title、id、paragraphs等字段;
title为str类型,表示一篇文档的题目;id为str类型,表示文档的序号;paragraphs为一个list,内部包含多个字典,每个字典包含一个段落对应的相关内容,有context、qas等字段;
context为str类型,表示一个段落对应的文本;qas为一个字典,其中,question为str类型,表示问题文本;id为str类型,表示问题的序号;is_impossible为bool类型,表示该问题是否可以被回答,false为可以回答,true为不可以回答;answers为list类型,包含多个答案信息,每个答案为一个字典;
其中,text为str类型,表示答案文本;answer_start为int类型,表示答案所在段落文本的起始位置。
(1)DRCD数据清洗后,33953个问题,10014个段落,不能回答的问题个数为0。
(2)cmrc2018数据清洗后,14363个问题,3507个段落,不能回答的问题个数为0。
(3)chinese-squad数据清洗后,125892个问题,36100个段落,不能回答的问题个数为49443。
(4)中医数据集数据清洗后,18478个问题,5881个段落,不能回答的问题个数为20。
(5)法研杯2019数据清洗后,51333个问题,10000个段落,不能回答的问题个数为10413。
(6)莱斯杯机器阅读理解数据清洗后,24615个问题,24615个段落,不能回答的问题个数为0。数据清洗时,将文本用句号分割,选择最多5句,作为段落内容。答案为原始答案与段落f1值最高的片段。
(7)疫情QA清洗后,4999个问题,4999个段落,不能回答的问题个数为0。数据清洗时,将文本用句号分割,选择最多5句,作为段落内容。答案为原始答案与段落f1值最高的片段。
(8)WebQA数据清洗后,261713个问题,261713个段落,不能回答的问题个数为47971。
(9)Dureader数据清洗后,42901个问题,42901个段落,不能回答的问题个数为18268。数据仅使用了FACT类型里的ENTITY类数据,答案为原始答案与段落f1值最高的片段。不能回答的问题为fake答案中f1小于0.75的数据。
注意:上述数据中不可以回答的数据,并不一定是真的不可以回答,可能是由answer没有在context中find到,或者fock answer的f1值较低。
如何构造伪答案,见文章:https://zhuanlan.zhihu.com/p/75509030

数据下载


原始数据在上述的数据链接中就可以下载到,如果下载不到,或者想要直接获取所有数据的同学,可以私聊我。
清洗及格式转换后的数据,
下载链接:https://pan.baidu.com/s/1Q_ti7S7jQy7GN-ZjmZOYpg
提取码:02ta

数据读取


def read_mrc_data(path): with open(path, "r", encoding="utf-8") as fh: input = json.load(fh)["data"] for i, entry in enumerate(tqdm(input, desc="iter", disable=False)): for para in entry["paragraphs"]: context = para["context"] print("context:", context) for qa in para["qas"]: qas_id = qa["id"] question_text = qa["question"] print("question_text:", question_text) if len(qa["answers"]) != 0: for answer in qa["answers"]: answer_text = answer["text"] answer_start = answer["answer_start"] print("answer_text:", answer_text) print("answer_start:", answer_start) print("*"*30) exit()path = "data/medicine_data.json"read_mrc_data(path)
结果:
context: "胆石症的治疗应区别不同情况分别处理,无症状胆囊结石可不作治疗,但应定期观察并注意良好的饮食习惯。有症状的胆囊结石仍以胆囊切除术为较安全有效的疗法,此外,尚可采用体外震波碎石。胆管结石宜采用以手术为主的综合治疗。胆石症的家庭治疗可采用以下方法:\n(1)一般治疗 预防和治疗肠道寄生虫病和肠道感染,以降低胆石症的发病率。胆绞痛发作期应禁食脂肪等食物,采用高碳水化合物流质饮食;缓解期应忌食富含胆固醇的食物如脑、肝、肾、蛋黄等。\n(2)增进胆汁排泄 可选用50%硫酸镁10~15毫升,餐后口服,每日3次;胆盐每次口服0.5~1克,每日3次;去氢胆酸0.25克,每日3次,餐后服用。\n(3)消除胆绞痛 轻者可卧床休息,右上腹热敷,用硝酸甘油酯0.6毫克,每3~4小时一次,含于舌下;或阿托品0.5毫克,每3~4小时肌肉注射一次。重者应住院治疗。\n(4)排石疗法以中药治疗为主,若右上腹疼痛有间歇期,无明显发热及黄疸,苔薄白,脉弦,属气滞者,用生大黄6克、木香9克、枳壳9克、金钱草30克、川楝子9克、黄苓9克,水煎服。右上腹痛为持续性,且阵发性加剧,有明显发热及黄疸,舌红苔黄,question_text: 什么类型的胆囊结石可不作治疗?answer_text: 无症状胆囊结answer_start: 19question_text: 胆石症的治疗应注意什么?answer_text: 应区别不同情况分别处理answer_start: 7question_text: 胆管结石宜采用什么样的治疗方式?answer_text: 以手术为主的综合治疗answer_start: 95******************************

总结


数据是基础,有了数据不一定可以SOTA,但是没有数据是万万不能SOTA的。
就这样,我又水了一篇,哈哈哈~~~~
如果大家有其他的片段抽取式中文阅读数据的,欢迎补充!!!可以在评论中提出、也可以私聊我,也可以在github上pr。
喜欢的的同学们,记得点赞,关注,转发哟!!!

往期推荐

ACL2021论文之ChineseBERT:融合字形与拼音信息的中文预训练模型

授人以鱼不如授人以渔

ACL2021 Findings论文汇总及分类

ACL2021主会议论文汇总及分类

难负例如何影响向量检索模型?

SIGIR2021论文:基于Text-to-Text多视图学习的段落重排序

SIGIR2021之DvBERT模型:双视图蒸馏的句向量BERT模型

SIGIR2021之IDCM模型: 文档内部级联选择段落服务于文档排序

小布助手对话短文本语义匹配-周星星分享

Unilm对话生成之夸夸式闲聊机器人

中文摘要数据集汇总

超详细中文注释的GPT2新闻标题生成项目


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存