# Noms de fichiers et partitions

Pour héberger et partager votre jeu de données, créez un dépôt de jeu de données sur le Hugging Face Hub et téléversez vos fichiers de données.

Ce guide vous montre comment nommer vos fichiers et répertoires dans votre dépôt de jeu de données lors de son téléversement et activer toutes les fonctionnalités du Hub des jeux de données, comme le Dataset Viewer. Consultez la [collection d’exemples de jeux de données](https://huggingface.co/collections/datasets-examples/file-names-and-splits-655e28af4471bd95709eb135) pour plus de détails.

Un jeu de données doté d'une structure prise en charge et de [formats de fichiers](./datasets-adding#file-formats) appropriés dispose automatiquement d'un visualiseur de jeu de données sur sa page du Hub.

Notez que si aucune des structures ci-dessous ne convient à votre cas, vous pouvez avoir plus de contrôle sur la manière dont vous définissez les splits et les sous-ensembles avec la [Configuration manuelle](./datasets-manual-configuration).

## Cas d’usage de base

Si votre jeu de données n'est pas divisé en [ensembles d'entraînement/validation/test](https://en.wikipedia.org/wiki/Training,_validation,_and_test_data_sets), la structure la plus simple est d'avoir un seul fichier : `data.csv` (cela fonctionne avec tout [format de fichier pris en charge](./datasets-adding#file-formats) et tout nom de fichier).

Votre dépôt contiendra également un fichier `README.md`, la [fiche de jeu de données](./datasets-cards) affichée sur la page de votre jeu de données.

```
my_dataset_repository/
├── README.md
└── data.csv
```

## Splits

Certains motifs dans le dépôt de jeu de données peuvent être utilisés pour affecter certains fichiers aux ensembles d'entraînement/validation/test.

### Nom de fichier

Vous pouvez nommer vos fichiers de données d’après les sous-ensembles `train`, `test` et `validation` :

```
my_dataset_repository/
├── README.md
├── train.csv
├── test.csv
└── validation.csv
```

Si vous n'avez pas de splits non traditionnels, vous pouvez placer le nom du split n'importe où dans le fichier de données. La seule règle est que le nom du split doit être délimité par des caractères non alphanumériques, comme `test-file.csv` par exemple, plutôt que `testfile.csv`. Les délimiteurs pris en charge incluent les tirets bas, les tirets, les espaces, les points et les chiffres.

Par exemple, les noms de fichiers suivants sont tous acceptables :

- train split : `train.csv`, `my_train_file.csv`, `train1.csv`
- ensemble de validation : `validation.csv`, `my_validation_file.csv`, `validation1.csv`
- jeu de test : `test.csv`, `my_test_file.csv`, `test1.csv`

### Nom du répertoire

Vous pouvez placer vos fichiers de données dans des répertoires distincts nommés `train`, `test` et `validation`, où chaque répertoire contient les fichiers de données correspondant à cette partition :

```
my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   └── data.csv
    ├── test/
    │   └── more_data.csv
    └── validation/
        └── even_more_data.csv
```

### Mots-clés

Il existe plusieurs façons de désigner les partitions d’entraînement/validation/test. Les partitions de validation sont parfois appelées « dev », et les partitions de test peuvent être désignées par « eval ». Ces autres noms de partitions sont également pris en charge, et les mots-clés suivants sont équivalents :

- train, entraînement
- validation, valide, val, dev
- test, testing, eval, evaluation

Par conséquent, la structure ci-dessous est un dépôt valide :

```
my_dataset_repository/
├── README.md
└── data/
    ├── training.csv
    ├── eval.csv
    └── valid.csv
```

### Plusieurs fichiers par split

Les segments peuvent s'étendre sur plusieurs fichiers, par exemple :

```
my_dataset_repository/
├── README.md
├── train_0.csv
├── train_1.csv
├── train_2.csv
├── train_3.csv
├── test_0.csv
└── test_1.csv
```

Assurez-vous que tous les fichiers de votre ensemble `train` contiennent *train* dans leur nom (idem pour les ensembles de test et de validation). Vous pouvez même ajouter un préfixe ou un suffixe à `train` dans le nom du fichier (par exemple `my_train_file_00001.csv`).

Pour plus de commodité, vous pouvez également placer vos fichiers de données dans différents répertoires. Dans ce cas, le nom de la partition est déduit du nom du répertoire.

```
my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   ├── shard_0.csv
    │   ├── shard_1.csv
    │   ├── shard_2.csv
    │   └── shard_3.csv
    └── test/
        ├── shard_0.csv
        └── shard_1.csv
```

### Nom de split personnalisé

Si les divisions de votre jeu de données ont des noms personnalisés qui ne sont pas `train`, `test` ou `validation`, vous pouvez nommer vos fichiers de données comme `data/<split_name>-xxxxx-of-xxxxx.csv`.

Voici un exemple avec trois splits, `train`, `test` et `random` :

```
my_dataset_repository/
├── README.md
└── data/
    ├── train-00000-of-00003.csv
    ├── train-00001-of-00003.csv
    ├── train-00002-of-00003.csv
    ├── test-00000-of-00001.csv
    ├── random-00000-of-00003.csv
    ├── random-00001-of-00003.csv
    └── random-00002-of-00003.csv
```

