Asignación por Categoría
Dirige elementos de anotación a anotadores según su experiencia demostrada.
Asignación Basada en Categorías
La asignación basada en categorías empareja automáticamente a los anotadores con instancias de anotación según su experiencia demostrada. Los anotadores son evaluados durante las fases de capacitación en preguntas específicas por categoría y solo reciben instancias de las categorías para las que se han calificado.
Descripción General
El sistema de asignación basado en categorías funciona de la siguiente manera:
- Etiquetado de datos: Las instancias en tus archivos de datos están etiquetadas con categorías
- Evaluación de capacitación: Las preguntas de capacitación también están etiquetadas con categorías
- Seguimiento de rendimiento: El sistema rastrea la precisión por categoría durante la capacitación
- Calificación: Los usuarios que alcanzan el umbral de precisión están "calificados"
- Asignación: Los usuarios solo reciben instancias de sus categorías calificadas
Configuración
Configuración Básica
# Enable category-based assignment strategy
assignment_strategy: category_based
# Configure category key in item_properties
item_properties:
id_key: id
text_key: text
category_key: category # Field containing category
# Category assignment settings
category_assignment:
enabled: true
qualification:
source: training # Where qualification comes from
threshold: 0.7 # 70% accuracy required
min_questions: 2 # At least 2 questions per category
fallback: uncategorized # What to do if user qualifies for nothingOpciones de Configuración
| Opción | Tipo | Predeterminado | Descripción |
|---|---|---|---|
enabled | boolean | true | Habilitar/deshabilitar la asignación por categoría |
qualification.source | string | "training" | Fuente: "training", "prestudy" o "both" |
qualification.threshold | float | 0.7 | Precisión mínima (0.0-1.0) para calificar |
qualification.min_questions | integer | 1 | Preguntas mínimas por categoría |
fallback | string | "uncategorized" | Comportamiento cuando el usuario no califica |
Opciones de Respaldo
uncategorized: Asignar instancias que no tienen categoríarandom: Asignar aleatoriamente de todas las instancias restantesnone: No asignar ninguna instancia
Formato de Datos
Datos de Instancia
Incluye el campo de categoría en tus archivos de datos:
{"id": "econ_001", "text": "Market analysis...", "category": "economics"}
{"id": "sci_001", "text": "Research findings...", "category": "science"}
{"id": "multi_001", "text": "Interdisciplinary...", "category": ["economics", "science"]}
{"id": "general_001", "text": "General content...", "category": null}Datos de Capacitación
Las instancias de capacitación deben incluir categorías:
{
"training_instances": [
{
"id": "train_econ_1",
"text": "Question about economic concepts...",
"category": "economics",
"correct_answers": {"topic": "Economics"},
"explanation": "This is an economics topic because..."
}
]
}Cómo Funciona la Calificación
Durante la Capacitación
A medida que los usuarios responden preguntas de capacitación:
- El sistema registra la categoría de cada pregunta
- Para cada categoría, rastrea:
- Total de preguntas respondidas
- Número de respuestas correctas
- Precisión (correctas / total)
Después de Completar la Capacitación
Cuando un usuario aprueba la capacitación:
- Se calcula la precisión para cada categoría
- Las categorías que cumplen tanto el umbral como las preguntas mínimas se agregan a las "categorías calificadas"
- Las calificaciones persisten durante la sesión
Ejemplo
Si el umbral es 0.7 (70%) y las preguntas mínimas son 2:
| Categoría | Preguntas | Correctas | Precisión | ¿Calificado? |
|---|---|---|---|---|
| Economía | 3 | 3 | 100% | Sí |
| Ciencia | 2 | 1 | 50% | No (por debajo del umbral) |
| Deportes | 1 | 1 | 100% | No (por debajo de preguntas mínimas) |
El usuario solo recibiría instancias de "Economía".
Casos de Uso
Enrutamiento de Expertos
Dirige contenido especializado a anotadores calificados:
- Textos médicos a anotadores con conocimiento médico
- Documentos legales a quienes entienden terminología legal
- Contenido técnico a quienes tienen experiencia técnica
Control de Calidad
Asegura la calidad asignando contenido solo a personas calificadas:
- Los anotadores demuestran competencia antes de recibir trabajo real
- Diferentes umbrales de calidad para diferentes tipos de contenido
Distribución de Carga de Trabajo
Distribuye el trabajo según la experiencia:
- Elementos de alta complejidad a anotadores expertos
- Elementos generales a todos los anotadores
Modo de Experiencia Dinámica
La experiencia dinámica permite la evaluación en tiempo real durante la anotación sin datos de capacitación etiquetados como gold:
category_assignment:
enabled: true
dynamic:
enabled: true
agreement_method: majority_vote
min_annotations_for_consensus: 2
learning_rate: 0.1
update_interval_seconds: 60
base_probability: 0.1Cómo Funciona el Modo Dinámico
- Estado inicial: Todos los anotadores comienzan con experiencia neutral (0.5) para todas las categorías
- Asignación probabilística: Las categorías con mayor experiencia tienen mayor probabilidad de asignación
- Procesamiento en segundo plano: Calcula periódicamente el consenso y actualiza las puntuaciones de experiencia
- Actualizaciones de experiencia: Las puntuaciones aumentan al coincidir con el consenso y disminuyen al discrepar
Opciones de Configuración
| Opción | Tipo | Predeterminado | Descripción |
|---|---|---|---|
agreement_method | string | "majority_vote" | Cómo calcular el consenso |
min_annotations_for_consensus | integer | 2 | Anotaciones mínimas antes de calcular |
learning_rate | float | 0.1 | Qué tan rápido cambian las puntuaciones de experiencia |
base_probability | float | 0.1 | Probabilidad mínima para cualquier categoría |
Referencia de la API
Métodos de TrainingState
# Record an answer for category tracking
training_state.record_category_answer(categories=['economics'], is_correct=True)
# Get score for a specific category
score = training_state.get_category_score('economics')
# Returns: {'correct': 3, 'total': 4, 'accuracy': 0.75}
# Get qualified categories based on threshold
qualified = training_state.get_qualified_categories(threshold=0.7, min_questions=2)Métodos de UserState
# Add a qualified category
user_state.add_qualified_category('economics', score=0.85)
# Check if user is qualified for a category
is_qualified = user_state.is_qualified_for_category('economics')
# Get all qualified categories
categories = user_state.get_qualified_categories()Solución de Problemas
Los Usuarios No Reciben Instancias Asignadas
- Verifica si el usuario tiene categorías calificadas (revisa el rendimiento de capacitación)
- ¿Hay instancias en esas categorías que no hayan sido anotadas?
- ¿Está
fallbackconfigurado apropiadamente?
Las Categorías No Se Rastrean
- Verifica que
category_keyesté configurado enitem_properties - Las instancias de capacitación tienen el campo
category category_assignment.enabledestrue
Lecturas Adicionales
- Asignación de Tareas - Estrategias generales de asignación
- Fase de Capacitación - Configuración de capacitación
- Control de Calidad - Verificaciones de atención y estándares gold
Para detalles de implementación, consulta la documentación fuente.