# Các lớp Builder

## Nhà xây dựng[[datasets.DatasetBuilder]]

🤗 Datasets dựa vào hai lớp chính trong quá trình xây dựng bộ dữ liệu: [DatasetBuilder](/docs/datasets/main/vi/package_reference/builder_classes#datasets.DatasetBuilder) và [BuilderConfig](/docs/datasets/main/vi/package_reference/builder_classes#datasets.BuilderConfig).

#### datasets.DatasetBuilder[[datasets.DatasetBuilder]]

```python
datasets.DatasetBuilder(cache_dir: typing.Optional[str] = None, dataset_name: typing.Optional[str] = None, config_name: typing.Optional[str] = None, hash: typing.Optional[str] = None, base_path: typing.Optional[str] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, features: typing.Optional[datasets.features.features.Features] = None, token: typing.Union[bool, str, NoneType] = None, repo_id: typing.Optional[str] = None, data_files: typing.Union[str, list, dict, datasets.data_files.DataFilesDict, NoneType] = None, data_dir: typing.Optional[str] = None, storage_options: typing.Optional[dict] = None, writer_batch_size: typing.Optional[int] = None, config_id: typing.Optional[str] = None, **config_kwargs)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L214)

**Tham số:**

cache_dir (`str`, *tùy chọn*) : Thư mục để lưu trữ bộ nhớ đệm dữ liệu. Mặc định là `"~/.cache/huggingface/datasets"`.

dataset_name (`str`, *tùy chọn*) : Tên của bộ dữ liệu, nếu khác với tên builder. Hữu ích cho các builder đóng gói như csv, imagefolder, audiofolder, v.v. để phản ánh sự khác biệt giữa các bộ dữ liệu sử dụng cùng một builder đóng gói.

config_name (`str`, *tùy chọn*) : Tên của cấu hình bộ dữ liệu. Nó ảnh hưởng đến dữ liệu được tạo trên đĩa. Các cấu hình khác nhau sẽ có các thư mục con và phiên bản riêng. Nếu không được cung cấp, cấu hình mặc định sẽ được sử dụng (nếu tồn tại).    Tham số `name` đã được đổi tên thành `config_name`.

hash (`str`, *tùy chọn*) : Hash đặc thù cho mã của dataset builder. Được dùng để cập nhật thư mục cache khi mã của dataset builder được cập nhật (để tránh việc tái sử dụng dữ liệu cũ). Thư mục cache điển hình (được định nghĩa trong `self._relative_data_dir`) là `name/version/hash/`.

base_path (`str`, *tùy chọn*) : Đường dẫn gốc cho các đường dẫn tương đối được sử dụng để tải xuống các tệp. Đây có thể là một URL từ xa.

features ([Features](/docs/datasets/main/vi/package_reference/main_classes#datasets.Features), *tùy chọn*) : Các kiểu Features để sử dụng với tập dữ liệu này. Ví dụ, có thể dùng để thay đổi các kiểu [Features](/docs/datasets/main/vi/package_reference/main_classes#datasets.Features) của một tập dữ liệu.

token (`str` hoặc `bool`, *tùy chọn*) : Chuỗi hoặc giá trị boolean dùng làm Bearer token cho các tệp từ xa trên Datasets Hub. Nếu là `True`, sẽ lấy token từ `"~/.huggingface"`.

repo_id (`str`, *tùy chọn*) : ID của kho dữ liệu. Được dùng để phân biệt các builder có cùng tên nhưng không thuộc cùng một namespace, ví dụ như ID kho "rajpurkar/squad" và "lhoestq/squad". Trong trường hợp sau, tên builder sẽ là "lhoestq___squad".

data_files (`str` hoặc `Sequence` hoặc `Mapping`, *tùy chọn*) : Đường dẫn đến tệp dữ liệu nguồn. Dùng cho các builder như "csv" hoặc "json" mà người dùng cần chỉ định tệp dữ liệu. Chúng có thể là tệp cục bộ hoặc tệp từ xa. Để tiện lợi, bạn có thể sử dụng `DataFilesDict`.

data_dir (`str`, *tùy chọn*) : Đường dẫn đến thư mục chứa tệp dữ liệu nguồn. Chỉ sử dụng khi `data_files` không được truyền, trong trường hợp đó nó tương đương với việc truyền `os.path.join(data_dir, "**")` làm `data_files`. Đối với các builder yêu cầu tải xuống thủ công, đây phải là đường dẫn đến thư mục cục bộ chứa dữ liệu đã tải xuống thủ công.

storage_options (`dict`, *tùy chọn*) : Các cặp key/value để truyền đến hệ thống tệp backend của dataset, nếu có.

writer_batch_size (`int`, *optional*) : Kích thước batch được sử dụng bởi ArrowWriter. Nó xác định số lượng mẫu được giữ trong bộ nhớ trước khi ghi và cũng là độ dài của các chunk arrow. None có nghĩa là ArrowWriter sẽ sử dụng giá trị mặc định của nó.

- ****config_kwargs** (các tham số từ khóa bổ sung) : Các tham số từ khóa được truyền đến lớp cấu hình builder tương ứng, được đặt trên thuộc tính lớp [DatasetBuilder.BUILDER_CONFIG_CLASS](/docs/datasets/main/vi/package_reference/builder_classes#datasets.BuilderConfig). Lớp cấu hình builder là [BuilderConfig](/docs/datasets/main/vi/package_reference/builder_classes#datasets.BuilderConfig) hoặc một lớp con của nó.

Lớp trừu tượng cơ sở cho tất cả các bộ dữ liệu.

`DatasetBuilder` có 3 phương thức chính:

- `DatasetBuilder.info`: Tài liệu hóa bộ dữ liệu, bao gồm tên, kiểu, hình dạng của các đặc trưng, phiên bản, các phần chia, trích dẫn, v.v.
- [DatasetBuilder.download_and_prepare()](/docs/datasets/main/vi/package_reference/builder_classes#datasets.DatasetBuilder.download_and_prepare): Tải dữ liệu nguồn và ghi xuống đĩa.
- [DatasetBuilder.as_dataset()](/docs/datasets/main/vi/package_reference/builder_classes#datasets.DatasetBuilder.as_dataset): Tạo một [Dataset](/docs/datasets/main/vi/package_reference/main_classes#datasets.Dataset).

Một số `DatasetBuilder` cung cấp nhiều biến thể của dataset bằng cách định nghĩa một lớp con của [BuilderConfig](/docs/datasets/main/vi/package_reference/builder_classes#datasets.BuilderConfig) và chấp nhận một đối tượng config (hoặc tên) khi khởi tạo. Các dataset có thể cấu hình sẽ hiển thị một bộ cấu hình được định nghĩa trước trong `DatasetBuilder.builder_configs()`.

#### as_dataset[[datasets.DatasetBuilder.as_dataset]]

```python
as_dataset(split: typing.Union[str, datasets.splits.Split, list[str], list[datasets.splits.Split], NoneType] = None, in_memory = False)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L991)

