HuggingFace - Datasets
datasets 库是一个非常简单易用的数据集加载库,可以方便快捷的从本地或者 HuggingFace Hub 加载数据集。
- 公开数据集地址:https://huggingface.co/datasets
- 文档地址:https://huggingface.co/docs/datasets/index
Datasets 基本使用
- 加载在线数据集(load_dataset("dataset_name"))
- 加载数据集某一项任务(load_dataset("dataset_name", "subset_name"))
- 按照数据集划分进行加载(load_dataset(..., split="train"))
- 查看数据集(index and slice)
- 数据集划分(train_test_split)
- 数据选取与过滤(select and filter)
- 数据映射(map)
- 保存与加载(save_to_disk/load_from_disk)
Datasets加载本地数据
- 直接加载文件作为数据集
- CSV、JSON
- 加载文件夹内全部文件作为数据集
- 通过预先加载的其他格式转换加载数据集
- dict、pandas、list
- 通过自定义加载脚本加载数据集
def _info(self)def _split_generators(self, dl_manager) def_generate_examples(self, filepath)
Datasets使用
参见:datasets_use1.py
执行结果:
1. 加载 IMDB 数据集(小样本)
训练集大小: 500
测试集大小: 100
2. 查看数据结构和第一条数据
Dataset({
features: ['text', 'label'],
num_rows: 500
})
第一条数据示例:
I rented I AM CURIOUS-YELLOW from my video store because of all the controversy that surrounded it when it was first released in 1967. I also heard
th...
标签: 0
3. 查看数据集字段(features)
{'text': Value('string'), 'label': ClassLabel(names=['neg', 'pos'])}
4. 数据切片:获取前3条数据
前3条的文本长度: [1640, 1294, 528]
前3条的标签: [0, 0, 0]
5. 过滤数据:只保留正面评论(label == 1)
正面评论数量: 0
6. 映射处理:添加文本长度字段
添加长度后的一条数据: 1640
7. 批量处理:计算所有文本长度(batched=True 更快)
批量处理后的长度(前5条): [1640, 1294, 528, 706, 1814]
8. 打乱数据顺序
打乱后第一条的标签: 0
9. 采样:随机取 50 条数据
采样后大小: 50
10. 转换为 Pandas DataFrame
DataFrame 前两行:
label text
0 0 I rented I AM CURIOUS-YELLOW from my video sto...
1 0 "I Am Curious: Yellow" is a risible and preten...
11. 保存到磁盘(本地)
Saving the dataset (1/1 shards): 100%|███████████████████████████████████████████████████████
Saving the dataset (1/1 shards): 100%|███████████████████████████████████████████████████████
███████████| 500/500 [00:00<00:00, 7575.98 examples/s]
数据集已保存到 './small_imdb_dataset'
12. 从磁盘加载
加载后大小: 500
加载成功,第一条数据标签: 0
