Meilleurs modèles de NER en 2026 : spaCy, GLiNER, Transformers, LLMs
Traduction automatique Cet article a été traduit automatiquement depuis la version originale en anglais.
La reconnaissance d’entités nommées (NER) détecte et annote des segments de texte, comme des personnes, des entreprises et des codes produit. Cette page s’adresse aux ingénieurs qui choisissent une approche d’extraction pour une charge de production. Elle fournit un point de départ à tester sur votre schéma, vos documents et vos contraintes opérationnelles.
Utilisez spaCy pour des labels stables et des pipelines rapides. Choisissez GLiNER lorsque les labels changent souvent, un bi-encoder lorsqu’un inventaire volumineux de labels peut réutiliser des embeddings mis en cache, ou un token classifier Transformer fine-tuné lorsque vous disposez d’exemples annotés. Utilisez une structured extraction basée sur un LLM lorsque vous avez besoin d’un enregistrement complexe plutôt que d’une simple liste de segments.
Dernière vérification : 17/08/2026. Critères de sélection : stabilité des labels, inventaire de labels, sortie sous forme de segments ou d’enregistrement, langue, données supervisées, latence, normalisation et coût de revue.
Tableau de décision
| Besoin | Meilleur point de départ | Pourquoi |
|---|---|---|
| NER rapide avec des labels connus | spaCy | Pipelines matures, bonne ergonomie, déploiement rapide sur CPU et intégration de règles. |
| Nouveaux labels sans entraînement complet | GLiNER | L’extraction conditionnée par les labels fonctionne bien lorsque l’ensemble de labels évolue. Commencez par des descriptions claires des types, et non par de simples noms. |
| Inventaire volumineux et réutilisable de labels | GLiNER bi-encoder | Il peut précalculer et mettre en cache les embeddings des labels au lieu de les encoder avec chaque document. |
| Entités et relations en un seul passage | Candidat GLiNER-Relex | Il extrait conjointement les types d’entités et de relations. Évaluez-le par rapport à des étapes séparées sur le schéma de relations cible. |
| Entités, champs documentaires ou classification | GLiNER2 | Son interface de schéma combine reconnaissance d’entités, classification et tâches d’extraction structurée. |
| Entités imbriquées ou qui se chevauchent | Décodeur prenant en charge l’imbrication, notamment GLiNER avec flat_ner=False | Le décodage plat supprime les chevauchements. Testez les segments imbriqués sur des annotations contenant les motifs de chevauchement attendus. |
| Extraction multilingue ou multiscript | GLiNER-X ou baseline XLM-R | Aucun modèle n’est le meilleur dans toutes les langues. Testez chaque langue cible ainsi que la formulation de ses descriptions de types. |
| Labels de domaine stables avec des segments annotés représentatifs | Token classifier fine-tuné ou pipeline spaCy | Établissez une baseline supervisée, puis comparez le exact-span F1, la latence et le coût sur vos données de domaine. |
| Champs implicites, interphrases ou structurés | Candidat LLM ou hybride | Les structured outputs contraignent la forme de la réponse, mais pas l’exactitude de l’extraction. Validez la précision des champs sur un jeu de test de domaine. |
| Workflow PII à forts enjeux ou réglementé | Presidio avec GLiNER2-PII comme candidat | Combinez la sortie du modèle avec des contrôles déterministes, des mécanismes de redaction et une revue. |
Classes d’outils
| Classe | Atout | Limite | Cas d’usage adapté |
|---|---|---|---|
| NER spaCy | Rapide, adapté à la production, sensible aux règles | Nécessite un entraînement ou des règles pour les labels personnalisés | Labels connus dans des systèmes à haut débit. |
| GLiNER | Labels flexibles au moment de l’inférence | La qualité dépend de la formulation des labels et de l’écart avec le domaine | Itération rapide sur l’ontologie et labels long tail. |
| GLiNER bi-encoder | Les embeddings de labels mis en cache passent à l’échelle pour les grandes ontologies | Les bénéfices dépendent de la réutilisation des labels et de la forme de la charge | Inventaires réutilisés de quelques dizaines à plusieurs milliers de labels. |
| GLiNER2 | Extraction de schémas multitâche | Chaque tâche et le schéma combiné doivent encore être évalués | Entités, classification et champs structurés. |
| GLiNER-Relex | Extraction conjointe d’entités et de relations | Modèle plus récent nécessitant une comparaison spécifique à la tâche | Schémas explicites d’entités et de relations. |
| Token classifier Transformer | Forte précision supervisée | Nécessite des segments annotés et un réentraînement | Extraction de domaine stable avec suffisamment de données. |
| Extraction par LLM | Flexibilité du schéma et raisonnement | Latence, coût et nondéterminisme plus élevés | Enregistrements complexes, valeurs implicites et workflows à faible volume. |
| Règles et dictionnaires | Comportement de matching déterministe | Rappel fragile | Conformité, identifiants, codes produit et post-filtres. |
Comment choisir
Commencez par le schéma d’entités, pas par le modèle.
Si les labels sont stables et que des exemples représentatifs sont disponibles, fine-tunez un token classifier. Comparez-le sur un jeu de données de domaine mis de côté. Il prédit des labels de tokens sans génération autorégressive. La latence et le coût dépendent néanmoins du modèle, du matériel, de la taille des batches et de la stack de serving.
Si les labels changent chaque semaine, utilisez GLiNER ou un extracteur LLM pendant la stabilisation de l’ontologie. Rédigez une courte description de type pour chaque label ambigu. Des travaux récents sur le hard zero-shot NER montrent que les descriptions améliorent la généralisation et évitent de confondre la fuite de labels avec une capacité zero-shot. L’objectif est de déterminer ce que doit contenir le schéma avant d’investir dans l’annotation.
Si vous réutilisez un inventaire volumineux de labels, évaluez un bi-encoder avant un encodeur conjoint label-texte. L’article sur GLiNER bi-encoder rapporte un micro-F1 de 61,5 sur CrossNER. Il rapporte également un throughput jusqu’à 130 fois supérieur avec 1 024 labels et des embeddings précalculés, dans les conditions de test H100 de l’étude. Ces résultats mettent en évidence un comportement de passage à l’échelle. Ils ne constituent pas une estimation pour une autre charge de production.
Si les documents couvrent plusieurs langues, évaluez chaque langue et chaque script cibles. OpenNER 1.0 n’a trouvé aucun modèle systématiquement meilleur sur sa collection de 52 langues. Testez à la fois des descriptions de types en anglais et localisées, car le texte des labels fait partie de l’entrée du modèle.
Si la sortie est un enregistrement structuré plutôt que des segments, utilisez un LLM avec des structured outputs ou un pipeline hybride. LangExtract est utile lorsque chaque extraction doit pouvoir être reliée à son emplacement dans la source. NuExtract est une option auto-hébergée pour l’extraction multimodale de documents. Les deux nécessitent néanmoins une évaluation au niveau des champs sur les documents cibles.
De nombreuses tâches d’extraction métier ne relèvent pas uniquement du NER. « Trouver les parties, les obligations, la date d’entrée en vigueur, la clause de résiliation et le droit applicable » relève de la compréhension documentaire avec des champs d’entités.
Pour la PII, utilisez un framework PII tel que Presidio comme couche d’intégration et de redaction. Considérez GLiNER2-PII comme un candidat de modèle, et non comme une décision de conformité. Mesurez le rappel sur les formats sensibles, les langues et les documents que le système traitera réellement.
Pipeline de production
Un pipeline d’extraction de production ajoute souvent des étapes autour du modèle :
- Extraction de candidats : spaCy, GLiNER, modèle Transformer, LLM, règles ou combinaison de ces approches.
- Normalisation ou entity linking facultatif : mappage des segments vers des identifiants canoniques, des codes produit, des utilisateurs, des entreprises ou des entrées d’ontologie.
- Validation et revue : rejet des labels impossibles, application des contraintes du schéma, déduplication des segments et routage des cas incertains vers la revue.
La normalisation transforme le texte extrait en données produit exploitables. Trouver le segment « Apple » n’est que la première étape. Le système doit encore déterminer s’il désigne l’entreprise, le fruit, une famille de produits ou un ticker boursier, puis le mapper vers un identifiant stable.
Checklist d’évaluation
Mesurez davantage que le F1 au niveau des entités :
- exact span F1
- relaxed span F1
- matrice de confusion des labels
- gestion des entités imbriquées
- précision de la normalisation des entités
- sensibilité aux descriptions de types et à la langue des labels
- découpages par langue, script et format de document
- faux positifs par label
- calibration de la confiance
- latence et coût par document
- taux de correction humaine
Conservez le jeu de test séparé de la conception du schéma et de l’ajustement des seuils. Indiquez le nombre de documents et de mentions d’entités par label. Utilisez des intervalles de confiance au niveau des documents lorsque plusieurs mentions dans un même document pourraient autrement donner une confiance artificiellement élevée.
Pour aller plus loin
- Guide NER 2026 couvre les encoders, les LLMs et l’architecture de production à trois niveaux.
- Schema-Guided Reasoning est pertinent lorsque le NER évolue vers l’extraction structurée.
Références
- Documentation GLiNER
- Article sur GLiNER bi-encoder - embeddings de labels mis en cache pour les grands inventaires.
- Documentation GLiNER2
- Article GLiNER-Relex - extraction conjointe d’entités et de relations.
- Article ZeroNER - évaluation hard zero-shot avec descriptions de types.
- Article OpenNER 1.0 - évaluation multilingue et multi-ontologies du NER.
- LangExtract - extraction LLM ancrée dans la source.
- NuExtract - extraction multimodale auto-hébergée.
- Presidio - framework de détection et d’anonymisation de PII.
- Article GLiNER2-PII - candidat de modèle PII multilingue.
- Documentation des entités nommées de spaCy
- Guide de classification de tokens de Hugging Face
- Guide des structured outputs d’OpenAI