**Tham số:**

split (`datasets.Split`) : Tập con của dữ liệu cần trả về.

verification_mode ([VerificationMode](/docs/datasets/main/vi/package_reference/builder_classes#datasets.VerificationMode) hoặc `str`, mặc định là `BASIC_CHECKS`) : Chế độ xác minh xác định các kiểm tra cần thực hiện trên thông tin bộ dữ liệu đã tải/xử lý (checksums/size/splits/...).

in_memory (`bool`, mặc định là `False`) : Có sao chép dữ liệu trong bộ nhớ hay không.

**Trả về:**

datasets.Dataset

Trả về một Dataset cho phần chia (split) được chỉ định.

Ví dụ:

```py
>>> from datasets import load_dataset_builder
>>> builder = load_dataset_builder('cornell-movie-review-data/rotten_tomatoes')
>>> builder.download_and_prepare()
>>> ds = builder.as_dataset(split='train')
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 8530
})
```

#### download_and_prepare[[datasets.DatasetBuilder.download_and_prepare]]

```python
download_and_prepare(output_dir: typing.Optional[str] = None, download_config: typing.Optional[datasets.download.download_config.DownloadConfig] = None, download_mode: typing.Union[datasets.download.download_manager.DownloadMode, str, NoneType] = None, verification_mode: typing.Union[datasets.utils.info_utils.VerificationMode, str, NoneType] = None, dl_manager: typing.Optional[datasets.download.download_manager.DownloadManager] = None, base_path: typing.Optional[str] = None, file_format: str = 'arrow', max_shard_size: typing.Union[str, int, NoneType] = None, num_proc: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None, **download_and_prepare_kwargs)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L702)

**Tham số:**

output_dir (`str`, *tùy chọn*) : Thư mục đầu ra cho bộ dữ liệu. Mặc định là `cache_dir` của trình xây dựng này, nằm trong `~/.cache/huggingface/datasets` theo mặc định.

download_config (`DownloadConfig`, *tùy chọn*) : Các tham số cấu hình tải xuống cụ thể.

download_mode ([DownloadMode](/docs/datasets/main/vi/package_reference/builder_classes#datasets.DownloadMode) hoặc `str`, *tùy chọn*) : Chọn chế độ tải xuống/tạo, mặc định là `REUSE_DATASET_IF_EXISTS`.

verification_mode ([VerificationMode](/docs/datasets/main/vi/package_reference/builder_classes#datasets.VerificationMode) hoặc `str`, mặc định là `BASIC_CHECKS`) : Chế độ xác minh xác định các kiểm tra cần thực hiện trên thông tin bộ dữ liệu đã tải/xử lý (checksums/size/splits/...).

dl_manager (`DownloadManager`, *tùy chọn*) : `DownloadManger` cụ thể để sử dụng.

base_path (`str`, *tùy chọn*) : Đường dẫn gốc cho các đường dẫn tương đối được sử dụng để tải xuống các tệp. Đây có thể là một url từ xa. Nếu không được chỉ định, giá trị của thuộc tính `base_path` (`self.base_path`) sẽ được sử dụng thay thế.

file_format (`str`, *tùy chọn*) : Định dạng của các tệp dữ liệu mà bộ dữ liệu sẽ được ghi vào. Các định dạng được hỗ trợ: "arrow", "parquet". Mặc định là định dạng "arrow". Nếu định dạng là "parquet", thì dữ liệu hình ảnh và âm thanh sẽ được nhúng trực tiếp vào các tệp Parquet thay vì trỏ đến các tệp cục bộ.

max_shard_size (`Union[str, int]`, *tùy chọn*) : Số byte tối đa được ghi cho mỗi shard, mặc định là "500MB". Kích thước dựa trên kích thước dữ liệu chưa nén, do đó trên thực tế các tệp shard của bạn có thể nhỏ hơn `max_shard_size` nhờ vào nén Parquet, chẳng hạn.

num_proc (`int`, *tuỳ chọn*, mặc định là `None`) : Số lượng tiến trình khi tải xuống và tạo bộ dữ liệu cục bộ. Xử lý đa tiến trình bị vô hiệu hóa theo mặc định.

storage_options (`dict`, *tùy chọn*) : Các cặp key/value để truyền đến backend hệ thống tệp cache, nếu có.

- ****download_and_prepare_kwargs** (các tham số từ khóa bổ sung) : Các tham số từ khóa.

Tải xuống và chuẩn bị bộ dữ liệu để đọc.

Ví dụ:

Tải xuống và chuẩn bị bộ dữ liệu dưới dạng tệp Arrow có thể được nạp như một Dataset bằng `builder.as_dataset()`:

```py
>>> from datasets import load_dataset_builder
>>> builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")
>>> builder.download_and_prepare()
```

Tải xuống và chuẩn bị bộ dữ liệu dưới dạng các tệp Parquet phân mảnh cục bộ:

```py
>>> from datasets import load_dataset_builder
>>> builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")
>>> builder.download_and_prepare("./output_dir", file_format="parquet")
```

Tải xuống và chuẩn bị bộ dữ liệu dưới dạng các tệp Parquet phân mảnh trong lưu trữ đám mây:

```py
>>> from datasets import load_dataset_builder
>>> storage_options = {"key": aws_access_key_id, "secret": aws_secret_access_key}
>>> builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")
>>> builder.download_and_prepare("s3://my-bucket/my_rotten_tomatoes", storage_options=storage_options, file_format="parquet")
```

#### get_imported_module_dir[[datasets.DatasetBuilder.get_imported_module_dir]]

```python
get_imported_module_dir()
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L694)

Trả về đường dẫn của module của lớp này hoặc lớp con.

#### datasets.GeneratorBasedBuilder[[datasets.GeneratorBasedBuilder]]

```python
datasets.GeneratorBasedBuilder(cache_dir: typing.Optional[str] = None, dataset_name: typing.Optional[str] = None, config_name: typing.Optional[str] = None, hash: typing.Optional[str] = None, base_path: typing.Optional[str] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, features: typing.Optional[datasets.features.features.Features] = None, token: typing.Union[bool, str, NoneType] = None, repo_id: typing.Optional[str] = None, data_files: typing.Union[str, list, dict, datasets.data_files.DataFilesDict, NoneType] = None, data_dir: typing.Optional[str] = None, storage_options: typing.Optional[dict] = None, writer_batch_size: typing.Optional[int] = None, config_id: typing.Optional[str] = None, **config_kwargs)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L1292)

Lớp cơ sở cho các bộ dữ liệu có tạo dữ liệu dựa trên các bộ tạo dict.

`GeneratorBasedBuilder` là một lớp tiện ích giúp trừu tượng hóa phần lớn thao tác ghi và đọc dữ liệu của `DatasetBuilder`. Lớp này yêu cầu các lớp con phải triển khai các generator của các từ điển đặc trưng trên các phần chia của dataset (`_split_generators`). Xem docstring của phương thức để biết chi tiết.

#### datasets.ArrowBasedBuilder[[datasets.ArrowBasedBuilder]]

```python
datasets.ArrowBasedBuilder(cache_dir: typing.Optional[str] = None, dataset_name: typing.Optional[str] = None, config_name: typing.Optional[str] = None, hash: typing.Optional[str] = None, base_path: typing.Optional[str] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, features: typing.Optional[datasets.features.features.Features] = None, token: typing.Union[bool, str, NoneType] = None, repo_id: typing.Optional[str] = None, data_files: typing.Union[str, list, dict, datasets.data_files.DataFilesDict, NoneType] = None, data_dir: typing.Optional[str] = None, storage_options: typing.Optional[dict] = None, writer_batch_size: typing.Optional[int] = None, config_id: typing.Optional[str] = None, **config_kwargs)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L1610)

