Python
- 基础
-
库
- 其他
- argparse命令行参数解析
- asyncio自带异步编程库
- aiofiles异步文件读写库
- beautifulsoup4_HTML_XML解析库
- colorama_在终端输出漂亮的字
- datasets数据集处理
- html2text
- httpx_HTTP请求库
- litellm
- loguru日志库
- numpy科学计算基础库
- pillow图像处理
- pydantic数据验证
- pyyaml
- requests_HTTP请求库
- tenacity重试
- tiktoken计算Token量
- torch机器学习_深度学习框架
- tomli TOML文件解析库
- tomllib 自带TOML文件解析库
- unidiff_文本_文件差异对比
- uvicorn_Web服务器
- langchain
**datasets** 是 Hugging Face 提供的一个非常流行的 **Python 库**,用于方便地**加载、处理和使用各种 NLP(自然语言处理)、音频、图像等领域的公开数据集**。
---
## 一、datasets 是什么?(简单理解)
- **datasets** 是一个用于 **加载、共享、处理和管理数据集** 的 Python 库。
- 它由 **Hugging Face** 开发和维护,是 Hugging Face 生态系统的重要组成部分(和 🤗 Transformers 配合使用非常常见)。
- 你可以用它来**快速加载成百上千个公开数据集**,比如:
- 文本分类数据(如 IMDb、AG News)
- 机器翻译数据(如 WMT14)
- 问答数据(如 SQuAD)
- 音频、图像等相关数据集
- 支持**本地缓存、高效读取、数据预处理、数据集分割(train/val/test)、数据变换等**。
---
## 二、datasets 的主要功能
| 功能 | 说明 |
|------|------|
| **加载数据集** | 从 Hugging Face 数据集中心一键加载成千上万个公开数据集 |
| **数据缓存** | 自动缓存下载的数据集,避免重复下载,提高效率 |
| **数据预处理** | 支持对文本、标签、音频等进行清洗、分词、编码等操作 |
| **数据集拆分** | 支持按 train / validation / test 划分数据 |
| **流式加载(streaming)** | 支持大规模数据集的流式加载,节省内存 |
| **数据转换** | 可以轻松对数据集做 map、filter、shuffle 等操作 |
| **导出格式** | 支持导出为 pandas DataFrame、Arrow 表格、JSON 等格式 |
| **多人协作与共享** | 数据集可上传至 Hugging Face Hub,供他人使用 |
---
## 三、安装 datasets
使用 pip 安装:
```bash
pip install datasets
```
---
## 四、简单使用示例
### 示例 1:加载一个文本分类数据集(IMDB)
```python
from datasets import load_dataset
# 加载 IMDB 电影评论数据集(文本分类经典数据集)
dataset = load_dataset("imdb")
# 查看数据集结构
print(dataset)
# 查看训练集前几条数据
print(dataset["train"][0])
```
🔍 输出示例:包含 `train` 和 `test` 两个部分,每条数据包括 `text`(影评内容)和 `label`(正面/负面)。
---
### 示例 2:数据集基本操作(比如取前 3 条,打乱,划分数据等)
```python
dataset = load_dataset("imdb")
# 只看训练集的前 3 条数据
for i in range(3):
print(dataset["train"][i])
# 打乱数据顺序
shuffled = dataset["train"].shuffle(seed=42)
# 取前 100 条作为验证集,其余作为训练集(手动划分)
train_data = shuffled.select(range(100, 25000))
eval_data = shuffled.select(range(100))
```
---
## 五、datasets 的特点总结(中文)
✅ **简单易用**:通过 `load_dataset("数据集名")` 就能加载现成的数据,无需手动下载和处理。
✅ **数据丰富**:Hugging Face 提供了 **上千个公开数据集**,覆盖文本、音频、图像等多个领域。
✅ **高效处理**:支持大数据集的高效加载、缓存、流式读取,适合实际项目与研究。
✅ **与 Hugging Face 生态无缝衔接**:常与 🤗 Transformers(模型库)、🤗 Tokenizers(分词器)等配合使用,是 NLP 项目的标配工具之一。
---
## 六、总结一句话
> **datasets 是 Hugging Face 提供的 Python 数据集工具库,让你可以轻松加载、处理和使用各种公开数据集,极大地方便了 NLP 与 AI 项目的数据准备工作。**
如果你在做 NLP(自然语言处理)相关项目,**datasets 几乎是必备工具之一**。