Melhores modelos de NER em 2026: spaCy, GLiNER, Transformers, LLMs
Tradução automática Este artigo foi traduzido automaticamente a partir da versão original em inglês.
O reconhecimento de entidades nomeadas (NER) encontra e identifica spans de texto, como pessoas, empresas e códigos de produto. Esta página destina-se a engenheiros que estão a escolher uma abordagem de extração para uma carga de trabalho de produção. Fornece um ponto de partida que pode testar com o seu schema, documentos e restrições operacionais.
Use spaCy para labels estáveis e pipelines rápidos. Escolha GLiNER quando os labels mudam frequentemente, um bi-encoder quando um inventário de labels grande puder reutilizar embeddings em cache, ou um classificador de tokens baseado em Transformer com fine-tuning quando tiver exemplos anotados. Use extração estruturada baseada em LLM quando precisar de um registo complexo em vez de uma simples lista de spans.
Última revisão: 2026-08-17. Critérios de seleção: estabilidade dos labels, inventário de labels, output de spans versus registos, idioma, dados supervisionados, latência, normalização e custo de revisão.
Tabela de decisão
| Necessidade | Melhor ponto de partida | Motivo |
|---|---|---|
| NER rápido com labels conhecidos | spaCy | Pipelines maduros, boa ergonomia, deployment rápido em CPU e integração com regras. |
| Novos labels sem treino completo | GLiNER | A extração condicionada pelos labels funciona bem quando o conjunto de labels muda. Comece com descrições claras dos tipos, não apenas com nomes. |
| Inventário de labels grande e reutilizável | GLiNER bi-encoder | Pode pré-calcular e colocar em cache os embeddings dos labels, em vez de codificar os labels em cada documento. |
| Entidades e relações numa única passagem | Candidato GLiNER-Relex | Extrai conjuntamente tipos de entidades e de relações. Faça o benchmark em comparação com etapas separadas no schema de relações pretendido. |
| Entidades e campos de documento ou classificação | GLiNER2 | A sua interface de schema combina reconhecimento de entidades, classificação e tarefas de extração estruturada. |
| Entidades aninhadas ou sobrepostas | Decoder compatível com entidades aninhadas, incluindo GLiNER com flat_ner=False | A descodificação plana elimina sobreposições. Teste spans aninhados em anotações que contenham os padrões de sobreposição esperados. |
| Extração multilingue ou com vários scripts | GLiNER-X ou baseline XLM-R | Nenhum modelo obtém os melhores resultados em todos os idiomas. Teste cada idioma-alvo e a formulação das descrições dos seus tipos. |
| Labels de domínio estáveis com spans anotados representativos | Classificador de tokens com fine-tuning ou pipeline spaCy | Estabeleça uma baseline supervisionada e compare exact-span F1, latência e custo no seu conjunto de domínio. |
| Campos implícitos, entre frases ou estruturados | Candidato LLM ou híbrido | Os structured outputs limitam o formato da resposta, não a correção da extração. Valide a precisão dos campos num conjunto de teste do domínio. |
| PII sensível ou workflow regulado | Presidio mais candidato GLiNER2-PII | Combine o output do modelo com verificações determinísticas, controlos de redação e revisão. |
Classes de ferramentas
| Classe | Ponto forte | Ponto fraco | Adequado para |
|---|---|---|---|
| NER com spaCy | Rápido, adequado para produção e consciente de regras | Requer treino ou regras para labels personalizados | Labels conhecidos em sistemas de elevado débito. |
| GLiNER | Labels flexíveis em inferência | A qualidade depende da formulação dos labels e da incompatibilidade com o domínio | Iteração rápida da ontologia e labels de cauda longa. |
| GLiNER bi-encoder | Embeddings de labels em cache escalam para ontologias grandes | Os benefícios dependem da reutilização dos labels e do formato da carga de trabalho | Inventários reutilizados com dezenas a milhares de labels. |
| GLiNER2 | Extração de schemas multitarefa | Cada tarefa e o schema combinado ainda precisam de avaliação | Entidades, classificação e campos estruturados. |
| GLiNER-Relex | Extração conjunta de entidades e relações | Modelo mais recente que requer comparação específica por tarefa | Schemas explícitos de entidade-relação. |
| Classificador de tokens baseado em Transformer | Forte precisão supervisionada | Requer spans anotados e novo treino | Extração de domínio estável com dados suficientes. |
| Extração com LLM | Flexibilidade de schema e capacidade de raciocínio | Maior latência, custo e não determinismo | Registos complexos, valores implícitos e workflows de baixo volume. |
| Regras e dicionários | Comportamento determinístico na correspondência | Recall frágil | Compliance, IDs, códigos de produto e pós-filtros. |
Como escolher
Comece pelo schema de entidades, não pelo modelo.
Se os labels forem estáveis e estiverem disponíveis exemplos representativos, faça fine-tuning de um classificador de tokens. Compare-o num conjunto de domínio separado para validação. Este modelo prevê labels de tokens sem geração autoregressiva. A latência e o custo continuam a depender do modelo, do hardware, do batch size e da stack de serving.
Se os labels mudarem semanalmente, use GLiNER ou um extrator com LLM enquanto a ontologia estabiliza. Escreva uma descrição curta do tipo para cada label ambíguo. Investigação recente sobre NER hard zero-shot conclui que as descrições melhoram a generalização e evitam tratar leakage dos labels como capacidade zero-shot. O objetivo é perceber qual deve ser o schema antes de investir orçamento em anotação.
Se reutilizar um inventário de labels grande, avalie um bi-encoder antes de um encoder conjunto de labels e texto. O artigo sobre o GLiNER bi-encoder reporta 61,5 de micro-F1 no CrossNER. Reporta também um débito até 130 vezes superior com 1 024 labels e embeddings pré-calculados, nas condições de teste H100 do estudo. Estes resultados identificam um comportamento de escalabilidade. Não constituem uma estimativa para outra carga de trabalho de produção.
Se os documentos abrangerem vários idiomas, faça benchmark de todos os idiomas e scripts-alvo. O OpenNER 1.0 não encontrou um único modelo que fosse o melhor em toda a sua coleção de 52 idiomas. Teste tanto descrições dos tipos em inglês como descrições localizadas, porque o texto dos labels faz parte do input do modelo.
Se o output for um registo estruturado em vez de spans, use um LLM com structured outputs ou um pipeline híbrido. O LangExtract é útil quando cada extração tem de ser associada à sua localização na fonte. O NuExtract é uma opção self-hosted para extração multimodal de documentos. Ambos continuam a necessitar de avaliação ao nível dos campos nos documentos-alvo.
Muitas tarefas de extração empresarial não são NER puro. “Encontre as partes, obrigações, data de entrada em vigor, cláusula de rescisão e lei aplicável” é compreensão de documentos com campos de entidades.
Para PII, use um framework de PII como o Presidio como camada de integração e redação. Trate o GLiNER2-PII como candidato a modelo, não como uma decisão de compliance. Meça o recall nos formatos sensíveis, idiomas e documentos que o sistema irá processar.
Pipeline de produção
Um pipeline de extração de produção acrescenta frequentemente etapas em torno do modelo:
- Extração de candidatos: spaCy, GLiNER, modelo Transformer, LLM, regras ou uma combinação destes.
- Normalização opcional ou entity linking: associe spans a IDs canónicos, códigos de produto, utilizadores, empresas ou entradas de uma ontologia.
- Validação e revisão: rejeite labels impossíveis, aplique as restrições do schema, elimine spans duplicados e encaminhe os casos incertos para revisão.
A normalização transforma o texto extraído em dados úteis para o produto. Encontrar o span “Apple” é apenas o primeiro passo. O sistema ainda tem de decidir se significa a empresa, a fruta, uma família de produtos ou um ticker bolsista e, em seguida, associá-lo a um ID estável.
Checklist de avaliação
Meça mais do que o F1 ao nível da entidade:
- F1 de spans exatos
- F1 de spans relaxados
- matriz de confusão dos labels
- tratamento de entidades aninhadas
- precisão da normalização de entidades
- sensibilidade às descrições dos tipos e ao idioma dos labels
- segmentos por idioma, script e formato do documento
- falsos positivos por label
- calibração da confiança
- latência e custo por documento
- taxa de correções humanas
Mantenha o conjunto de teste separado do design do schema e do ajuste de thresholds. Comunique o número de documentos e de menções de entidades por label. Use intervalos de confiança ao nível do documento quando várias menções no mesmo documento pudessem, de outro modo, inflacionar a certeza.
Leitura aprofundada
- O Guia de NER 2026 aborda encoders, LLMs e a arquitetura de produção em três níveis.
- Schema-Guided Reasoning é relevante quando o NER evolui para extração estruturada.
Referências
- Documentação do GLiNER
- Artigo sobre o GLiNER bi-encoder — embeddings de labels em cache para inventários grandes.
- Documentação do GLiNER2
- Artigo sobre o GLiNER-Relex — extração conjunta de entidades e relações.
- Artigo do ZeroNER — avaliação hard zero-shot com descrições de tipos.
- Artigo do OpenNER 1.0 — avaliação multilingue e multi-ontologia de NER.
- LangExtract — extração com LLM ancorada na fonte.
- NuExtract — extração multimodal self-hosted.
- Presidio — framework de deteção e anonimização de PII.
- Artigo sobre o GLiNER2-PII — candidato a modelo multilingue de PII.
- Documentação de entidades nomeadas do spaCy
- Guia de classificação de tokens do Hugging Face
- Guia de structured outputs da OpenAI