Lớp cơ sở cho các bộ dữ liệu có tạo dữ liệu dựa trên các hàm nạp Arrow (CSV/JSON/Parquet).

#### datasets.BuilderConfig[[datasets.BuilderConfig]]

```python
datasets.BuilderConfig(name: str = 'default', version: typing.Union[datasets.utils.version.Version, str, NoneType] = 0.0.0, data_dir: typing.Optional[str] = None, data_files: typing.Union[datasets.data_files.DataFilesDict, datasets.data_files.DataFilesPatternsDict, NoneType] = None, description: typing.Optional[str] = None)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L101)

**Tham số:**

name (`str`, mặc định là `default`) : Tên của cấu hình.

version (`Version` hoặc `str`, mặc định là `0.0.0`) : Phiên bản của cấu hình.

data_dir (`str`, *tùy chọn*) : Đường dẫn đến thư mục chứa dữ liệu nguồn.

data_files (`str` hoặc `Sequence` hoặc `Mapping`, *tùy chọn*) : Đường dẫn đến tệp dữ liệu nguồn.

description (`str`, *tùy chọn*) : Mô tả bằng ngôn ngữ tự nhiên về cấu hình.

Lớp cơ sở cho cấu hình dữ liệu của `DatasetBuilder`.

Các lớp con của `DatasetBuilder` có các tùy chọn cấu hình dữ liệu nên kế thừa từ `BuilderConfig` và thêm các thuộc tính riêng của chúng.

#### create_config_id[[datasets.BuilderConfig.create_config_id]]

```python
create_config_id(config_kwargs: dict, custom_features: typing.Optional[datasets.features.features.Features] = None)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/builder.py#L144)

