数据集与评估
在 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 示例
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)
`
输出示例:
{'accuracy': 0.6667}
五、数据集划分策略
-
训练集 / 验证集 / 测试集
- 常见比例:80% / 10% / 10%
-
交叉验证(Cross-validation)
- 尤其适合小数据集,减少偶然性
六、小结
- 数据集质量直接影响模型性能
- 合理选择评估指标,确保任务目标与业务需求一致
- Hugging Face datasets 提供了丰富数据集和便捷接口
相关内容
- 基础概念 本章介绍自然语言处理(NLP)的基础概念、发展历程和关键研究方向。
- 部署与工程化 本章介绍 NLP 模型的部署方式、工程化实践以及在生产环境中应用的注意事项。
- 向量表示与嵌入 本章介绍文本向量化的原理,包括词向量(Word Embedding)、上下文表示(Contextual Embedding)以及主流模型(Word2Vec、Gl...
- 术语表 NLP 常用术语解释,包括模型、任务、指标、技术等,便于快速查阅。
- 模型与训练 本章介绍 NLP 模型的训练流程,包括预训练、微调、常用架构及训练技巧。
- 文本分类 本章详细介绍文本分类任务,包括二分类、多分类、层次分类,常用模型及训练方法。