Dataset de Clasificación de Texto Template
Plantilla para construir datasets de clasificación de texto de propósito general que cubren categorización por temas, detección de intención y moderación de contenido.
ClassificationOverview
La clasificación de texto es la tarea fundamental de NLP de asignar categorías predefinidas a documentos de texto. Las aplicaciones incluyen enrutamiento de correo electrónico (spam, principal, promociones, social), categorización de tickets de soporte (facturación, técnico, cuenta, solicitud de funcionalidad), moderación de contenido (seguro, marcado, requiere revisión), clasificación de documentos (contratos, facturas, informes, correspondencia) y detección de intención en IA conversacional. Un dataset de clasificación de texto bien construido permite a las organizaciones automatizar estas tareas de categorización con alta precisión.
La flexibilidad de la clasificación de texto hace que el diseño del dataset sea crítico. La taxonomía de categorías debe estar bien definida, ser mutuamente excluyente (para clasificación de etiqueta única) o claramente especificada (para multi-etiqueta), y lo suficientemente completa para cubrir todas las entradas esperadas. Los límites ambiguos entre categorías son la causa principal del pobre rendimiento de clasificación — si los anotadores humanos no pueden concordar consistentemente en la etiqueta correcta, el modelo tampoco podrá hacerlo.
Los datasets de clasificación de texto pueden estructurarse para diferentes enfoques de modelado. Para ML tradicional o modelos basados en encoder (BERT, DeBERTa), el dataset consiste en pares de texto-etiqueta. Para clasificación basada en LLM, el dataset usa un formato de instrucción donde se le solicita al modelo clasificar el texto y explicar su razonamiento. El enfoque LLM tiene la ventaja de producir explicaciones junto con las predicciones, pero a costa de una mayor latencia de inferencia. Elige el enfoque que coincida con tus requisitos de despliegue.
Dataset Schema
// 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
}Sample Data
[
{
"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
Comienza definiendo tu taxonomía de categorías mediante el análisis de datos existentes. Exporta una muestra de 500-1,000 documentos, haz que los expertos del dominio los agrupen manualmente en categorías naturales e itera sobre la taxonomía hasta que las categorías sean claras y completas. Los errores comunes incluyen crear demasiadas categorías detalladas (lo que lleva a confusión en la anotación y datos de entrenamiento escasos) o muy pocas categorías amplias (lo que limita la utilidad práctica de la clasificación). La mayoría de las aplicaciones funcionan bien con 5-20 categorías.
Escribe guías de anotación detalladas con definiciones claras, múltiples ejemplos y orientación explícita para casos extremos. Para cada categoría, proporciona 3-5 ejemplos claros y 2-3 ejemplos limítrofes con explicaciones de por qué pertenecen a esa categoría. Documenta qué categoría debe asignarse cuando un texto podría encajar razonablemente en múltiples categorías (reglas de prioridad de decisión). Prueba tus guías haciendo que 3-5 anotadores etiqueten los mismos 100 documentos y mide la concordancia antes de escalar al dataset completo.
Para clasificación basada en LLM, convierte tus ejemplos etiquetados a formato de instrucción. La instrucción describe la tarea de clasificación y lista las categorías disponibles. La entrada contiene el texto a clasificar. La salida contiene la etiqueta predicha y una explicación de 2-3 oraciones del razonamiento. Hacer que los expertos del dominio escriban el razonamiento para los ejemplos iniciales establece el estándar de calidad de explicación para el dataset.
Quality Criteria
La concordancia entre anotadores (medida por kappa de Cohen para dos anotadores o kappa de Fleiss para tres o más) debe superar 0.80 para que el dataset se considere de alta calidad. Las categorías con menor concordancia deben revisarse — o las guías necesitan clarificación o las categorías necesitan fusionarse o dividirse. Rastrea la concordancia por categoría para identificar problemas específicos de taxonomía.
El balance de clases afecta significativamente el rendimiento del modelo. Si bien el balance perfecto rara vez es alcanzable o deseable (puede no reflejar las distribuciones del mundo real), los desequilibrios extremos (una categoría con 5,000 ejemplos y otra con 50) harán que el modelo tenga un rendimiento pobre en las clases minoritarias. Recopila ejemplos adicionales para las categorías subrepresentadas, aplica técnicas de sobremuestreo o usa pérdida ponderada por clase durante el entrenamiento. Apunta a que ninguna categoría tenga menos de 100-200 ejemplos.
Elimina o reetiqueta los ejemplos ambiguos donde incluso las guías de anotación no indican claramente la categoría correcta. Estos ejemplos añaden ruido a los datos de entrenamiento sin proporcionar señal útil. Es mejor tener 3,000 ejemplos no ambiguos que 5,000 ejemplos con 30 por ciento de ruido.
Using This Template with Ertas
Importa tus documentos de texto sin procesar a Ertas Data Suite para la redacción de PII — los tickets de soporte y las comunicaciones con clientes frecuentemente contienen nombres, números de cuenta y datos de contacto. Después de la redacción, exporta para anotación, luego reimporta el dataset etiquetado para verificaciones finales de calidad y conversión de formato.
Exporta en formato JSONL o CSV dependiendo de tu arquitectura de modelo. Para clasificación basada en encoder, CSV con columnas de texto y etiqueta funciona bien. Para clasificación basada en LLM, exporta en formato Alpaca con estructura instrucción-entrada-salida. Ertas Studio maneja ambos enfoques de entrenamiento con validación automática de formato.
Recommended Model
Para clasificación de texto en producción con requisitos de alto rendimiento, ajusta un modelo encoder de clase BERT (DeBERTa-v3-base o RoBERTa-base). Estos modelos clasifican texto en 5-10 milisegundos en CPU, haciéndolos adecuados para aplicaciones en tiempo real que procesan miles de documentos por minuto.
Para clasificación con explicaciones o cuando tu taxonomía puede evolucionar frecuentemente, ajusta un modelo generativo de 7B. La capacidad de seguir instrucciones te permite modificar la taxonomía de clasificación mediante cambios en el prompt sin reentrenar, proporcionando flexibilidad a costa de mayor latencia de inferencia. La exportación GGUF en Q4_K_M mantiene la inferencia lo suficientemente rápida para la mayoría de los flujos de trabajo de procesamiento por lotes.
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.