ID cấu hình được sử dụng để xây dựng thư mục cache. Mặc định, nó bằng với tên cấu hình. Tuy nhiên, tên của một cấu hình không đủ để có một định danh duy nhất cho bộ dữ liệu đang được tạo ra vì nó không tính đến:
- các tham số cấu hình (config kwargs) có thể được sử dụng để ghi đè các thuộc tính
- các tính năng tùy chỉnh được sử dụng để viết bộ dữ liệu
- the data_files cho các bộ dữ liệu json/text/csv/pandas

Do đó, id cấu hình chỉ là tên cấu hình với một hậu tố tùy chọn dựa trên các yếu tố này.

## Tải xuống[[datasets.DownloadManager]]

#### datasets.DownloadManager[[datasets.DownloadManager]]

```python
datasets.DownloadManager(dataset_name: typing.Optional[str] = None, data_dir: typing.Optional[str] = None, download_config: typing.Optional[datasets.download.download_config.DownloadConfig] = None, base_path: typing.Optional[str] = None, record_checksums = False)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_manager.py#L71)

#### tải xuống[[datasets.DownloadManager.download]]

```python
download(url_or_urls)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_manager.py#L131)

**Tham số:**

url_or_urls (`str` hoặc `list` hoặc `dict`) : URL hoặc `list` hoặc `dict` của các URL để tải xuống. Mỗi URL là một `str`.

**Trả về:** `str` hoặc `list` hoặc `dict`

Các đường dẫn đã tải xuống khớp với đầu vào `url_or_urls` được cung cấp.

Tải URL đã cho.

Mặc định, chỉ một tiến trình được sử dụng để tải xuống. Truyền `download_config.num_proc` tùy chỉnh để thay đổi hành vi này.

Ví dụ:

```py
>>> downloaded_files = dl_manager.download('https://storage.googleapis.com/seldon-datasets/sentence_polarity_v1/rt-polaritydata.tar.gz')
```

#### download_and_extract[[datasets.DownloadManager.download_and_extract]]

```python
download_and_extract(url_or_urls)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_manager.py#L310)

**Tham số:**

url_or_urls (`str` hoặc `list` hoặc `dict`) : URL hoặc `list` hoặc `dict` các URL để tải xuống và giải nén. Mỗi URL là một `str`.

**Trả về:** `extracted_path(s)`

`str`, các đường dẫn đã trích xuất của URL được cho.

Tải xuống và giải nén `url_or_urls` đã cho.

Tương đương gần đúng với:

```
extracted_paths = dl_manager.extract(dl_manager.download(url_or_urls))
```

#### extract[[datasets.DownloadManager.extract]]

```python
extract(path_or_paths)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_manager.py#L278)

**Tham số:**

path_or_paths (đường dẫn hoặc `list` hoặc `dict`) : Đường dẫn của tệp cần trích xuất. Mỗi đường dẫn là một `str`.

**Trả về:** `extracted_path(s)`

`str`, Các đường dẫn đã trích xuất khớp với input path_or_paths được cho.

Trích xuất đường dẫn đã cho.

Ví dụ:

```py
>>> downloaded_files = dl_manager.download('https://storage.googleapis.com/seldon-datasets/sentence_polarity_v1/rt-polaritydata.tar.gz')
>>> extracted_files = dl_manager.extract(downloaded_files)
```

#### iter_archive[[datasets.DownloadManager.iter_archive]]

```python
iter_archive(path_or_buf: typing.Union[str, _io.BufferedReader])
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_manager.py#L234)

**Tham số:**

path_or_buf (`str` hoặc `io.BufferedReader`) : Đường dẫn đến tệp lưu trữ hoặc đối tượng tệp nhị phân của tệp lưu trữ.

**Trả về:** `tuple[str, io.BufferedReader]`

2-tuple (path_within_archive, file_object). Đối tượng tệp được mở ở chế độ nhị phân.

Lặp qua các tệp trong một tệp lưu trữ.

Ví dụ:

```py
>>> archive = dl_manager.download('https://storage.googleapis.com/seldon-datasets/sentence_polarity_v1/rt-polaritydata.tar.gz')
>>> files = dl_manager.iter_archive(archive)
```

#### iter_files[[datasets.DownloadManager.iter_files]]

```python
iter_files(paths: typing.Union[str, list[str]])
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_manager.py#L259)

