Skip to content

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:

yaml
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: false

O 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.

text
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:

Leitura adicional