HUGGINFACE NLP-dataset

news/2024/12/20 2:38:34/

dataset_isnt_on_the_Hub_2">1 What if my dataset isn’t on the Hub?

1.1 Working with local and remote datasets
1.1.1 supports several common data formats,

CSV & TSV	csv	load_dataset("csv", data_files="my_file.csv")
Text files	text	load_dataset("text", data_files="my_file.txt")
JSON & JSON Lines	json	load_dataset("json", data_files="my_file.jsonl")
Pickled DataFrames	pandas	load_dataset("pandas", data_files="my_dataframe.pkl")
load_dataset("arrow", data_files={'train': 'train.arrow', 'test': 'test.arrow'})

1.1.2 load function

from datasets import load_datasetsquad_it_dataset = load_dataset("json", data_files="SQuAD_it-train.json", field="data")
squad_it_dataset["train"][0]

1.1.3 load split data files

data_files = {"train": "SQuAD_it-train.json", "test": "SQuAD_it-test.json"}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")
squad_it_dataset
1.1.4	Loading a remote dataset
url = "https://github.com/crux82/squad-it/raw/master/"
data_files = {"train": url + "SQuAD_it-train.json.gz","test": url + "SQuAD_it-test.json.gz",
}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")

1.1.5 arrow- use dataset directly

from datasets import Dataset
dataset = Dataset.from_file("data.arrow")

与 load_dataset() 不同,Dataset.from_file() 会将 Arrow 文件内存映射,而不会在缓存中准备数据集,从而为您节省磁盘空间。在这种情况下,用于存储中间处理结果的缓存目录将是 Arrow 文件目录。

2 reference url

2.1 https://hugging-face.cn/docs/datasets

3 Slicing and dicing our data

3.1 differences of Slicing and dicing
3.1.1 Slice(切片):在数据库中,Slice是指将数据集按照某个维度进行切割。这个维度可以是时间、地理位置、产品类别等。通过切片,可以将数据集划分成不同的部分,以便进行更详细的分析。例如,可以将销售数据按照时间切片成不同的时间段,比如按月、按季度或按年,以便分析每个时间段的销售情况。
3.1.2 Dice(切块):Dice是指将数据集按照多个维度进行切块处理。切块可以理解为对数据进行多维度的交叉分析。例如,可以将销售数据按照时间和地理位置进行切块,以便分析不同时间和地理位置下的销售情况。这样可以更全面地了解销售数据在不同维度下的变化和趋势。
3.2 grab a small random sample to get a quick feel for the type of data
3.2.1

drug_sample = drug_dataset["train"].shuffle(seed=42).select(range(1000))
# Peek at the first few examples
drug_sample[:3]

3.2.2 use the Dataset.unique() function to verify that the number of IDs matches the number of rows in each split

for split in drug_dataset.keys():assert len(drug_dataset[split]) == len(drug_dataset[split].unique("Unnamed: 0"))

3.3 use map()
3.3.1 map可以和batch结合,进行加速

new_drug_dataset = drug_dataset.map(lambda x: {"review": [html.unescape(o) for o in x["review"]]}, batched=True
)

With Dataset.map() and batched=True you can change the number of elements in your dataset
3.3.2 cooperation with tokenizer

def tokenize_function(examples):return tokenizer(examples["review"], truncation=True)
tokenized_dataset = drug_dataset.map(tokenize_function, batched=True)
fast or slow tokenize mode ,fast tokenizers are the default 
slow_tokenizer = AutoTokenizer.from_pretrained("bert-base-cased", use_fast=False)
truncation and overflow data
def tokenize_and_split(examples):return tokenizer(examples["review"],truncation=True,max_length=128,return_overflowing_tokens=True,)
  • GPU
    • Tokenization is string manipulation.
    • There is no way this could speed up using a GPU

3.4 pandas

drug_dataset.set_format("pandas")

3.5 Creating a validation set

drug_dataset_clean = drug_dataset["train"].train_test_split(train_size=0.8, seed=42)
# Rename the default "test" split to "validation"
drug_dataset_clean["validation"] = drug_dataset_clean.pop("test")
# Add the "test" set to our `DatasetDict`
drug_dataset_clean["test"] = drug_dataset["test"]
drug_dataset_clean

