教程 nlp tutorial

数据集与评估

在 NLP 中,数据集与评估指标决定了模型训练的质量与性能衡量标准。本章将介绍常见数据集类型、获取方法以及评价模型的指标。

一、常见数据集类型

类型 示例 说明
文本分类 IMDB、AG News、SST-2 文本对应类别标签
序列标注 CoNLL-2003(NER)、Penn Treebank(POS) 每个 token 对应标签
序列生成 WMT(机器翻译)、CNN/DailyMail(摘要) 输入序列 → 输出序列
对话 DSTC、Persona-Chat 多轮问答或对话
多模态 Multi30k、Flickr30k 文本 + 图像

二、数据集获取与预处理

  1. 获取方式

    • 官方网站下载
    • Hugging Face datasets 库
    • 自行爬取或整理数据
  2. 预处理

    • 文本清洗:去除特殊符号、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 提供了丰富数据集和便捷接口