SST-2(Stanford Sentiment Treebank 2)数据集: 情感分析 二分类数据集

SST-2 数据集简介

SST-2(Stanford Sentiment Treebank 2)是 情感分析(Sentiment Analysis) 任务中常用的 二分类数据集,来源于斯坦福大学的 Stanford Sentiment Treebank,用于 自然语言处理(NLP)模型的训练和评估


1. SST-2 的特点

  • 任务类型:二分类(positive / negative)
  • 数据来源:IMDB 电影评论
  • 标签类别
    • 1(正向情感 Positive)
    • 0(负向情感 Negative)
  • 总样本数:约 67,000
  • 数据格式
    • 训练集(Train):约 67,000
    • 开发集(Dev):约 872
    • 测试集(Test):1,821 条(无标签)
  • 评估指标准确率(Accuracy)

SST-2 主要用于 GLUE Benchmark 任务之一,是评测 NLP 预训练模型(如 BERT、RoBERTa、GPT) 重要的数据集。


2. SST-2 数据格式

示例数据

sentence	label
This film is amazing and full of life.	1
I didn't like the movie at all.	0
One of the worst films I have ever watched.	0
A beautiful and touching story.	1

数据文件

  • train.tsv(训练集)
  • dev.tsv(验证集)
  • test.tsv(测试集,无标签)

每个文件包含两列:

  • sentence:电影评论文本
  • label:情感标签(1=正向,0=负向)

3. 加载 SST-2 数据集

3.1 使用 Hugging Face datasets

from datasets import load_dataset

# 加载 SST-2 数据集
dataset = load_dataset("glue", "sst2")

# 查看数据
print(dataset["train"][0])

输出

{'sentence': 'hide new secretions from the parental units ', 'label': 0}

3.2 使用 pandas 读取

import pandas as pd

# 读取训练数据
train_data = pd.read_csv("sst2/train.tsv", delimiter="\t")

# 显示前 5 条数据
print(train_data.head())

4. 训练情感分析模型(BERT)

4.1 使用 Hugging Face transformers 进行微调

from transformers import AutoTokenizer, AutoModelForSequenceClassification, Trainer, TrainingArguments

# 加载预训练的 BERT tokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

# 加载模型
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)

# 对文本进行分词
def preprocess_function(examples):
    return tokenizer(examples["sentence"], padding="max_length", truncation=True)

# 处理数据
encoded_dataset = dataset.map(preprocess_function, batched=True)

# 训练配置
training_args = TrainingArguments(output_dir="./results", evaluation_strategy="epoch")
trainer = Trainer(model=model, args=training_args, train_dataset=encoded_dataset["train"], eval_dataset=encoded_dataset["validation"])

# 开始训练
trainer.train()

5. SST-2 在 GLUE Benchmark

SST-2 是 GLUE(General Language Understanding Evaluation) 任务之一,用于评测 NLP 预训练模型的情感分类能力。一些经典模型的 SST-2 测试集准确率:

模型SST-2 准确率
BERT-base92.4%
RoBERTa-base94.8%
T5-large96.0%

6. 结论

  • SST-2 是一个二分类情感分析数据集,用于 NLP 模型评估。
  • GLUE Benchmark 采用 SST-2 测试模型性能,BERT、RoBERTa、GPT 等模型常用于此任务。
  • Hugging Face 提供 SST-2 数据集,可以快速加载并用于训练 Transformer 模型。
网络模型采用基本的lstm和rnn模型,并再次基础上引入bert的预训练embedding层以及attention来进行优化。本次文本分类任务完整的流程包括:库导入、数据集处理与加载、网络模型的构建、损失函数和优化器、训练….zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值