**Tham số:**

paths (`str` hoặc `list` của `str`) : Các đường dẫn gốc.

**Trả về:** `str`

Đường dẫn tệp.

Lặp qua các đường dẫn tệp.

Ví dụ:

```py
>>> files = dl_manager.download_and_extract('https://huggingface.co/datasets/AI-Lab-Makerere/beans/resolve/main/data/train.zip')
>>> files = dl_manager.iter_files(files)
```

#### datasets.StreamingDownloadManager[[datasets.StreamingDownloadManager]]

```python
datasets.StreamingDownloadManager(dataset_name: typing.Optional[str] = None, data_dir: typing.Optional[str] = None, download_config: typing.Optional[datasets.download.download_config.DownloadConfig] = None, base_path: typing.Optional[str] = None)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/streaming_download_manager.py#L47)

Trình quản lý tải xuống sử dụng ký tự phân cách "::" để điều hướng qua các tệp nén (có thể ở xa). Khác với `DownloadManager` thông thường, các phương thức `download` và `extract` không thực sự tải xuống hay giải nén dữ liệu, mà thay vào đó trả về đường dẫn hoặc url có thể mở bằng hàm `xopen`, vốn mở rộng hàm `open` tích hợp để truyền dữ liệu từ các tệp ở xa.

#### tải xuống[[datasets.StreamingDownloadManager.download]]

```python
download(url_or_urls)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/streaming_download_manager.py#L75)

**Tham số:**

url_or_urls (`str` hoặc `list` hoặc `dict`) : URL của các tệp để stream dữ liệu. Mỗi url là một `str`.

**Trả về:** `url(s)`

(`str` hoặc `list` hoặc `dict`), URL(s) để stream dữ liệu từ các URL đầu vào khớp với url_or_urls đã cho.

Chuẩn hóa URL của các tệp để stream dữ liệu từ đó. Đây là phiên bản lazy của `DownloadManager.download` dành cho streaming.

Ví dụ:

```py
>>> downloaded_files = dl_manager.download('https://storage.googleapis.com/seldon-datasets/sentence_polarity_v1/rt-polaritydata.tar.gz')
```

#### download_and_extract[[datasets.StreamingDownloadManager.download_and_extract]]

```python
download_and_extract(url_or_urls)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/streaming_download_manager.py#L151)

**Tham số:**

url_or_urls (`str` hoặc `list` hoặc `dict`) : URL để lấy dữ liệu từ đó. Mỗi url là một `str`.

**Trả về:** `url(s)`

(`str` hoặc `list` hoặc `dict`), URL để stream dữ liệu từ các URL khớp với `url_or_urls` đã cho.

Chuẩn bị `url_or_urls` đã cho để phát trực tiếp (thêm giao thức trích xuất).

Đây là phiên bản lazy của `DownloadManager.download_and_extract` dành cho streaming.

Tương đương với:

```
urls = dl_manager.extract(dl_manager.download(url_or_urls))
```

#### extract[[datasets.StreamingDownloadManager.extract]]

```python
extract(url_or_urls)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/streaming_download_manager.py#L102)

**Tham số:**

url_or_urls (`str` hoặc `list` hoặc `dict`) : URL của các tệp để stream dữ liệu. Mỗi url là một `str`.

**Trả về:** `url(s)`

(`str` hoặc `list` hoặc `dict`), URL để stream dữ liệu từ các URL khớp với `url_or_urls` đã cho.

Thêm giao thức trích xuất cho các URL đã cho để phát trực tiếp.

Đây là phiên bản lazy của `DownloadManager.extract` để streaming.

Ví dụ:

```py
>>> downloaded_files = dl_manager.download('https://storage.googleapis.com/seldon-datasets/sentence_polarity_v1/rt-polaritydata.tar.gz')
>>> extracted_files = dl_manager.extract(downloaded_files)
```

#### iter_archive[[datasets.StreamingDownloadManager.iter_archive]]

```python
iter_archive(urlpath_or_buf: typing.Union[str, _io.BufferedReader])
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/streaming_download_manager.py#L171)

**Tham số:**

urlpath_or_buf (`str` hoặc `io.BufferedReader`) : Đường dẫn đến tệp lưu trữ hoặc đối tượng tệp nhị phân của tệp lưu trữ.

**Trả về:** `tuple[str, io.BufferedReader]`

2-tuple (path_within_archive, file_object). Đối tượng tệp được mở ở chế độ nhị phân.

Lặp qua các tệp trong một tệp lưu trữ.

Ví dụ:

```py
>>> archive = dl_manager.download('https://storage.googleapis.com/seldon-datasets/sentence_polarity_v1/rt-polaritydata.tar.gz')
>>> files = dl_manager.iter_archive(archive)
```

#### iter_files[[datasets.StreamingDownloadManager.iter_files]]

```python
iter_files(urlpaths: typing.Union[str, list[str]])
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/streaming_download_manager.py#L196)

