Anotação de Spans
Um guia completo de anotação de spans, destacando regiões de texto, spans sobrepostos e aninhados, cores de rótulos, marcação BIO/IOB e a construção de tarefas de span no Potato.
Anotação de spans significa marcar uma região dentro de um item em vez de rotular o item inteiro. O anotador destaca um trecho de texto (ou um segmento de áudio) e lhe atribui um rótulo. É a base do reconhecimento de entidades nomeadas, da marcação de erros, da resposta extrativa a perguntas e da detecção de eventos de áudio, todas elas tarefas de span com conjuntos de rótulos diferentes.
Um span é uma subsequência rotulada: uma posição inicial, uma posição final e uma categoria. Em aprendizado de máquina, isso costuma ser formulado como rotulagem de sequência, em que cada token recebe uma tag.
Uma tarefa de span básica
Defina os rótulos e deixe os anotadores destacarem. Cores e dicas de ferramenta tornam a interface rápida e autoexplicativa:
annotation_schemes:
- annotation_type: span
name: entities
description: "Highlight each named entity and choose its type."
labels: [PERSON, ORGANIZATION, LOCATION, DATE, MISC]
label_colors:
PERSON: "#3b82f6"
ORGANIZATION: "#10b981"
LOCATION: "#f59e0b"
DATE: "#8b5cf6"
MISC: "#6b7280"
sequential_key_binding: true
allow_overlapping: falseO design de reconhecimento de entidades nomeadas é exatamente essa tarefa, pronto para rodar.
Spans sobrepostos e aninhados
Por padrão, um caractere pertence a no máximo um span. Algumas tarefas precisam de mais:
- Spans sobrepostos: duas anotações cobrem parte do mesmo texto, por exemplo, um span de sentimento sobre um span de entidade.
- Spans aninhados: um span fica dentro de outro, por exemplo, "[University of [Michigan]]", em que o local está aninhado dentro da organização.
Defina allow_overlapping: true quando suas diretrizes exigirem. Decida isso cedo, porque muda a forma como os anotadores pensam sobre os limites.
Marcação BIO/IOB, como fica a sua exportação
As anotações de span costumam ser exportadas para treinamento como tags de token no esquema BIO (também chamado de IOB): B- marca o primeiro token de uma entidade, I- marca os tokens dentro dela e O marca os tokens fora de qualquer entidade.
Barack B-PERSON
Obama I-PERSON
visited O
Paris B-LOCATION
O Potato pode exportar spans para os formatos CoNLL e spaCy, que usam essa marcação diretamente. Veja Exportando Anotações para ML.
Acertando os limites
A parte mais difícil do trabalho com spans é chegar a um acordo sobre onde um span começa e termina. Algumas regras que ajudam:
- Decida se vai incluir a pontuação ao redor, títulos ("Dr.") e possessivos finais, e deixe isso por escrito.
- Meça a concordância no nível do span, não apenas no nível do documento, para que as divergências de limite apareçam. Veja Concordância entre Anotadores.
- Use dicas de ferramenta para manter a regra de limite diante do anotador.
Tarefas de span além do NER
O mesmo mecanismo dá conta de muitas tarefas:
- Spans de erro: marque erros em uma tradução ou na saída de um modelo, no estilo MQM. Veja Detectando Alucinações.
- QA extrativo: destaque a resposta a uma pergunta dentro de uma passagem.
- Detecção de eventos de áudio: marque quando um som ocorre em uma forma de onda. Veja Anotação de Áudio.
- Relações e correferência: ligue spans entre si. Veja Extração de Relações e Eventos e Resolução de Correferência.