datasets 笔记:加载数据集(基本操作)

参考了huggingface的教程

1 了解数据集基本信息( load_dataset_builder)

  • 在下载数据集之前,通常先快速了解数据集的基本信息会很有帮助。
  • 数据集的信息存储在 DatasetInfo 中,可能包括数据集描述、特征和数据集大小等信息。(不同的数据集提供的信息可能也不相同)
  • 使用 load_dataset_builder() 函数加载数据集生成器,并在不下载数据集的情况下检查数据集的属性
python 复制代码
from datasets import load_dataset_builder
ds_builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")

ds_builder.info.description
#''

from datasets import load_dataset_builder
ds_builder = load_dataset_builder("rotten_tomatoes")

ds_builder.info.description
#''
python 复制代码
from datasets import load_dataset_builder
ds_builder = load_dataset_builder("cornell-movie-review-data/rotten_tomatoes")

ds_builder.info.features
'''
{'text': Value(dtype='string', id=None),
 'label': ClassLabel(names=['neg', 'pos'], id=None)}
'''

至于这个数据集的名字怎么来的,我的理解是,复制完整路径即可

2 加载数据集

2.1 加载所有

此时Datasets 将返回一个 DatasetDict 对象

python 复制代码
from datasets import load_dataset

dataset = load_dataset("rotten_tomatoes")
dataset
'''
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
    })
})
'''

2.2 加载特定划分

2.2.1 数据集划分

  • 数据集的划分是特定的子集,比如训练集(train)和测试集(test)
  • 可以使用 get_dataset_split_names() 函数查看数据集的划分名称
python 复制代码
from datasets import get_dataset_split_names

get_dataset_split_names("rotten_tomatoes")
#['train', 'validation', 'test']

2.2.2 读取单个

python 复制代码
from datasets import load_dataset

dataset = load_dataset("rotten_tomatoes", split="train")
dataset
'''
Dataset({
    features: ['text', 'label'],
    num_rows: 8530
})
'''

2.3 读取配置

  • 某些数据集包含多个子数据集。例如,MInDS-14 数据集包含多种语言的音频数据,这些子数据集被称为配置或子集。
  • 加载这些数据集时,必须显式选择其中一个配置。
  • 如果没有提供配置名称,Datasets 会抛出 ValueError

2.3.1 获取数据集的所有可用配置

python 复制代码
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']
'''

2.3.2 加载需要的配置

python 复制代码
from datasets import load_dataset

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

【这一步官网是这么说的,但是我自己是报错的】

2.4 主要参数

|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| #### path | 数据集的路径或名称。 * 如果是 Hub 仓库路径(例如 "namespace/dataset_name"),加载该仓库中的数据文件。 * 如果是本地路径,加载本地文件夹中的数据文件(需要配合data_dir/data_files)。 |
| #### data_dir | 数据所在的目录路径 |
| #### data_files | * 数据文件的路径或路径列表。 |
| #### data_files | data_files 是一个列表时: * 结果直接合并(append) :多个文件的数据会被视为一个整体,并按行追加形成一个统一的 Dataset。 * 返回值是一个 Dataset 对象。 |
| #### data_files | 可以将 data_files 配置为一个字典,手动映射文件到划分 结果: ds 是一个 DatasetDict 对象,包含多个划分 |
| #### split | * 加载数据集的特定划分。 前10%+后20% 交叉验证 |
| #### cache_dir | 数据集缓存的存储目录,默认是~/.cache/huggingface/datasets |
| #### download_mode | 指定是否重新下载数据集: * REUSE_DATASET_IF_EXISTS(默认):如果已缓存则不重新下载。 * FORCE_REDOWNLOAD:强制重新下载。 |
| #### keep_in_memory | 是否将数据集加载到内存中 |
| #### features | 用于定义 数据集每一列的特征,即每一列的数据类型和结构 |
| #### features | |
| #### features | 嵌套特征 |
| #### revision | 加载特定版本的数据集(如 Git 标签或分支) |
| #### token | Hugging Face Hub 的身份验证令牌。 |
| #### streaming | 是否启用流式加载,适用于超大数据集 |
| #### num_proc | 多进程数量,用于加速数据处理 |

相关推荐
夕除8 小时前
Redis 过期策略
redis·笔记·面试
Nuanyt9 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
叼烟扛炮11 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮11 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
songyuc12 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
゛凌乱的记忆づ14 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
zroooo14 小时前
计算机学习-知识庞大而繁杂
笔记·学习
坤坤子吖14 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
Zhao-Jichao16 小时前
AI Prompting for Everyone 课程笔记 - 05 使用深度搜索 Using Deep Research
人工智能·笔记
云析赢指标公式网417 小时前
指标开发笔记|主图搭配双副图成套指标逻辑拆解
人工智能·笔记