Skip to content
هذه الصفحة غير متوفرة بلغتك بعد. يتم عرض النسخة الإنجليزية.

Assegnazione per Categoria

Instrada gli elementi di annotazione agli annotatori in base alla loro competenza dimostrata.

Assegnazione Basata su Categoria

L'assegnazione basata su categoria abbina automaticamente gli annotatori alle istanze di annotazione in base alla loro competenza dimostrata. Gli annotatori vengono valutati durante le fasi di addestramento su domande specifiche per categoria e ricevono solo le istanze delle categorie per cui si sono qualificati.

Panoramica

Il sistema di assegnazione basata su categoria funziona come segue:

  1. Tagging dei Dati: Le istanze nei tuoi file di dati vengono taggate con categorie
  2. Valutazione nell'Addestramento: Anche le domande di addestramento vengono taggate con categorie
  3. Tracciamento delle Prestazioni: Il sistema tiene traccia dell'accuratezza per categoria durante l'addestramento
  4. Qualificazione: Gli utenti che soddisfano l'accuratezza soglia vengono "qualificati"
  5. Assegnazione: Gli utenti ricevono solo le istanze dalle loro categorie qualificate

Configurazione

Impostazione di Base

yaml
# Abilita la strategia di assegnazione basata su categoria
assignment_strategy: category_based
 
# Configura la chiave di categoria in item_properties
item_properties:
  id_key: id
  text_key: text
  category_key: category  # Campo contenente la categoria
 
# Impostazioni di assegnazione per categoria
category_assignment:
  enabled: true
  qualification:
    source: training      # Da dove viene la qualificazione
    threshold: 0.7        # Accuratezza del 70% richiesta
    min_questions: 2      # Almeno 2 domande per categoria
  fallback: uncategorized # Cosa fare se l'utente non si qualifica per niente

Opzioni di Configurazione

OpzioneTipoPredefinitoDescrizione
enabledbooleanotrueAbilita/disabilita l'assegnazione per categoria
qualification.sourcestringa"training"Sorgente: "training", "prestudy" o "both"
qualification.thresholdfloat0.7Accuratezza minima (0.0-1.0) per qualificarsi
qualification.min_questionsintero1Domande minime per categoria
fallbackstringa"uncategorized"Comportamento quando l'utente non si qualifica

Opzioni di Fallback

  • uncategorized: Assegna le istanze senza categoria
  • random: Assegna casualmente da tutte le istanze rimanenti
  • none: Non assegna alcuna istanza

Formato dei Dati

Dati delle Istanze

Includi il campo categoria nei tuoi file di dati:

json
{"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}

Dati di Addestramento

Le istanze di addestramento devono includere le categorie:

json
{
  "training_instances": [
    {
      "id": "train_econ_1",
      "text": "Question about economic concepts...",
      "category": "economics",
      "correct_answers": {"topic": "Economics"},
      "explanation": "This is an economics topic because..."
    }
  ]
}

Come Funziona la Qualificazione

Durante l'Addestramento

Man mano che gli utenti rispondono alle domande di addestramento:

  1. Il sistema registra la categoria di ogni domanda
  2. Per ogni categoria, tiene traccia di:
    • Totale domande risposte
    • Numero di risposte corrette
    • Accuratezza (corrette / totale)

Dopo il Completamento dell'Addestramento

Quando un utente supera l'addestramento:

  1. L'accuratezza viene calcolata per ogni categoria
  2. Le categorie che soddisfano sia la soglia che il numero minimo di domande vengono aggiunte alle "categorie qualificate"
  3. Le qualificazioni persistono per la sessione

Esempio

Se la soglia è 0,7 (70%) e min_questions è 2:

CategoriaDomandeCorretteAccuratezzaQualificato?
Economia33100%
Scienza2150%No (sotto la soglia)
Sport11100%No (sotto min_questions)

L'utente riceverebbe solo le istanze di "Economia".

Casi d'Uso

Instradamento degli Esperti

Instrada i contenuti specializzati agli annotatori qualificati:

  • Testi medici agli annotatori con conoscenze mediche
  • Documenti legali a chi comprende la terminologia legale
  • Contenuti tecnici a chi ha competenze tecniche

Controllo della Qualità

Garantisci la qualità assegnando i contenuti solo agli individui qualificati:

  • Gli annotatori dimostrano la competenza prima di ricevere il lavoro reale
  • Diverse soglie di qualità per diversi tipi di contenuto

Distribuzione del Carico di Lavoro

Distribuisci il lavoro in base alla competenza:

  • Elementi ad alta complessità agli annotatori esperti
  • Elementi generali a tutti gli annotatori

Modalità Competenza Dinamica

La competenza dinamica abilita la valutazione al volo durante l'annotazione senza dati di addestramento con etichette gold:

yaml
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.1

Come Funziona la Modalità Dinamica

  1. Stato Iniziale: Tutti gli annotatori iniziano con competenza neutra (0.5) per tutte le categorie
  2. Assegnazione Probabilistica: Le categorie con competenza più alta hanno una probabilità di assegnazione più alta
  3. Elaborazione in Background: Calcola periodicamente il consenso e aggiorna i punteggi di competenza
  4. Aggiornamenti della Competenza: I punteggi aumentano quando si è d'accordo con il consenso, diminuiscono quando si è in disaccordo

Opzioni di Configurazione

OpzioneTipoPredefinitoDescrizione
agreement_methodstringa"majority_vote"Come calcolare il consenso
min_annotations_for_consensusintero2Annotazioni minime prima del calcolo
learning_ratefloat0.1Velocità di variazione dei punteggi di competenza
base_probabilityfloat0.1Probabilità minima per qualsiasi categoria

Riferimento API

Metodi di TrainingState

python
# Registra una risposta per il tracciamento delle categorie
training_state.record_category_answer(categories=['economics'], is_correct=True)
 
# Ottieni il punteggio per una categoria specifica
score = training_state.get_category_score('economics')
# Restituisce: {'correct': 3, 'total': 4, 'accuracy': 0.75}
 
# Ottieni le categorie qualificate in base alla soglia
qualified = training_state.get_qualified_categories(threshold=0.7, min_questions=2)

Metodi di UserState

python
# Aggiungi una categoria qualificata
user_state.add_qualified_category('economics', score=0.85)
 
# Controlla se l'utente è qualificato per una categoria
is_qualified = user_state.is_qualified_for_category('economics')
 
# Ottieni tutte le categorie qualificate
categories = user_state.get_qualified_categories()

Risoluzione dei Problemi

Utenti Non Ricevono Istanze Assegnate

  1. Controlla se l'utente ha categorie qualificate (rivedi le prestazioni di addestramento)
  2. Ci sono istanze in quelle categorie che non sono state annotate?
  3. fallback è impostato in modo appropriato?

Categorie Non Tracciate

  1. Verifica che category_key sia impostato in item_properties
  2. Le istanze di addestramento hanno il campo category
  3. category_assignment.enabled è true

Ulteriori Letture

Per i dettagli di implementazione, consulta la documentazione sorgente.