使用Jupyter和Prodigy识别文本分类中的错误标签

3 阅读3分钟

概述

Prodigy 是一个现代化的标注工具,用于为机器学习模型收集训练数据。本文将展示如何配置 Prodigy 以发现文本分类任务中的错误标签。虽然这些技术主要应用于文本分类,但它们也适用于一般的分类任务。

核心内容

1. 错误标签的问题

错误标签(Bad Labels)会严重影响模型性能。识别和修正这些错误标签是提升模型准确率的关键步骤。

2. 启发式规则 (Heuristics)

通过设定简单的规则(如文本长度、特定关键词的存在等)来初步筛选出可能被错误标注的样本。这些规则可以在 Jupyter Notebook 中快速实现和验证。

3. 利用模型识别错误标签

  • 模型置信度:训练一个初步模型,检查模型对每个样本预测的置信度。低置信度的预测可能意味着样本本身模糊或标签错误。
  • 模型分歧:比较多个不同模型(例如,逻辑回归与随机森林)对同一样本的预测结果。如果模型间预测结果不一致,该样本可能是可疑的。

4. 嵌入向量技巧 (Embedding Tricks)

使用预训练的词向量或句子向量(如通过 spaCywhatlies 库)将文本数据映射到向量空间。

  • 邻近分析:在向量空间中,查找与某个样本距离很近但标签不同的其他样本。这些“邻近异类”很可能是错误标签。
  • 可视化:利用 whatlies 等工具对嵌入向量进行降维可视化(如 PCA 或 UMAP),可以直观地观察不同类别样本的分布和重叠区域,从而发现潜在的标注错误。

5. 怀疑原因库 (Doubtlab)

介绍 doubtlab 项目,它是一个用于识别可疑数据的库,集成了上述多种策略(如邻近异类、模型分歧、置信度低等),可以方便地为数据集中的每个样本生成一个“怀疑分数”,从而快速定位最可能出错的样本。

6. 在 Prodigy 中进行标注

  • 设置 Prodigy:配置 Prodigy 以加载现有的数据集和通过上述策略筛选出的“可疑”样本列表。
  • 标注界面:在 Prodigy 的标注界面中,标注员可以查看这些被标记为可疑的样本,并重新判断其类别。
  • 工作流集成:可以将怀疑原因(如“邻近异类”)作为上下文信息展示给标注员,帮助他们做出更明智的判断。

7. 标注者分歧 (Annotator Disagreement)

当多个标注员对同一个样本给出不同标签时,这通常是数据定义模糊或样本本身难以归类的信号。分析这些分歧点有助于优化标注指南或识别极端案例。

8. 经验总结 (Learnings)

  • 结合多种策略(启发式、模型、嵌入)可以更有效地发现错误标签。
  • 将怀疑机制集成到标注工具中,可以显著提升数据清洗和迭代的效率。
  • 关注标注者之间的分歧,对于理解数据和任务本身至关重要。FINISHED