Datasets documentation

从 Hub 加载数据集

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

从 Hub 加载数据集

寻找高质量、可复现且易于访问的数据集可能颇具挑战。🤗 Datasets 的主要目标之一是提供一种简单的方式来加载任意格式或类型的数据集。最简单的入门方式是先在 Hugging Face Hub 上发现一个现有的数据集——这是一个由社区驱动的、涵盖自然语言处理、计算机视觉和音频等任务的数据集集合——然后使用 🤗 Datasets 来下载并生成该数据集。

本教程使用 rotten_tomatoes 和 MInDS-14 数据集,但您可以自由加载任何想要的数据集并跟随操作。现在就前往 Hub,为您的任务找到一个数据集吧!

加载数据集

在花时间下载数据集之前,快速了解数据集的一些基本信息通常很有帮助。数据集的信息存储在 DatasetInfo 中,可以包含数据集描述、特征和数据集大小等信息。

使用 load_dataset_builder() 函数加载数据集构建器,并在不实际下载数据集的情况下检查其属性:

>>> from datasets import load_dataset_builder
>>> ds_builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")

# Inspect dataset description
>>> ds_builder.info.description
Movie Review Dataset. This is a dataset of containing 5,331 positive and 5,331 negative processed sentences from Rotten Tomatoes movie reviews. This data was first used in Bo Pang and Lillian Lee, ``Seeing stars: Exploiting class relationships for sentiment categorization with respect to rating scales.'', Proceedings of the ACL, 2005.

# Inspect dataset features
>>> ds_builder.info.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}

如果您对数据集感到满意,请使用 load_dataset() 加载它:

>>> from datasets import load_dataset

>>> dataset = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")

拆分

Split 是数据集的特定子集,例如 train 和 test。使用 get_dataset_split_names() 函数列出数据集的 split 名称:

>>> from datasets import get_dataset_split_names

>>> get_dataset_split_names("cornell-movie-review-data/rotten_tomatoes")
['train', 'validation', 'test']

然后,您可以使用 split 参数加载特定的拆分。加载数据集的 split 会返回一个 Dataset 对象:

>>> from datasets import load_dataset

>>> dataset = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> dataset
Dataset({
    features: ['text', 'label'],
    num_rows: 8530
})

如果未指定 split,🤗 Datasets 将返回一个 DatasetDict 对象:

>>> from datasets import load_dataset

>>> dataset = load_dataset("cornell-movie-review-data/rotten_tomatoes")
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text', 'label'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 1066
    })
})

配置

某些数据集包含多个子数据集。例如,MInDS-14 数据集包含多个子数据集,每个子数据集都包含不同语言的音频数据。这些子数据集被称为配置或子集,在加载数据集时必须明确选择其中一个。如果未提供配置名称,🤗 Datasets 将引发ValueError,并提示您选择一个配置。

使用 get_dataset_config_names() 函数获取数据集所有可用配置的列表:

>>> from datasets import get_dataset_config_names

>>> configs = get_dataset_config_names("PolyAI/minds14")
>>> print(configs)
['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN', 'all']

然后加载您想要的配置:

>>> from datasets import load_dataset

>>> mindsFR = load_dataset("PolyAI/minds14", "fr-FR", split="train")
Update on GitHub