Python---爬虫---Save---CSV

csv写入:

import csv

# 文件写入
with open('data.csv', 'w') as csvfile:
   
    # 初始化写入对象
    f_csv_wt = csv.writer(csvfile)

    # writerow  写入
    f_csv_wt.writerow(['id', 'name', 'age'])

    # writerows  写入多行
    f_csv_wt.writerows(['id', 'name', 'age'],[0, 1, 2])

    # 写入的内容会在一列以空格分开
    # f_csv_wt = csv.writer(csvfile,delimiter=' ')

    # 写入字典格式数据
    filetags = ['id', 'name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=filetags)
    writer.writeheader()  # 定义文件title头信息
    f_csv_wt.writerow({'id': '0', 'name': '1', 'age': 2})


# 文件读取

with open('data.csv', 'w') as csvfile:
    # 初始化读取对象
    f_csv_rd = csv.reader(csvfile)
    #跳过title首行读取
    header = next(f_csv_rd)

 

为 `bert-base-chinese` 模型构建或获取适合的中文训练数据集是微调模型的关键步骤。以下是几种常见方法和建议,以帮助获取或构建高质量的中文数据集。 ### 1. 获取公开可用的中文数据集 目前,已有多个公开的中文数据集可用于 BERT 模型的微调。这些数据集通常涵盖文本分类、情感分析、问答系统等任务。 - **ChnSentiCorp**:一个中文情感分析数据集,适用于情感分类任务,包含商品评论数据。可以通过 `datasets` 库加载: ```python from datasets import load_dataset dataset = load_dataset("lansinuote/ChnSentiCorp") ``` 数据集包含训练集和验证集,文本内容经过清洗和标注,适合直接用于 BERT 模型微调 [^2]。 - **THUCNews**:清华大学整理的新闻分类数据集,包含多个类别,适用于文本分类任务。 - **Weibo Sentiment Analysis Dataset**:微博情感分析数据集,适用于社交媒体场景的情感分析任务。 ### 2. 构建自定义中文数据集 如果公开数据集无法满足特定需求,可以自行构建数据集。以下是一些构建数据集的方法: - **数据采集**: - 网络爬虫:使用爬虫工具(如 Scrapy)从新闻网站、社交媒体平台(如微博、知乎)等抓取文本数据。 - 人工标注:通过众包平台(如 Amazon Mechanical Turk 或国内的“百度众测”)进行数据标注。 示例代码:加载自定义的 CSV 文件作为数据集: ```python from datasets import load_dataset data = load_dataset(path="csv", data_files="data/news/train.csv", split="train") print(data) for i in data: print(data["text"]) ``` 该代码适用于从本地 CSV 文件中读取数据,适合自定义数据集的初步处理 [^3]。 - **数据清洗与预处理**: - 去除特殊字符、HTML 标签、重复内容。 - 对文本进行分词、去除停用词等操作。 - 统一文本长度,确保符合 BERT 输入格式要求(最大长度为 512 token)。 ### 3. 数据格式化与 Tokenization BERT 模型要求输入数据为特定的 token 序列。使用 Hugging Face 提供的 `transformers` 库可以轻松完成这一过程: ```python from transformers import BertTokenizer tokenizer = BertTokenizer.from_pretrained("bert-base-chinese") def tokenize_function(examples): return tokenizer(examples["text"], truncation=True, padding="max_length", max_length=128) tokenized_datasets = dataset.map(tokenize_function, batched=True) tokenized_datasets.set_format(type="torch", columns=["input_ids", "attention_mask", "label"]) ``` 该代码片段展示了如何将文本转换为 BERT 可用的 `input_ids` 和 `attention_mask`,并确保数据可用于 PyTorch 模型 [^2]。 ### 4. 数据集划分与增强 - **数据集划分**: - 将数据划分为训练集、验证集和测试集(例如 80% 训练集、10% 验证集、10% 测试集)。 - 使用 `train_test_split` 方法进行划分: ```python from sklearn.model_selection import train_test_split train_data, test_data = train_test_split(data, test_size=0.2) ``` - **数据增强**: - 同义词替换:使用同义词库(如同义词词林)进行词语替换。 - 随机插入/删除:在文本中随机插入或删除某些词以增加数据多样性。 ### 5. 数据集存储与加载 处理完数据后,可以将数据集保存为文件,以便后续使用: ```python tokenized_datasets.save_to_disk("processed_dataset") ``` 加载已保存的数据集: ```python from datasets import load_from_disk loaded_dataset = load_from_disk("processed_dataset") ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值