3.6 Saving a dataset

drug_dataset_clean.save_to_disk(“drug-reviews”)

3.6.2 drug_dataset_reloaded = load_from_disk(“drug-reviews”)

datasets_129">4 Big data-Streaming datasets

pubmed_dataset_streamed = load_dataset("json", data_files=data_files, split="train", streaming=True
)

4.1.1 return an IterableDataset object
4.1.2 use next to acess data

next(iter(pubmed_dataset_streamed))

4.2 shuffle
4.2.1 only shuffles the elements in a predefined buffer_size:

shuffled_dataset = pubmed_dataset_streamed.shuffle(buffer_size=10_000, seed=42)
next(iter(shuffled_dataset))

4.3 datasets.interleave_datasets
4.3.1 Interleave several datasets (sources) into a single dataset
4.4 benefits
4.4.1 Accessing memory-mapped files is faster than reading from or writing to disk.
4.4.2 Applications can access segments of data in an extremely large file without having to read the whole file into RAM first.


http://www.ppmy.cn/news/1556538.html

相关文章

【Liunx-后端开发软件安装】Liunx安装minio

【Liunx-后端开发软件安装】Liunx安装nginx 使用安装包安装 一、简介 MinIO 是一个高性能的对象存储系统,专为处理大规模非结构化数据而设计。它完全兼容 Amazon S3 API,这使得 MinIO 不仅可以作为本地存储解决方案,还能轻松地与基于云的服务…

金蝶云苍穹踩过的坑(慢慢更新)

IDEA不能用最新版,不然搜不到金蝶的插件。 我用的是2024.1.7/2023.1.7 IDEA里增加金蝶插件库的地址也变了,现在是 https://tool.kingdee.com/kddt/idea-updatePlugins.xml 金蝶云苍穹部署在服务器 MAC本地IDEA调试的时候,登录N次能成功一次…

决策引擎技术

决策引擎(Decision Engine)是一种用于自动化决策过程的软件系统。它通常用于处理复杂的业务逻辑,根据输入的数据和预定义的规则或模型来做出决策。决策引擎在许多领域都有广泛的应用,如金融、保险、医疗、供应链管理等。 在Java中…

linux centos 7 安装 mongodb7

MongoDB 是一个基于文档的 NoSQL 数据库。 MongoDB 是一个文档型数据库,数据以类似 JSON 的文档形式存储。 MongoDB 的设计理念是为了应对大数据量、高性能和灵活性需求。 MongoDB使用集合(Collections)来组织文档(Documents&a…

快速且靠谱的简单安装 PostgreSQL 15 yum 安装postgis3.3

快速且靠谱的简单安装 PostgreSQL 15 yum 安装postgis3.3 1、确保已经安装了PostgreSQL数据库。2、添加PostGIS的EPEL仓库3、使用YUM安装PostGIS4、以下为其他安装方式,一个个去找源码的编译安装,过程较为繁琐(不熟路的不推荐) 要…

设计模式の建造者适配器桥接模式

文章目录 前言一、建造者模式二、适配器模式2.1、对象适配器2.2、接口适配器 三、桥接模式 前言 本篇是关于设计模式中建造者模式、适配器模式(3种)、以及桥接模式的笔记。 一、建造者模式 建造者模式是属于创建型设计模式,通过一步步构建一个…

【嵌入式——QT】QT多线程编程

这里介绍的是moveToThread的方式&#xff0c;继承QThread的方式可以参考我的另一篇文章【嵌入式——QT】QThread创建多线程 编程实现 首先创建一个类&#xff0c;但是这个类一定要继承QObject SerialWorker.h #ifndef SERIALWORKER_H #define SERIALWORKER_H#include <QO…

GPT 时代,精进编程思维 + 熟练 Prompt 是否是新的编程范式?

GPT时代程序员已经不用写代码了&#xff1f; 真实案例&#xff1a;我用GPT的一天 早上9点&#xff0c;我打开电脑&#xff0c;开始和GPT结对编程&#xff1a; 我&#xff1a;帮我写个并发队列 GPT&#xff1a;好的&#xff0c;这是一个线程安全的... 我&#xff1a;等等&…