文本分类数据集 Template

    用于构建通用文本分类数据集的模板,涵盖主题分类、意图检测和内容审核。

    Classification

    Overview

    文本分类是将预定义类别分配给文本文档的基础 NLP 任务。应用包括邮件路由(垃圾邮件、主要邮件、促销、社交)、工单分类(账单、技术、账户、功能请求)、内容审核(安全、标记、需审核)、文档分类(合同、发票、报告、信函)和会话 AI 中的意图检测。一个构建良好的文本分类数据集能让组织以高准确率自动化这些分类任务。

    文本分类的灵活性使数据集设计至关重要。类别分类体系必须定义明确、互斥(对于单标签分类)或有清晰规范(对于多标签),且全面到足以覆盖所有预期输入。类别边界模糊是分类性能不佳的主要原因——如果人工标注员无法始终在正确标签上达成一致,模型也做不到。

    文本分类数据集可以为不同的建模方法构建。对于传统 ML 或基于编码器的模型(BERT、DeBERTa),数据集由文本-标签对组成。对于基于 LLM 的分类,数据集使用指令格式,提示模型对文本进行分类并解释其推理。LLM 方法的优势在于可以在预测的同时生成解释,但代价是更高的推理延迟。选择与你部署需求匹配的方法。

    Dataset Schema

    typescript
    // Single-label classification
    interface TextClassificationExample {
      text: string;
      label: string;
      confidence?: number;
      metadata?: {
        source: string;
        annotator_agreement: number;
        word_count: number;
      };
    }
    
    // Multi-label classification
    interface MultiLabelExample {
      text: string;
      labels: string[];
      metadata?: {
        source: string;
        primary_label: string;
      };
    }
    
    // LLM instruction format for classification with explanation
    interface LLMClassificationExample {
      instruction: string;
      input: string;
      output: string;  // Contains both label and reasoning
    }
    单标签、多标签和基于 LLM 的文本分类架构变体

    Sample Data

    json
    [
      {
        "text": "I can't log into my account even after resetting my password three times. The reset email comes through but the new password doesn't work. I've tried different browsers and clearing cookies.",
        "label": "technical_issue",
        "confidence": 0.95,
        "metadata": {"source": "support_tickets", "annotator_agreement": 1.0, "word_count": 36}
      },
      {
        "text": "Can you explain the difference between the Pro and Enterprise plans? We're a team of 50 and need to understand what additional features we'd get with the upgrade.",
        "label": "sales_inquiry",
        "confidence": 0.92,
        "metadata": {"source": "support_tickets", "annotator_agreement": 0.9, "word_count": 30}
      },
      {
        "text": "I was charged $49.99 on March 3rd but I cancelled my subscription on February 28th. Please process a refund for this charge.",
        "label": "billing_issue",
        "confidence": 0.97,
        "metadata": {"source": "support_tickets", "annotator_agreement": 1.0, "word_count": 25}
      },
      {
        "text": "It would be really helpful if the dashboard had a dark mode option. Several people on our team work late hours and the bright interface causes eye strain.",
        "label": "feature_request",
        "confidence": 0.91,
        "metadata": {"source": "support_tickets", "annotator_agreement": 0.85, "word_count": 29}
      },
      {
        "text": "Just wanted to say thanks to your support team — Sarah resolved my issue in under 5 minutes. Great service!",
        "label": "positive_feedback",
        "confidence": 0.98,
        "metadata": {"source": "support_tickets", "annotator_agreement": 1.0, "word_count": 21}
      }
    ]
    包含五个类别和标注员一致性评分的工单分类示例

    Data Collection Guide

    首先通过分析现有数据定义你的类别分类体系。导出 500-1,000 个文档样本,让领域专家手动将其归入自然类别,并反复迭代分类体系直到类别清晰且全面。常见的错误包括创建过多细粒度类别(导致标注混乱和训练数据稀疏)或过少宽泛类别(限制分类的实际效用)。大多数应用使用 5-20 个类别效果良好。

    编写详细的标注指南,包含清晰的定义、多个示例和针对边缘案例的明确指导。对于每个类别,提供 3-5 个明确的示例和 2-3 个边界示例,并解释它们为什么属于该类别。记录当文本可能合理归入多个类别时应分配哪个类别(决策优先级规则)。在扩展到完整数据集之前,让 3-5 名标注员标注相同的 100 个文档并测量一致性,以验证指南。

    对于基于 LLM 的分类,将你的标注示例转换为指令格式。指令描述分类任务并列出可用类别。输入包含待分类文本。输出包含预测的标签和 2-3 句推理解释。让领域专家为初始示例编写推理说明,以建立数据集的解释质量标准。

    Quality Criteria

    标注员间一致性(对两名标注员使用 Cohen's kappa,对三名及以上使用 Fleiss' kappa)应超过 0.80 才能被视为高质量数据集。一致性较低的类别应重新审视——要么指南需要澄清,要么类别需要合并或拆分。追踪每个类别的一致性以识别具体的分类体系问题。

    类别均衡对模型性能影响显著。虽然完美均衡很少能实现或需要(可能不反映真实分布),但极端不均衡(一个类别 5,000 个示例,另一个只有 50 个)会导致模型在少数类上表现不佳。要么为代表不足的类别收集额外示例,要么应用过采样技术,或在训练中使用类别加权损失。确保没有类别的示例少于 100-200 个。

    删除或重新标注即使标注指南也无法明确指定正确类别的模糊示例。这些示例只会给训练数据增加噪声,不提供有用的信号。3,000 个无歧义的示例优于 5,000 个含 30% 噪声的示例。

    Using This Template with Ertas

    将原始文本文档导入 Ertas Data Suite 进行 PII 脱敏——工单和客户沟通中经常包含姓名、账户号码和联系方式。脱敏后,导出用于标注,然后重新导入标注数据集进行最终质量检查和格式转换。

    根据你的模型架构以 JSONL 或 CSV 格式导出。对于基于编码器的分类,包含文本和标签列的 CSV 效果良好。对于基于 LLM 的分类,以 Alpaca 格式导出,包含 instruction-input-output 结构。Ertas Studio 支持两种训练方法,并提供自动格式验证。

    Recommended Model

    对于高吞吐量需求的生产文本分类,微调 BERT 系列编码器模型(DeBERTa-v3-base 或 RoBERTa-base)。这些模型在 CPU 上 5-10 毫秒内完成文本分类,适合每分钟处理数千文档的实时应用。

    对于需要解释的分类或分类体系可能频繁变更的场景,微调 7B 的生成式模型。指令遵循能力允许你通过修改提示来更改分类体系,无需重新训练,以更高的推理延迟为代价换取灵活性。以 Q4_K_M 导出 GGUF,对大多数批处理工作流保持足够快的推理速度。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.