datasets库使用
Huggingface的datasets类,保护一些场景数据集和metric
load_dataset
1 | from datasets import load_dataset |
得到Dataset类的实例
num_rows查看行数
1 | dataset['train'].num_rows |
下面包括features类和数据
1 | dataset['train'].features |
1 | #查看数据类型 |
- set_format() 设置喂给模型的数据,类型
1 | set_format(type='torch',columns=['idx','labels']) |
Local and remote files
加载本地文件csv,text,jsonlines,json
1 | from datasets import load_dataset |
加载remote file,csv ,zipped.csv
1 | base_url="https://huggingface.co/datasets/lhoestq/demo1/resolve/main/data/" |
load_dataset_builder
在download之前,查看数据集的dataset card
1 | from datasets import load_dataset_builder |
get_dataset_config_names
获取subset的名字
1 | from datasets import get_dataset_config_names |
Dataset
- dataset.info
- dataset.split / description/ citation/homepage
- dataset.shape
- dataset.num_columns
- dataset.num_rows
- dataset.column_names
- dataset.features
load memory中数据
- Dataset.from_dict()
- Dataset.from_pandas()
处理数据
- dataset.sort(‘label’)
- dataset.shuffle(seed=42)
- dataset.select([0,10,20,…])
- dataset.filter(lambda example:example[‘sentence1’.startswith(‘A’)])
- dataset.train_test_split(test_size=0.1) 默认shuffle,可以设置shuffle=False
- dataset.shard(num_shards=4,index=0) 划分为4份数据,选择0份
数据columns处理
dataset.rename_column(‘sentenc1’,’s1’)
dataset.remove_column(‘label’)
修改column数据类型
dataset.cast(new_features) new_features=data.features.copy()
dataset.cast_column(‘audio’,Audio(sampling_rate=16000))
dataset.flatten() 展平嵌套结构数据
Map
1 | data=dataset.map(lambda example:{'new':example['s1']},remove_columns=['s1']) |
连接数据集
columns名相同则可以连接
1 | from datasets import concatenate_datasets |
save
- dataset.to_csv()
- dataset.to_json()
- dataset.to_pandas()
- dataset.to_dict()
list_metrics
查看全部的metrics
1 | from datasets import list_metrics |
load_metric
加载metric进行评测
1 | from datasets import load_metric |