**Tham số:**

urlpaths (`str` hoặc `list` của `str`) : Các đường dẫn gốc.

**Trả về:** `str`

Đường dẫn URL của tệp.

Lặp qua các tệp.

Ví dụ:

```py
>>> files = dl_manager.download_and_extract('https://huggingface.co/datasets/AI-Lab-Makerere/beans/resolve/main/data/train.zip')
>>> files = dl_manager.iter_files(files)
```

#### datasets.DownloadConfig[[datasets.DownloadConfig]]

```python
datasets.DownloadConfig(cache_dir: typing.Union[str, pathlib.Path, NoneType] = None, force_download: bool = False, resume_download: bool = False, local_files_only: bool = False, proxies: typing.Optional[dict] = None, user_agent: typing.Optional[str] = None, extract_compressed_file: bool = False, force_extract: bool = False, delete_extracted: bool = False, extract_on_the_fly: bool = False, use_etag: bool = True, num_proc: typing.Optional[int] = None, max_retries: int = 1, token: typing.Union[str, bool, NoneType] = None, storage_options: dict = <factory>, download_desc: typing.Optional[str] = None, disable_tqdm: bool = False)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_config.py#L10)

**Tham số:**

cache_dir (`str` hoặc `Path`, *tùy chọn*) : Chỉ định một thư mục cache để lưu tệp (ghi đè thư mục cache mặc định).

force_download (`bool`, mặc định là `False`) : Nếu `True`, tải lại tệp ngay cả khi nó đã được lưu trong thư mục cache.

resume_download (`bool`, mặc định là `False`) : Nếu `True`, tiếp tục tải xuống nếu tìm thấy tệp nhận chưa đầy đủ.

proxies (`dict`, *tùy chọn*) : Đã bị hủy bỏ và bị bỏ qua. Hãy đặt các biến môi trường `HTTP_PROXY` / `HTTPS_PROXY` hoặc cấu hình client HTTP bằng [huggingface_hub.set_client_factory](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/utilities#huggingface_hub.set_client_factory) thay thế.

user_agent (`str`, *tùy chọn*) : Chuỗi hoặc dict tùy chọn sẽ được thêm vào user-agent trong các yêu cầu từ xa.

extract_compressed_file (`bool`, mặc định là `False`) : Nếu `True` và đường dẫn trỏ đến tệp zip hoặc tar, giải nén tệp nén vào một thư mục cùng vị trí với tệp lưu trữ.

force_extract (`bool`, mặc định là `False`) : Nếu `True` khi `extract_compressed_file` là `True` và tệp nén đã được giải nén, hãy giải nén lại tệp nén và ghi đè lên thư mục nơi nó đã được giải nén.

delete_extracted (`bool`, mặc định là `False`) : Có xóa (hay giữ lại) các tệp đã trích xuất hay không.

extract_on_the_fly (`bool`, mặc định là `False`) : Nếu `True`, sẽ giải nén các tệp trong khi chúng đang được đọc.

use_etag (`bool`, mặc định là `True`) : Có sử dụng tiêu đề phản hồi HTTP ETag để xác thực các tệp được lưu trong bộ nhớ đệm hay không.

num_proc (`int`, *tuỳ chọn*) : Số lượng tiến trình được khởi chạy để tải xuống các tệp song song.

max_retries (`int`, mặc định là `1`) : Số lần thử lại một yêu cầu HTTP nếu nó thất bại.

token (`str` hoặc `bool`, *tùy chọn*) : Chuỗi hoặc giá trị boolean tùy chọn để sử dụng làm Bearer token cho các tệp từ xa trên Datasets Hub. Nếu là `True`, hoặc không được chỉ định, sẽ lấy token từ `~/.huggingface`.

storage_options (`dict`, *tùy chọn*) : Các cặp key/value để truyền đến hệ thống tệp backend của dataset, nếu có.

download_desc (`str`, *tùy chọn*) : Mô tả sẽ được hiển thị cùng với thanh tiến trình trong khi tải xuống các tệp.

disable_tqdm (`bool`, mặc định là `False`) : Có vô hiệu hóa thanh tiến trình tải xuống cho từng tệp riêng lẻ hay không

Cấu hình cho trình quản lý đường dẫn được lưu trữ của chúng tôi.

#### datasets.DownloadMode[[datasets.DownloadMode]]

```python
datasets.DownloadMode(value, names = None, module = None, qualname = None, type = None, start = 1)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/download/download_manager.py#L50)

`Enum` cho biết cách xử lý các tệp tải xuống và dữ liệu đã có sẵn.

Chế độ mặc định là `REUSE_DATASET_IF_EXISTS`, sẽ tái sử dụng cả các tệp tải xuống thô và bộ dữ liệu đã được chuẩn bị nếu chúng tồn tại.

Các chế độ sinh:

|                                     | Tải xuống | Bộ dữ liệu |
|-------------------------------------|-----------|---------|
| `REUSE_DATASET_IF_EXISTS` (mặc định) | Tái sử dụng     | Tái sử dụng   |
| `REUSE_CACHE_IF_EXISTS`             | Tái sử dụng     | Mới   |
| `FORCE_REDOWNLOAD`                  | Mới     | Mới   |

