使用数据集工具

使用,数据,工具 · 浏览次数 : 33

小编点评

**内容摘要** * HuggingFace自然语言处理详解。 * 基于BERT中文模型的任务实战。 * 数据集:Seamew ChnSentiCorp。 * 数据格式:CSV、JSON。 * 操作方法:加载、映射、设置格式、保存。 **排版摘要** * 数据集: * Seamew ChnSentiCorp。 * 数据格式: * CSV、JSON。 * 操作方法: * 加载、映射、设置格式、保存。 * 内容摘要: * HuggingFace自然语言处理详解。 * 基于BERT中文模型的任务实战。 * 数据集:Seamew ChnSentiCorp。 * 数据格式:CSV、JSON。 * 操作方法:加载、映射、设置格式、保存。

正文

一.数据集工具介绍
HuggingFace通过API提供了统一的数据集处理工具,它提供的数据集如下所示: 该界面左侧可以根据不同的任务类型、类库、语言、License等来筛选数据集,右侧为具体的数据集列表,其中有经典的glue、super_glue数据集,问答数据集squad,情感分类数据集imdb,纯文本数据集wikitext等。进入sgugger/glue-mrpc数据集页面,可看到对该数据集的相关介绍,如下所示:

二.使用数据集工具
1.数据集加载和保存
以加载seamew/ChnSentiCorp数据集为例,在线加载如下所示:

#第3章/加载数据集
from datasets import load_dataset
dataset = load_dataset(path='seamew/ChnSentiCorp')
print(dataset)

load_dataset()函数的定义为:

def load_dataset(
    path: str,
    name: Optional[str] = None,
    data_dir: Optional[str] = None,
    data_files: Optional[Union[str, Sequence[str], Mapping[str, Union[str, Sequence[str]]]]] = None,
    split: Optional[Union[str, Split]] = None,
    cache_dir: Optional[str] = None,
    features: Optional[Features] = None,
    download_config: Optional[DownloadConfig] = None,
    download_mode: Optional[Union[DownloadMode, str]] = None,
    verification_mode: Optional[Union[VerificationMode, str]] = None,
    ignore_verifications="deprecated",
    keep_in_memory: Optional[bool] = None,
    save_infos: bool = False,
    revision: Optional[Union[str, Version]] = None,
    use_auth_token: Optional[Union[bool, str]] = None,
    task: Optional[Union[str, TaskTemplate]] = None,
    streaming: bool = False,
    num_proc: Optional[int] = None,
    storage_options: Optional[Dict] = None,
    **config_kwargs,
) -> Union[DatasetDict, Dataset, IterableDatasetDict, IterableDataset]:

重点介绍几个参数,比如使用path指定数据集,name指定数据子集,split指定要加载的数据部分:

#第3章/加载glue数据集
dataset = load_dataset(path='glue', name='sst2', split='train')
print(dataset)

2.将数据集保存到本地磁盘

#第3章/将数据集保存到磁盘
dataset.save_to_disk(dataset_dict_path='./data/ChnSentiCorp')

3.从本地磁盘加载数据集

#第3章/从磁盘加载数据集
from datasets import load_from_disk
dataset = load_from_disk('./data/ChnSentiCorp')

4.取出数据部分

#使用train数据子集做后续的实验
dataset = dataset['train']

5.查看数据内容

#第3章/查看数据样例
for i in [12, 17, 20, 26, 56]:
    print(dataset[i])

6.数据排序
使用sort()函数让数据按照某个字段排序:

#第3章/排序数据
#数据中的label是无序的
print(dataset['label'][:10])
#让数据按照label排序
sorted_dataset = dataset.sort('label')
print(sorted_dataset['label'][:10])
print(sorted_dataset['label'][-10:])

7.打乱数据
使用shuffle()函数打乱数据:

#第3章/打乱数据顺序
shuffled_dataset=sorted_dataset.shuffle(seed=42)
shuffled_dataset['label'][:10]

8.数据抽样
使用select()函数从数据集中选择某些数据,然后组装成一个数据子集:

#第3章/从数据集中选择某些数据
dataset.select([0, 10, 20, 30, 40, 50])

9.数据过滤
使用filter()函数可以按照自定义的规则过滤数据:

#第3章/过滤数据
def f(data):
    return data['text'].startswith('非常不错')
dataset.filter(f)

10.训练测试集拆分
可以使用train_test_split()函数将数据集切分为训练集和测试集:

#第3章/切分训练集和测试集
dataset.train_test_split(test_size=0.1)

11.数据分桶
使用shared()函数把数据均匀地分为n部分:

#第3章/数据分桶
dataset.shard(num_shards=4, index=0)

其中,num_shards表示要把数据均匀地分为几部分,index表示要取出第几份数据。
12.重命名字段
使用rename_column()函数可以重命名字段:

#第3章/字段重命名
dataset.rename_column('text''text_rename')

13.删除字段
使用remove_columns()函数可以删除字段:

#第3章/删除字段
dataset.remove_columns(['text'])

14.映射函数
使用map()函数遍历数据,并且对每条数据都进行修改:

#第3章/应用函数
def f(data):
    data['text'] = 'My sentence: ' + data['text']
    return data
