当前位置: 首页> 汽车> 报价 > 沈阳京科医院男科_建筑企业资质_南京高端品牌网站建设_网络营销的原理

沈阳京科医院男科_建筑企业资质_南京高端品牌网站建设_网络营销的原理

时间:2025/7/11 5:19:46来源:https://blog.csdn.net/ljd939952281/article/details/142931267 浏览次数: 0次
沈阳京科医院男科_建筑企业资质_南京高端品牌网站建设_网络营销的原理

        在自然语言处理 (NLP) 中,数据的加载、预处理和处理效率是模型训练成功的关键因素之一。使用高效的数据处理框架,特别是在数据量庞大的情况下,是实现高性能训练的基础。本篇博文将介绍如何使用 Huggingface Datasets 来加载、处理和保存数据集。我们将详细探讨如何使用本地数据文件、流式处理大规模数据、清理和标准化数据,以及如何与 Pandas 集成进行高级数据分析。无论是小型实验还是大规模训练,这些工具和技术都能帮助你提升工作效率。

1. 使用自定义数据集

        在本节中,我们展示如何加载并处理本地或远程的数据集,包括如何使用 Huggingface Datasets 的不同加载脚本。

数据格式和加载脚本
数据格式加载脚本示例
CSV 和 TSVcsvload_dataset("csv", data_files="my_file.csv")
文本文件textload_dataset("text", data_files="my_file.txt")
JSON 和 JSON Linesjsonload_dataset("json", data_files="my_file.jsonl")
Pickled DataFramespandasload_dataset("pandas", data_files="my_dataframe.pkl")
加载本地数据集

        使用 UCI 药物评论数据集作为示例,我们首先下载并解压文件:

wget -P data/ "https://archive.ics.uci.edu/ml/machine-learning-databases/00462/drugsCom_raw.zip"
unzip data/drugsCom_raw.zip -d data/

        接着加载本地 TSV 文件:

from datasets import load_datasetdrug_dataset = load_dataset("csv", data_files="data/drugsComTrain_raw.tsv", delimiter="\t"
)

        要同时加载训练集和测试集,可以这样设置:

data_files = {"train": "data/drugsComTrain_raw.tsv","test": "data/drugsComTest_raw.tsv"
}
drug_dataset = load_dataset("csv", data_files=data_files, delimiter="\t")
2. 数据集的流式处理

        Huggingface Datasets 提供了流式处理的功能,避免了内存限制。我们可以通过设置 streaming=True 实现:

drug_dataset_streamed = load_dataset("csv", data_files=data_files, delimiter="\t", streaming=True
)

        流式数据集返回的是 IterableDataset 对象,可以使用 iter() 迭代:

print(next(iter(drug_dataset_streamed["train"])))

        对于流式数据集,可以使用 map() 进行动态处理:

from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
tokenized_dataset = drug_dataset_streamed.map(lambda x: tokenizer(x["review"]))
3. 数据预处理

        我们可以通过 map()filter() 轻松实现数据清理和标准化。

规范化列名
drug_dataset = drug_dataset.rename_column(original_column_name="Unnamed: 0", new_column_name="patient_id"
)
标准化标签和过滤数据

        将 condition 列内容转换为小写,并过滤掉短评论:

drug_dataset = drug_dataset.map(lambda x: {"condition": x["condition"].lower()})
drug_dataset = drug_dataset.filter(lambda x: len(x["review"].split()) > 30)
处理HTML字符
import htmldrug_dataset = drug_dataset.map(lambda x: {"review": html.unescape(x["review"])})
4. 高效预处理

        我们使用 batched=True 和快速 tokenizer 加速数据处理:

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased", use_fast=True)tokenized_dataset = drug_dataset.map(lambda x: tokenizer(x["review"], truncation=True), batched=True
)
5. 使用 Pandas 进行分析

        将数据集转换为 Pandas DataFrame 进行分析:

drug_dataset.set_format("pandas")
train_df = drug_dataset["train"][:]
print(train_df.head())

        分析后,可以将 Pandas 数据转换回 Huggingface Dataset:

from datasets import Datasettrain_dataset = Dataset.from_pandas(train_df)
6. 数据集的拆分与保存

        我们可以将训练集拆分为训练集和验证集:

drug_dataset_clean = drug_dataset["train"].train_test_split(train_size=0.8, seed=42)
drug_dataset_clean["validation"] = drug_dataset_clean.pop("test")

        将处理后的数据集保存到磁盘:

drug_dataset_clean.save_to_disk("drug-reviews")

        加载已保存的数据:

from datasets import load_from_diskdrug_dataset_reloaded = load_from_disk("drug-reviews")
结语

        在本篇博文中,我们深入探讨了如何使用 Huggingface Datasets 加载、处理和管理数据集,从本地文件读取到流式处理大规模数据,为训练提供了全面的支持。借助 map()filter() 等函数,我们能够轻松实现数据预处理,如清理 HTML 标签、规范标签格式以及去除异常数据。此外,我们还展示了如何结合 Pandas 进行高级数据分析,并将处理后的数据集保存为不同格式,确保在项目中的灵活使用。

        掌握这些数据操作技巧后,你将更有信心应对各种 NLP 数据集的处理需求,并为后续的模型训练打下扎实基础。在下一篇文章中,我们将探索如何从现有语料库训练一个新的 tokenizer,从而为特定任务构建更加高效的模型。敬请期待!

如果你觉得这篇博文对你有帮助,请点赞、收藏、关注我,并且可以打赏支持我!

欢迎关注我的后续博文,我将分享更多关于人工智能、自然语言处理和计算机视觉的精彩内容。

谢谢大家的支持!

关键字:沈阳京科医院男科_建筑企业资质_南京高端品牌网站建设_网络营销的原理

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: