# Hub에서 데이터셋 로드

재현 가능하고 접근성이 높은 고품질 데이터셋을 찾는 것은 쉽지 않습니다. 🤗 Datasets의 주요 목표 중 하나는 어떤 형식이나 유형의 데이터셋이든 쉽게 로드할 수 있는 방법을 제공하는 것입니다. 가장 쉬운 시작 방법은 [Hugging Face Hub](https://huggingface.co/datasets)에서 기존 데이터셋을 발견하는 것입니다. Hugging Face Hub는 NLP, 컴퓨터 비전, 오디오 작업에 대한 데이터셋의 커뮤니티 주도 컬렉션입니다. 🤗 Datasets를 사용하여 해당 데이터셋을 다운로드하고 생성할 수 있습니다.

이 튜토리얼에서는 [rotten_tomatoes](https://huggingface.co/datasets/rotten_tomatoes)와 [MInDS-14](https://huggingface.co/datasets/PolyAI/minds14) 데이터셋을 사용하지만, 원하는 데이터셋을 로드하여 따라 해보셔도 됩니다. 지금 바로 Hub로 이동하여 작업에 맞는 데이터셋을 찾아보세요!

## 데이터셋 로드

데이터셋을 다운로드하기 전에, 데이터셋에 대한 일반적인 정보를 빠르게 확인하는 것이 유용한 경우가 많습니다. 데이터셋의 정보는 [DatasetInfo](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetInfo)에 저장되며, 데이터셋 설명, features, 데이터셋 크기 등의 정보를 포함할 수 있습니다.

[load_dataset_builder()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset_builder) 함수를 사용하여 데이터셋 빌더를 로드하고, 다운로드를 확정하지 않고 데이터셋의 속성을 검사할 수 있습니다:

```py
>>> 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()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)로 로드하세요:

```py
>>> from datasets import load_dataset

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

## 분할

Split은 `train`과 `test`와 같은 데이터셋의 특정 부분 집합입니다. [get_dataset_split_names()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.get_dataset_split_names) 함수를 사용하여 데이터셋의 split 이름을 나열할 수 있습니다:

```py
>>> from datasets import get_dataset_split_names

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

이후 `split` 매개변수를 사용하여 특정 split를 로드할 수 있습니다. 데이터셋의 `split`를 로드하면 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 객체가 반환됩니다:

```py
>>> 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](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict) 객체를 반환합니다:

```py
>>> 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](https://huggingface.co/datasets/PolyAI/minds14) 데이터셋에는 서로 다른 언어의 오디오 데이터를 포함하는 여러 하위 데이터셋이 있습니다. 이러한 하위 데이터셋은 *configurations* 또는 *subsets*라고 불리며, 데이터셋을 로드할 때 하나를 명시적으로 선택해야 합니다. 구성 이름을 제공하지 않으면 🤗 Datasets는 `ValueError`를 발생시키고 구성을 선택하도록 알려줍니다.

[get_dataset_config_names()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.get_dataset_config_names) 함수를 사용하여 데이터셋에서 사용할 수 있는 모든 구성의 목록을 가져옵니다:

```py
>>> 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']
```

그런 다음 원하는 구성을 로드합니다:

```py
>>> from datasets import load_dataset

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

