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-base | 92.4% |
RoBERTa-base | 94.8% |
T5-large | 96.0% |
6. 结论
- SST-2 是一个二分类情感分析数据集,用于 NLP 模型评估。
- GLUE Benchmark 采用 SST-2 测试模型性能,BERT、RoBERTa、GPT 等模型常用于此任务。
- Hugging Face 提供 SST-2 数据集,可以快速加载并用于训练 Transformer 模型。