跟着视频学习:【【手把手带你实战HuggingFace Transformers-入门篇】基础组件之Datasets】 https://www.bilibili.com/video/BV1Ph4y1b76w/?share_source=copy_web&vd_source=9fe9e3d550891e4a38f66eead88c8b40

一、简介

datasets库是一个轻量级、易用的数据集加载工具,支持从本地文件Hugging Face Hub快速加载数据集,适用于机器学习、自然语言处理等任务。

  • 公开数据集地址: https://huggingface.co/datasets 说明:Hugging Face Hub上托管了数万个公开数据集(如GLUE、SQuAD、COCO等),可直接通过该平台搜索和下载。

  • 文档地址: https://huggingface.co/docs/datasets/index 说明:官方文档提供了完整的库使用方法,包括数据集加载、处理、分片、流式加载等高级功能。

二、基本使用

详细操作列表解析

  • 加载在线数据集

    1. 方法load_dataset

    2. 功能:从Hugging Face Hub或指定URL加载公开数据集(如gluesquad等)。

from datasets import load_dataset
dataset = load_dataset("squad")  # 加载SQuAD问答数据集
  • 加载数据集特定任务/子集

    1. 方法load_datasetnamesubset参数

    2. 场景:针对多任务数据集(如multi_nli包含多个任务分支)。glue包含很多任务分支

dataset = load_dataset("glue", name="mrpc")  # 加载GLUE中的MRPC子任务
  • 按数据集划分加载

    1. 参数split

    2. 用途:直接加载训练集、验证集或测试集。

train_data = load_dataset("cifar10", split="train")
test_data = load_dataset("cifar10", split="test")
  • 查看数据集内容

    1. 操作:索引(dataset[0])和切片(dataset[:5]

    2. 输出:快速预览数据字段(如文本、标签等)。

  • 数据集划分

    1. 方法train_test_split

    2. 功能:将单份数据拆分为训练集和测试集,支持自定义比例。

split_dataset = dataset.train_test_split(test_size=0.1)
  • 数据选取与过滤

    1. 方法select(按索引选取)和filter(按条件过滤)

filtered_data = dataset.filter(lambda x: x["label"] != 0)  # 过滤标签为0的数据
  • 数据映射(转换)

    1. 方法map

    2. 用途:批量处理数据(如分词、数据增强)。

tokenized_data = dataset.map(lambda x: tokenizer(x["text"]), batched=True)
  • 保存与加载本地数据

    1. 方法save_to_disk()load_from_disk()

    2. 场景:缓存预处理后的数据集,避免重复计算。

dataset.save_to_disk("./processed_data")
reloaded_data = load_from_disk("./processed_data")

三、加载本地数据集

四、总结:

使用load_dataset加载的数据集是一个dict

1、导入

Datasets = load_dataset方法的使用,参数有 name="teding"、split="train" 、切片方式加载split="train[:100]", 按照比例的方式切片 split="train[:50%]",其他的方式split=["train[:50%]","validation[:10%]"]

2、怎么取

单条通过dict来取就好:datasets["train"][0]

多条:datasets["train"][:2]

只想看title里面的 datasets["trian"]["title"][:5]

查看列名 datasets["trian"].column_names

查看对应的类型 datasets["trian"].features

更多推荐