## Xác minh[[datasets.VerificationMode]]

#### datasets.VerificationMode[[datasets.VerificationMode]]

```python
datasets.VerificationMode(value, names = None, module = None, qualname = None, type = None, start = 1)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/utils/info_utils.py#L22)

`Enum` chỉ định các kiểm tra xác minh cần chạy.

Chế độ mặc định là `BASIC_CHECKS`, chỉ thực hiện các kiểm tra cơ bản để tránh làm chậm quá trình tạo/tải xuống bộ dữ liệu lần đầu tiên.

Các chế độ xác minh:

|                           | Kiểm tra xác minh                                                           |
|---------------------------|------------------------------------------------------------------------------ |
| `ALL_CHECKS`              | Kiểm tra chia tách và tính hợp lệ (số lượng tệp, mã kiểm tra) của các tệp đã tải xuống    |
| `BASIC_CHECKS` (mặc định)  | Tương tự như `ALL_CHECKS` nhưng không kiểm tra các tệp đã tải xuống                    |
| `NO_CHECKS`               | Không                                                                          |

## Các phần chia[[datasets.SplitGenerator]]

#### datasets.SplitGenerator[[datasets.SplitGenerator]]

```python
datasets.SplitGenerator(name: str, gen_kwargs: dict = <factory>)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/splits.py#L624)

**Tham số:**

name (`str`) : Tên của `Split` mà trình tạo sẽ tạo ra các ví dụ.

- ****gen_kwargs** (các tham số từ khóa bổ sung) : Các tham số từ khóa để chuyển tiếp đến phương thức `DatasetBuilder._generate_examples` của builder.

Định nghĩa thông tin chia cho trình tạo.

Đây nên được sử dụng làm giá trị trả về của `GeneratorBasedBuilder._split_generators`. Xem `GeneratorBasedBuilder._split_generators` để biết thêm thông tin và ví dụ về cách sử dụng.

Ví dụ:

```py
>>> datasets.SplitGenerator(
...     name=datasets.Split.TRAIN,
...     gen_kwargs={"split_key": "train", "files": dl_manager.download_and_extract(url)},
... )
```

#### datasets.Split[[datasets.Split]]

```python
datasets.Split(name)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/splits.py#L417)

`Enum` cho các phần chia của tập dữ liệu.

Các tập dữ liệu thường được chia thành các tập con khác nhau để sử dụng ở các giai đoạn huấn luyện và đánh giá khác nhau.

- `TRAIN`: dữ liệu huấn luyện.
- `VALIDATION`: dữ liệu kiểm định. Nếu có, dữ liệu này thường được dùng làm dữ liệu đánh giá trong quá trình tinh chỉnh mô hình (ví dụ: thay đổi siêu tham số, kiến trúc mô hình, v.v.).
- `TEST`: dữ liệu kiểm thử. Đây là dữ liệu dùng để báo cáo các chỉ số. Thông thường, bạn không nên sử dụng dữ liệu này trong quá trình lặp lại mô hình vì có thể gây quá khớp.
- `ALL`: tập hợp của tất cả các phần chia bộ dữ liệu đã được định nghĩa.

Tất cả các split, bao gồm cả compositions, kế thừa từ `datasets.SplitBase`.

Xem [hướng dẫn](../load_hub#splits) về các phần chia để biết thêm thông tin.

Ví dụ:

```py
>>> datasets.SplitGenerator(
...     name=datasets.Split.TRAIN,
...     gen_kwargs={"split_key": "train", "files": dl_manager.download_and extract(url)},
... ),
... datasets.SplitGenerator(
...     name=datasets.Split.VALIDATION,
...     gen_kwargs={"split_key": "validation", "files": dl_manager.download_and extract(url)},
... ),
... datasets.SplitGenerator(
...     name=datasets.Split.TEST,
...     gen_kwargs={"split_key": "test", "files": dl_manager.download_and extract(url)},
... )
```

#### datasets.NamedSplit[[datasets.NamedSplit]]

```python
datasets.NamedSplit(name: str)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/splits.py#L325)

Mô tả tương ứng với một phần chia có tên (train, test, ...).

Ví dụ:

Mỗi descriptor có thể được kết hợp với các descriptor khác bằng phép cộng hoặc slice:

```py
split = datasets.Split.TRAIN.subsplit(datasets.percent[0:25]) + datasets.Split.TEST
```

Kết quả tách sẽ tương ứng với 25% của phần tách train được gộp với 100% của phần tách test.

Không thể thêm cùng một split hai lần, do đó dòng sau sẽ thất bại:

```py
split = (
        datasets.Split.TRAIN.subsplit(datasets.percent[:25]) +
        datasets.Split.TRAIN.subsplit(datasets.percent[75:])
)  # Error
split = datasets.Split.TEST + datasets.Split.ALL  # Error
```

Các lát cắt chỉ có thể được áp dụng một lần. Vì vậy, các ví dụ sau là hợp lệ:

```py
split = (
        datasets.Split.TRAIN.subsplit(datasets.percent[:25]) +
        datasets.Split.TEST.subsplit(datasets.percent[:50])
)
split = (datasets.Split.TRAIN + datasets.Split.TEST).subsplit(datasets.percent[:50])
```

