Skip to content

Atribuição de Tarefas

Controle a distribuição de instâncias no Potato — atribuições sequenciais, aleatórias, com sobreposição uniforme e personalizadas por anotador para gerenciar carga de trabalho e cobertura com precisão.

O Potato oferece estratégias flexíveis de atribuição de tarefas para controlar como as instâncias de anotação são distribuídas entre os anotadores.

Visão geral

A atribuição de tarefas controla:

  • Quais itens cada anotador vê
  • Quantos itens cada anotador completa
  • Quantas anotações cada item recebe
  • A ordem em que os itens são apresentados

Principais opções de configuração

OpçãoDescriçãoPadrão
assignment_strategyEstratégia para atribuir itensrandom
max_annotations_per_userMáximo de itens por anotadorilimitado
max_annotations_per_itemAnotações-alvo por item3

Estratégias de atribuição

Atribuição aleatória

Atribui os itens aleatoriamente aos anotadores, garantindo uma distribuição imparcial.

yaml
assignment_strategy: random
max_annotations_per_item: 3

Ideal para: tarefas de anotação gerais em que a ordem não importa.

Atribuição em ordem fixa

Atribui os itens na ordem em que aparecem no conjunto de dados.

yaml
assignment_strategy: fixed_order
max_annotations_per_item: 2

Ideal para: tarefas em que os anotadores devem ver os itens em uma sequência específica.

Atribuição por menos anotados

Prioriza os itens com menos anotações existentes, garantindo uma distribuição equilibrada.

yaml
assignment_strategy: least_annotated
max_annotations_per_item: 5

Ideal para: garantir que todos os itens recebam cobertura adequada antes que qualquer item receba anotações em excesso.

Atribuição por diversidade máxima

Prioriza os itens com maior discordância entre as anotações existentes.

yaml
assignment_strategy: max_diversity
max_annotations_per_item: 4

Ideal para: controle de qualidade e resolução de itens ambíguos.

Atribuição por aprendizado ativo

Usa aprendizado de máquina para priorizar instâncias incertas.

yaml
assignment_strategy: active_learning
 
active_learning:
  enabled: true
  schema_names: ["sentiment"]
  min_annotations_per_instance: 2
  min_instances_for_training: 20
  update_frequency: 10

Consulte Aprendizado Ativo para a configuração completa.

Configuração

Configuração moderna (recomendada)

yaml
# Strategy selection
assignment_strategy: random
 
# Limits
max_annotations_per_user: 10    # -1 for unlimited
max_annotations_per_item: 3     # -1 for unlimited
 
# Optional: nested configuration
assignment:
  strategy: random
  max_annotations_per_item: 3
  random_seed: 1234

Configuração legada

A configuração mais antiga automatic_assignment ainda é suportada:

yaml
automatic_assignment:
  on: true
  output_filename: task_assignment.json
  sampling_strategy: random    # 'random' or 'ordered'
  labels_per_instance: 3       # Annotations per item
  instance_per_annotator: 5    # Items per annotator
  test_question_per_annotator: 0

Perguntas de teste

Insira perguntas de verificação de atenção na fila de anotação:

Definindo perguntas de teste

Adicione _testing ao ID da instância no seu arquivo de dados:

csv
text,id
"This is test question 1",0_testing
"Regular item",dkjfd

Ou em JSON:

json
[
  {"id": "0_testing", "text": "This is a test question"},
  {"id": "regular_001", "text": "Normal annotation item"}
]

Configuração

yaml
automatic_assignment:
  on: true
  test_question_per_annotator: 2  # Insert 2 test questions per annotator

Exemplos de configuração

Atribuição aleatória básica

yaml
annotation_task_name: "Sentiment Analysis"
assignment_strategy: random
max_annotations_per_user: 20
max_annotations_per_item: 3

Atribuição focada em qualidade

yaml
annotation_task_name: "Quality Annotation"
assignment_strategy: max_diversity
max_annotations_per_item: 5
max_annotations_per_user: 50

Configuração de crowdsourcing

yaml
annotation_task_name: "Crowdsourced Task"
assignment_strategy: random
max_annotations_per_user: 10
max_annotations_per_item: 3
 
# Crowdsourcing settings
hide_navbar: true
jumping_to_id_disabled: true
 
login:
  type: url_direct
  url_argument: workerId

Configuração de aprendizado ativo

yaml
assignment_strategy: active_learning
 
active_learning:
  enabled: true
  schema_names: ["sentiment", "topic"]
  min_annotations_per_instance: 2
  min_instances_for_training: 20
  update_frequency: 10
  classifier_name: "sklearn.linear_model.LogisticRegression"
  vectorizer_name: "sklearn.feature_extraction.text.TfidfVectorizer"

Integração com o painel de administração

Monitore e ajuste as configurações de atribuição pelo painel de administração:

  1. Navegue até /admin
  2. Vá para a aba Configuration
  3. Modifique:
    • Máximo de anotações por usuário
    • Máximo de anotações por item
    • Estratégia de atribuição

As alterações entram em vigor imediatamente, sem reiniciar o servidor.

Leitura adicional

Para detalhes de implementação, consulte a documentação de origem.