主题
数据集与评估
在 NLP 中,数据集与评估指标决定了模型训练的质量与性能衡量标准。本章将介绍常见数据集类型、获取方法以及评价模型的指标。
一、常见数据集类型
类型 | 示例 | 说明 |
---|---|---|
文本分类 | IMDB、AG News、SST-2 | 文本对应类别标签 |
序列标注 | CoNLL-2003(NER)、Penn Treebank(POS) | 每个 token 对应标签 |
序列生成 | WMT(机器翻译)、CNN/DailyMail(摘要) | 输入序列 → 输出序列 |
对话 | DSTC、Persona-Chat | 多轮问答或对话 |
多模态 | Multi30k、Flickr30k | 文本 + 图像 |
二、数据集获取与预处理
获取方式
- 官方网站下载
- Hugging Face
datasets
库 - 自行爬取或整理数据
预处理
- 文本清洗:去除特殊符号、HTML 标签
- 分词或子词切分
- 构建词表 / 使用预训练分词器
- 标签映射到数字 ID
三、模型评估指标
1. 分类任务
- Accuracy(准确率)
- Precision(精确率)
- Recall(召回率)
- F1-score(F1值)
- 混淆矩阵(Confusion Matrix)
2. 序列标注任务(NER/POS)
- Token-level accuracy
- Entity-level F1-score
3. 序列生成任务(翻译 / 摘要)
- BLEU:衡量生成文本与参考文本的 n-gram 重叠
- ROUGE:常用于摘要评估
- METEOR:兼顾语义匹配
四、Hugging Face 示例
python
from datasets import load_dataset, load_metric
# 加载 IMDB 数据集
dataset = load_dataset("imdb")
metric = load_metric("accuracy")
# 示例预测
preds = [1, 0, 1]
labels = [1, 0, 0]
results = metric.compute(predictions=preds, references=labels)
print(results)
输出示例:
txt
{'accuracy': 0.6667}
五、数据集划分策略
训练集 / 验证集 / 测试集
- 常见比例:80% / 10% / 10%
交叉验证(Cross-validation)
- 尤其适合小数据集,减少偶然性
六、小结
- 数据集质量直接影响模型性能
- 合理选择评估指标,确保任务目标与业务需求一致
- Hugging Face datasets 提供了丰富数据集和便捷接口