Nhưng điều này không hợp lệ:

```py
train = datasets.Split.TRAIN
test = datasets.Split.TEST
split = train.subsplit(datasets.percent[:25]).subsplit(datasets.percent[:25])
split = (train.subsplit(datasets.percent[:25]) + test).subsplit(datasets.percent[:50])
```

#### datasets.NamedSplitAll[[datasets.NamedSplitAll]]

```python
datasets.NamedSplitAll()
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/splits.py#L402)

Split tương ứng với tập hợp của tất cả các split dataset đã định nghĩa.

#### datasets.ReadInstruction[[datasets.ReadInstruction]]

```python
datasets.ReadInstruction(split_name, rounding = None, from_ = None, to = None, unit = None)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/arrow_reader.py#L456)

Hướng dẫn đọc cho một tập dữ liệu.

Ví dụ:

```python
# The following lines are equivalent:
ds = datasets.load_dataset('ylecun/mnist', split='test[:33%]')
ds = datasets.load_dataset('ylecun/mnist', split=datasets.ReadInstruction.from_spec('test[:33%]'))
ds = datasets.load_dataset('ylecun/mnist', split=datasets.ReadInstruction('test', to=33, unit='%'))
ds = datasets.load_dataset('ylecun/mnist', split=datasets.ReadInstruction(
'test', from_=0, to=33, unit='%'))

# The following lines are equivalent:
ds = datasets.load_dataset('ylecun/mnist', split='test[:33%]+train[1:-1]')
ds = datasets.load_dataset('ylecun/mnist', split=datasets.ReadInstruction.from_spec(
'test[:33%]+train[1:-1]'))
ds = datasets.load_dataset('ylecun/mnist', split=(
datasets.ReadInstruction('test', to=33, unit='%') +
datasets.ReadInstruction('train', from_=1, to=-1, unit='abs')))

# The following lines are equivalent:
ds = datasets.load_dataset('ylecun/mnist', split='test[:33%](pct1_dropremainder)')
ds = datasets.load_dataset('ylecun/mnist', split=datasets.ReadInstruction.from_spec(
'test[:33%](pct1_dropremainder)'))
ds = datasets.load_dataset('ylecun/mnist', split=datasets.ReadInstruction(
'test', from_=0, to=33, unit='%', rounding="pct1_dropremainder"))

# 10-fold validation:
tests = datasets.load_dataset(
'ylecun/mnist',
[datasets.ReadInstruction('train', from_=k, to=k+10, unit='%')
for k in range(0, 100, 10)])
trains = datasets.load_dataset(
'ylecun/mnist',
[datasets.ReadInstruction('train', to=k, unit='%') + datasets.ReadInstruction('train', from_=k+10, unit='%')
for k in range(0, 100, 10)])
```

#### from_spec[[datasets.ReadInstruction.from_spec]]

```python
from_spec(spec)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/arrow_reader.py#L536)

**Tham số:**

spec (`str`) : Các phần (split) + các lát cắt (slice) tùy chọn để đọc + làm tròn tùy chọn nếu phần trăm được dùng làm đơn vị lát cắt. Một lát cắt có thể được chỉ định bằng các số tuyệt đối (`int`) hoặc phần trăm (`int`).

**Trả về:**

Thư mục ReadInstruction.

Tạo một instance `ReadInstruction` từ một chuỗi spec.

Ví dụ:

```
test: test split.
test + validation: test split + validation split.
test[10:]: test split, minus its first 10 records.
test[:10%]: first 10% records of test split.
test[:20%](pct1_dropremainder): first 10% records, rounded with the pct1_dropremainder rounding.
test[:-5%]+train[40%:60%]: first 95% of test + middle 20% of train.
```

#### to_absolute[[datasets.ReadInstruction.to_absolute]]

```python
to_absolute(name2len)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/arrow_reader.py#L608)

**Tham số:**

name2len (`dict`) : Ánh xạ tên split đến số lượng ví dụ.

**Trả về:**

danh sách các instance _AbsoluteInstruction (tương ứng với + trong spec).

Dịch chỉ dẫn thành một danh sách các chỉ dẫn tuyệt đối.

Các chỉ dẫn tuyệt đối đó sau đó sẽ được cộng lại với nhau.

## Phiên bản[[datasets.Version]]

#### datasets.Version[[datasets.Version]]

```python
datasets.Version(version_str: str, description: typing.Optional[str] = None, major: typing.Union[str, int, NoneType] = None, minor: typing.Union[str, int, NoneType] = None, patch: typing.Union[str, int, NoneType] = None)
```

[Nguồn](https://github.com/huggingface/datasets/blob/main/src/datasets/utils/version.py#L30)

**Tham số:**

version_str (`str`) : Phiên bản của bộ dữ liệu.

description (`str`) : Mô tả những gì mới trong phiên bản này.

major (`str`) --

minor (`str`) --

patch (`str`) --

Phiên bản bộ dữ liệu `MAJOR.MINOR.PATCH`.

Ví dụ:

```py
>>> VERSION = datasets.Version("1.0.0")
```

