训练数据集加载方式

使用本地和远程数据集

Datasets 提供加载脚本来处理本地和远程数据集的加载。它支持几种常见的数据格式,例如:

Data formatLoading scriptExample
CSV & TSVcsvload_dataset("csv", data_files="my_file.csv")
Text filestextload_dataset("text", data_files="my_file.txt")
JSON & JSON Linesjsonload_dataset("json", data_files="my_file.jsonl")
Pickled DataFramespandasload_dataset("pandas", data_files="my_dataframe.pkl")

如表中所示,对于每种数据格式,我们只需要在函数中指定加载脚本的类型load_dataset(),以及data_files指定一个或多个文件路径的参数。让我们从从本地文件加载数据集开始;稍后我们将看到如何对远程文件执行相同的操作。

1、加载本地数据集

对于此示例,我们将使用SQuAD-it 数据集

要使用该load_dataset()函数加载 JSON 文件,我们只需要知道我们正在处理的是普通 JSON(类似于嵌套字典)还是 JSON Lines(行分隔的 JSON)。与许多问答数据集一样,SQuAD-it 使用嵌套格式,所有文本都存储在一个data字段中。这意味着我们可以通过指定参数来加载数据集,field如下所示:

from datasets import load_dataset

squad_it_dataset = load_dataset("json", data_files="SQuAD_it-train.json", field="data")

默认情况下,加载本地文件会创建一个DatasetDict带有拆分的对象train。我们可以通过检查squad_it_dataset对象看到这一点:

squad_it_dataset:

DatasetDict({
    train: Dataset({
        features: ['title', 'paragraphs'],
        num_rows: 442
    })
})

这向我们显示了与训练集关联的行数和列名。我们可以通过索引拆分来查看示例之一,train如下所示:

squad_it_dataset["train"][0]:

{
    "title": "Terremoto del Sichuan del 2008",
    "paragraphs": [
        {
            "context": "Il terremoto del Sichuan del 2008 o il terremoto...",
            "qas": [
                {
                    "answers": [{"answer_start": 29, "text": "2008"}],
                    "id": "56cdca7862d2951400fa6826",
                    "question": "In quale anno si è verificato il terremoto nel Sichuan?",
                },
                ...
            ],
        },
        ...
    ],
}

将训练数据集和测试数据集 放到一个 DatasetDict对象中,可以这样做:

data_files = {"train": "SQuAD_it-train.json", "test": "SQuAD_it-test.json"}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")

squad_it_dataset

DatasetDict({
    train: Dataset({
        features: ['title', 'paragraphs'],
        num_rows: 442
    })
    test: Dataset({
        features: ['title', 'paragraphs'],
        num_rows: 48
    })
})

也可以不用解压直接 加载训练数据集:

data_files = {"train": "SQuAD_it-train.json.gz", "test": "SQuAD_it-test.json.gz"}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")

2、加载远程数据集

我们可以直接指向data_filesSQuAD_it -*.json.gz URL,如下所示:

#https://github.com/crux82/squad-it/blob/master/SQuAD_it-train.json.gz
#https://github.com/crux82/squad-it/blob/master/SQuAD_it-test.json.gz

url = "https://github.com/crux82/squad-it/blob/master/"
data_files = {
    "train": url + "SQuAD_it-train.json.gz",
    "test": url + "SQuAD_it-test.json.gz",
}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值