SQuAD-1.1数据集介绍

我们下载的是train-v1.1.json.
用json打开
data=json.load(open(train-v1.1.json))

data是一个dict,长度是2,key是"data"和"version".
数据全在data[“data”]中
data[“data”]是一个长度为442的list,每一个元素是一个dict.
我们来看第一个元素:data[“data”][0]
这是一个dict,key是"title"和"paragraphs".
也就是说data[“data”]中每一个元素是一篇文章,用字典表示,文章的标题对应的key是title,文章中的所有段落用"paragraphs"表示.

paragraphs=data[“data”][0][“paragraphs”]

paragraphs是一个list,每一个元素代表这篇文章的一个段落,用一个dict表示,key是"context"和"qas".显然当前段落的文本就是"context"对应的字符串,而"qas"则是针对这个段落文本提出的问题和正确的答案。
question_and_answers=data[“data”][0][“paragraphs”][0][“qas”]
question_and_answers是整个数据集中所有段落的第一个段落的问题和答案。是一个list。每一个元素是一个dict。
在这里插入图片描述
如图,每一个元素表示的就是答案,问题,以及问题编号。答案中给出了答案的起始位置和答案的文本字符串。

下面用ppt画了一个草图
在这里插入图片描述
我们要的数据包括context,这代表一个段落,而对于这个段落会有几个问题和对应的答案,所以还需要question和text以及answer start,text就是question的答案。这个数据集好像一个question只有一个答案。

下面的数据处理代码希望帮助您理解

data=json.load(open("train-v1.1.json"))["data"]
result=[]
for each_article in data:
    assert type(each_article)==dict and list(each_article.keys())==["title","paragraphs"]
    paragraphs=each_article["paragraphs"]
    assert type(paragraphs)==list
    for each_paragraph in paragraphs:
        assert type(each_paragraph)==dict and list(each_paragraph.keys())==["context","qas"]
        context=each_paragraph["context"]
        #tokens_list=word_tokenize(context)
        qas=each_paragraph["qas"]
        assert type(qas)==list
        for each_qas in qas:
            assert type(each_qas)==dict and list(each_qas.keys())==["answers","question","id"]
            qa_id=each_qas["id"]
            question=each_qas["question"]
            answers=each_qas["answers"]
            assert type(answers)==list
            for each_answer in answers:
                assert type(each_answer)==dict and list(each_answer.keys())==["answer_start","text"]
                answer=each_answer["text"]
                s_idx=each_answer["answer_start"]
                e_idx=s_idx+len(answer)
                result.append({"id":qa_id,"context":context,"question":question,
                              "answer":answer,"s_idx":s_idx,"e_idx":e_idx})

result中的字段除了id外其余的就是我们训练需要的字段

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值