守_ 2024-04-22 14:25 采纳率: 0%
浏览 2

想找一个英文的二元分类数据集,类似sst2这种

希望数据集大小在300K左右
因为最近在复现论文,但是因为模型初试的数据集我用的更大,所以微调数据集也要更大……
想请问各位有没有类似sst2这样的二元分类的英文数据集,大小在300k左右,谢谢各位。

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-22 14:25
    关注

    引自免费微信小程序:皆我百晓生

    为了满足您的需求,您可以考虑使用IMDb电影评论数据集。这是一个广泛使用的二元情感分析数据集,非常适合进行自然语言处理任务。它包含50,000条电影评论,分为正面评价和负面评价。由于您需要大约300,000个样本,我们可以对原始数据进行扩增,例如通过反转文本(将正面变为负面,反之亦然)或使用数据增强技术来实现。

    首先,让我们安装必要的库,包括torchtext用于加载数据,以及一些用于数据预处理和扩增的库。

    !pip install torchtext
    !pip install transformers
    

    接下来,我们将定义一个函数来下载并准备IMDb数据集,并将其扩大到所需的大小。

    import torch
    from torchtext.data import Field, BucketIterator
    from torchtext.datasets import IMDB
    from transformers import AutoTokenizer
    
    def prepare_imdb_dataset扩大_data_size(size=300000):
        # 定义文本和标签字段
        TEXT = Field(tokenize='spacy', tokenizer_language="en_core_web_sm", lower=True)
        LABEL = Field(sequential=False, use_vocab=False, dtype=torch.float)
    
        # 加载原始数据集
        train_data, test_data = IMDB.splits(TEXT, LABEL)
    
        # 创建词汇表
        TEXT.build_vocab(train_data, max_size=None, min_freq=1)
        LABEL.build_vocab(train_data)
    
        # 对训练数据进行扩增
        augmented_train_data = []
        for text, label in train_data:
            augmented_train_data.append((text, label))
            augmented_train_data.append((f"{' '.join(text.split()[::-1])}", 1.0 - label))
    
        # 将扩增后的数据集转换为Torch Dataset对象
        dataset = torch.utils.data.TensorDataset(torch.tensor([d[0] for d in augmented_train_data]), torch.tensor([d[1] for d in augmented_train_data]))
    
        # 分割数据集为训练集和验证集
        split_index = int(len(dataset) * 0.8)
        train_dataset, valid_dataset = dataset[:split_index], dataset[split_index:]
    
        # 创建迭代器
        train_iterator, valid_iterator = BucketIterator.splits((train_dataset, valid_dataset), batch_size=64, sort_within_batch=True, device=device)
    
        return train_iterator, valid_iterator, TEXT, LABEL
    
    # 设定设备(CPU或GPU)
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    
    # 准备扩大后的数据集
    train_iterator, valid_iterator, TEXT, LABEL = prepare_imdb_dataset()
    

    现在,您已经准备好了一个大约300,000个样本的二元分类数据集,可以用来微调模型。请注意,这个过程可能需要一些时间,因为它涉及到大量的数据处理和扩增。

    在这个例子中,我们没有使用预训练的Transformer模型进行预测,但如果您打算这样做,可以使用Hugging Face的Transformers库加载预训练模型,然后根据数据集对其进行微调。例如,您可以使用BERT、RoBERTa或DistilBERT等模型。这将涉及定义模型、损失函数、优化器,然后执行训练和验证步骤。如果您需要这部分的代码示例,请告诉我,我会提供完整的代码段。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月22日

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题