Skip to content

Reconhecimento de entidades nomeadas

O que é o reconhecimento de entidades nomeadas (NER), conjuntos de rótulos comuns e como criar uma tarefa de anotação de NER no Potato com rótulos de span coloridos e tooltips.

O reconhecimento de entidades nomeadas (NER) é a tarefa de encontrar e classificar coisas nomeadas no texto: pessoas, organizações, locais, datas e mais. É uma tarefa de anotação de span com um conjunto de rótulos tipados por entidade. O NER é um bloco de construção para busca, grafos de conhecimento, redação e extração de informações.

Para contexto, veja Reconhecimento de entidades nomeadas.

Como escolher um conjunto de rótulos

Comece por um esquema padrão e reduza-o ao seu domínio:

  • CoNLL-2003: PER, ORG, LOC, MISC. Um bom padrão mínimo.
  • OntoNotes: 18 tipos, incluindo datas, valores monetários e percentuais, para necessidades mais ricas.
  • Específico do domínio: biomédico (genes, doenças), jurídico (estatutos, partes) ou financeiro.

Tipos em menor número e bem definidos dão maior concordância. Acrescente tipos apenas quando um uso real a jusante os exigir.

Como criar a tarefa no Potato

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Highlight each named entity and select its type."
    labels: [PERSON, ORGANIZATION, LOCATION, DATE, MISC]
    label_colors:
      PERSON: "#3b82f6"
      ORGANIZATION: "#10b981"
      LOCATION: "#f59e0b"
      DATE: "#8b5cf6"
      MISC: "#6b7280"
    tooltips:
      PERSON: "Names of people, e.g. 'Ada Lovelace'."
      ORGANIZATION: "Companies, agencies, teams, e.g. 'United Nations'."
      LOCATION: "Cities, countries, landmarks, e.g. 'Paris'."
      DATE: "Dates and time expressions, e.g. 'next Monday'."
      MISC: "Named entities that fit none of the above."
    allow_overlapping: false
    sequential_key_binding: true

A vitrine de reconhecimento de entidades nomeadas executa essa configuração com dados de exemplo.

Regras de fronteira que evitam discordância

A maior parte da discordância no NER é sobre onde uma entidade começa e termina, não sobre o que ela é. Decida e documente:

  • Os títulos contam? ("Dr. Jane Smith" vs. "Dr. Jane Smith".)
  • Você inclui o "the" em "the United Nations"?
  • Como você marca entidades aninhadas como "Bank of England"? Se precisar delas, defina allow_overlapping: true.

Dos rótulos a um modelo

Exporte para o formato CoNLL ou spaCy, que representam entidades com tags BIO/IOB. Veja Exportar anotações para ML.

Leituras adicionais