使用数据集工具
一.数据集工具介绍HuggingFace通过API提供了统一的数据集处理工具,它提供的数据集如下所示:该界面左侧可以根据不同的任务类型、类库、语言、License等来筛选数据集,右侧为具体的数据集列表,其中有经典的glue、super_glue数据集,问答数据集squad,情感分类数据集imdb,纯文本数据集wikitext等。进入sgugger/glue-mrpc数据集页面,可看到对该数据集的相关介绍,如下所示:
二.使用数据集工具1.数据集加载和保存以加载seamew/ChnSentiCorp数据集为例,在线加载如下所示:
(相关资料图)
#第3章/加载数据集fromdatasetsimportload_datasetdataset=load_dataset(path="seamew/ChnSentiCorp")print(dataset)
load_dataset()函数的定义为:
defload_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章/从磁盘加载数据集fromdatasetsimportload_from_diskdataset=load_from_disk("./data/ChnSentiCorp")
4.取出数据部分
#使用train数据子集做后续的实验dataset=dataset["train"]
5.查看数据内容
#第3章/查看数据样例foriin[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章/过滤数据deff(data):returndata["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章/应用函数deff(data):data["text"]="Mysentence:"+data["text"]returndatamaped_datatset=dataset.map(f)print(dataset["text"][20])print(maped_datatset["text"][20])
15.使用批处理加速
#第3章/使用批处理加速deff(data):text=data["text"]text=["Mysentence:"+iforiintext]data["text"]=textreturndatamaped_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
关键词:
您可能也感兴趣:
今日热点
为您推荐
重邮校长寄语毕业生:在明星、偶像不断塌房的时代 青年人更应该有自己内心的坚守
【当前热闻】扎哈罗娃:俄罗斯已派出一架飞机飞往美国 接回俄驻美外交官
精工科技:精功机器人2022年度经审计实现净利润1727万元-环球动态
排行
最近更新
- 使用数据集工具
- 环球观速讯丨阴阳师神秘妖怪线索柴犬守护(阴阳师神秘妖怪线索)
- 2023文化旅游行业市场现状及发展研究分析
- 甘肃(岷州)国际陆港多式联运物流中心及基础设施配套项目(二期...
- 今日辟谣(2023年6月27日)
- 环球消息!家长学生看过来 !2023年中小学生暑期安全提示36条
- 天天看点:CISA 督促联邦机构修补 iPhone 漏洞
- 北京老旧小区改造探索长效机制!拟推可复制政策机制清单_天天...
- 【世界报资讯】西宁中院开展国际禁毒日主题宣传活动
- 重大工程加快进度 多路资金力挺交通基建
- 新华全媒+丨种粮大户的“新姿势”|每日观点
- 环球观天下!矿业大省辽宁再开工一特大型铁矿山:总投资超百...
- (“三抓三促”行动进行时·党组织书记谈落实·县委书记打擂...
- 每日短讯:常州:推动建设具有国际竞争力的新能源汽车先进制...
- 港股航运股多数上涨 东方海外中国涨超4%-天天最新
- 光伏复合材料:发展前景广阔,仍有诸多难题待解
- 长春高新: 第十届董事会第二十五次会议决议公告
- 世界快消息!拉卡拉最新公告:拟回购200万股-400万股
- 济南建设5G基站4.3万处,主城区5G网络连续覆盖
- 吕连谓:高热犹攀锦屏山-每日快看
- 天天快看点丨步科股份:6月26日公司高管池家武减持公司股份合...
- 沙特2030愿景:多元产业发展新机遇,私营行业GDP占比、外国直...
- 中国报业创新发展大会在南京举行 南财金融终端入选中国报业...
- 北京政策性农险产品增加至65个 覆盖全市13个郊区县|环球报道
- 世界观热点:毒品犯罪高发势头得到有效遏制 全国铁路公安机...
- 重邮校长寄语毕业生:在明星、偶像不断塌房的时代 青年人更...
- 高温黄色预警中,北京今天最高气温39℃!近来北方地区为何这...
- 王慧文病倒,光年之外会草草收场吗? 天天热点
- 【私募调研记录】阿杏投资调研厦门钨业_世界微动态
- 每日速读!38位古稀老人讨薪屡碰壁!多亏他们出手相助,讨回20...
今日要闻
- 今日聚焦!辽宁省2023二建成绩公布网站:辽宁人事考试网
- 焦点快播:从银行破产到AI狂潮,复盘2023上半年全球股市的投资主题
- 每日观察!中共中央纪委关于规范和明确党员受留党察看处分期满后恢复党员权利等工作程序的通知
- 从端午产业“三变”看消费市场活力
- 能吃能喝能上天,还能保存上千年!多地高校录取通知书上新_每日快播
- 【研报掘金】机构:氢能产业化进程加速 产业链股受关注|热头条
- 【学思想 强党性 重实践 建新功·学习进行时】推动广东农村生活污水治理工作再上新台阶|热门看点
- 2023年大学毕业后规划 2023年大学毕业生就业率_全球速讯
- 野心不小,日本解读武器出口原则,强词夺理只为打破限制
- 世界聚焦:扬州:购买市区改善性住房不再执行限购 人才购房给予契税100%补贴