maped_datatset = dataset.map(f)
print(dataset['text'][20])
print(maped_datatset['text'][20])

15.使用批处理加速

#第3章/使用批处理加速
def f(data):
    text=data['text']
    text=['My sentence: ' + i for i in text]
    data['text']=text
    return data
maped_datatset=dataset.map(function=f, batched=True, batch_size=1000, num_proc=4)
print(dataset['text'][20])
print(maped_datatset['text'][20])

16.设置数据格式
使用set_format()函数修改数据格式:

#第3章/设置数据格式
dataset.set_format(type='torch', columns=['label'], output_all_columns=True)
print(dataset[20])

其中,type表示要修改的数据类型(numpy|torch|tensorflow|pandas等),columns表示要修改格式的字段,output_all_columns表示是否要保留其它字段,设置为True表示保留。
17.将数据保存为CSV格式

#第3章/导出为CSV格式
dataset = load_dataset(path='seamew/ChnSentiCorp', split='train')
dataset.to_csv(path_or_buf='./data/ChnSentiCorp.csv')
#加载CSV格式数据
csv_dataset = load_dataset(path='csv', data_files='./data/ChnSentiCorp.csv', split='train')
print(csv_dataset[20])

18.保存数据为JSON格式

#第3章/导出为JSON格式
dataset=load_dataset(path='seamew/ChnSentiCorp', split='train')
dataset.to_json(path_or_buf='./data/ChnSentiCorp.json')
#加载JSON格式数据
json_dataset=load_dataset(path='json', data_files='./data/ChnSentiCorp.json', split='train')
print(json_dataset[20])

参考文献:
[1]《HuggingFace自然语言处理详解:基于BERT中文模型的任务实战》
[2]https://huggingface.co/datasets/seamew/ChnSentiCorp

与使用数据集工具相似的内容:

使用数据集工具

一.数据集工具介绍 HuggingFace通过API提供了统一的数据集处理工具,它提供的数据集如下所示: 该界面左侧可以根据不同的任务类型、类库、语言、License等来筛选数据集,右侧为具体的数据集列表,其中有经典的glue、super_glue数据集,问答数据集squad,情感分类数据集imdb

使用训练工具

HuggingFace上提供了很多已经训练好的模型库,如果想针对特定数据集优化,那么就需要二次训练模型,并且HuggingFace也提供了训练工具。 一.准备数据集 1.加载编码工具 加载hfl/rbt3编码工具如下所示: def load_encode(): # 1.加载编码工具 # 第6章/加载

4.4 C++ Boost 数据集序列化库

Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质量和性能,并且可以适用于多种不同的系统平台和编译器。Boost库已被广泛应用于许多不同领域的C++应用程序

2023最新nacos的windows 10安装(保姆级)

前景提要 Nacos 致力于帮助您发现、配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理,一个好的工具,文档也很全面,可以学习使用. 一、环境整合 构建工具(参考工具部署方式) | 软件名称 | 版本 | 相关文章推荐 | | |

数仓现网案例丨超大结果集接收异常

用户使用数据库客户端工具如navicat、dbeaver等执行超大结果集的查询语句导致异常中断,中断信息Last read message sequence %d is not equal to the max written message sequence %d。

两个表取差集再插入到另一张表中

@目录概要思路梳理实现步骤小结 概要 工作中采集时候遇到一个问题,就是两张结构一样的表数据不同,哪里不同呢,如t1表是基础表,里面数据量大,但是它不全,t2表有少数t1的数据也有一些自己额外的数据,我的需求是把t2里面t1没有的数据插入到t1中 思路梳理 这种也简单就是在t2中取t1和t2的差集,然

[转帖]使用 Dumpling 导出数据

16 Contributors 使用数据导出工具 Dumpling,你可以把存储在 TiDB 或 MySQL 中的数据导出为 SQL 或 CSV 格式,用于逻辑全量备份。Dumpling 也支持将数据导出到 Amazon S3 中。 要快速了解 Dumpling 的基本功能,建议先观看下面的培训视频

数据可视化分析之新技能——魔数图

数据可视化分析之新技能——魔数图 大家在使用数据可视化工具进行数据设计的时候,有没有遇到过这些设计场景:部门人员的履历细信息、工厂各个产线的生产状态和生产信息、公司各个部门的KPI信息……这些数据都有一个共同的特点:数据结构相同,但是内容各有不同;布局相同,但展示的样式相同。在传统场景中我们要实现这

[粘贴]使用 Dumpling 导出数据

https://docs.pingcap.com/zh/tidb/stable/dumpling-overview#dumpling-%E4%B8%BB%E8%A6%81%E9%80%89%E9%A1%B9%E8%A1%A8 使用数据导出工具 Dumpling,你可以把存储在 TiDB 或 MySQ

阿里的AIGC数据库工具: Chat2DB的学习与使用

# 阿里的AIGC数据库工具: Chat2DB的学习与使用 ## 背景 ``` 今天陪家中老人去完医院后, 继续回来学习时发现 阿里巴巴的 chat2DB已经发布的 2.0.1的版本. 想着下载下来试试. 主要也是备忘, 然后尝试学习一下 kingbase ``` ## 下载 ``` https:/