Résumez cet article avec :
- Pour l’extraction d’entités standard à grande échelle, utilisez spaCy. Il est rapide, gratuit, prêt pour la production, et fonctionne bien pour les entités courantes comme les personnes, organisations, lieux, dates et montants.
- Pour extraire des entités personnalisées sans données d’entraînement, utilisez GLiNER. C’est l’une des options les plus importantes en 2026, car les développeurs peuvent définir leurs propres labels au moment de l’exécution.
- Pour une précision maximale, utilisez les modèles Hugging Face BERT ou RoBERTa NER. Ils sont performants et adaptés au fine-tuning, mais demandent plus de ressources et sont plus lents que spaCy.
- Pour les APIs cloud managées, choisissez selon votre stack : AWS Comprehend pour les workflows AWS et l’entraînement personnalisé, Google Cloud NL API pour la désambiguïsation des entités, et Azure AI Language pour les besoins multilingues en entreprise.
- Pour comparer plusieurs fournisseurs facilement, utilisez Eden AI. La plateforme permet d’accéder à plusieurs APIs d’extraction d’entités depuis un seul endroit, de comparer les résultats et de changer de fournisseur sans réécrire l’intégration.
L’extraction d’entités consiste à identifier et classer automatiquement des informations clés dans un texte non structuré, comme des personnes, entreprises, lieux, dates ou encore des types d’entités personnalisés.
Pour les développeurs, le choix du bon outil dépend avant tout du cas d’usage. L’extraction d’entités peut être utilisée pour extraire des champs depuis des documents, analyser des retours clients, ou encore examiner des contrats afin d’identifier les parties prenantes, dates, clauses et obligations.
Les modèles open source offrent davantage de contrôle, tandis que les API cloud sont généralement plus simples à déployer. Les approches basées sur les LLM sont, quant à elles, plus adaptées aux besoins d’extraction flexible ou personnalisée, notamment lorsque les entités à détecter ne suivent pas un format standard.
Ce guide compare les meilleurs outils et API gratuits d’extraction d’entités en 2026 selon ces trois approches, afin de vous aider à choisir plus rapidement la solution la plus adaptée. Le tableau ci-dessous permet de comparer facilement le type d’outil, le niveau gratuit, les options de personnalisation et la couverture linguistique.
Les offres gratuites sont généralement suffisantes pour les tests, les prototypes et les cas d’usage d’extraction d’entités à faible volume. Pour un usage en production, les API cloud facturent le plus souvent à l’unité, mais elles peuvent toutes être accessibles via Eden AI avec une seule clé API.

Modèles open source d’extraction d’entités
spaCy : la référence pour la production
spaCy est l’une des bibliothèques NLP open source les plus utilisées pour l’extraction d’entités en Python en environnement de production. Elle est conçue pour créer des pipelines rapides, fiables et faciles à intégrer dans des workflows backend ou data existants, notamment lorsque les développeurs doivent traiter de grands volumes de texte.
Pour l’extraction d’entités en anglais, le pipeline spaCy le plus performant aujourd’hui est en_core_web_trf, un modèle basé sur les transformers qui offre une meilleure précision que les modèles statistiques plus légers. Par défaut, spaCy peut détecter des types d’entités courants comme PERSON, ORG, GPE, LOC, DATE, MONEY et CARDINAL, ce qui en fait une solution efficace pour les cas d’usage généralistes.
import spacy
nlp = spacy.load("en_core_web_trf")
doc = nlp("Apple opened a new office in Paris on March 3, 2026.")
for ent in doc.ents:
print(ent.text, ent.label_)
spaCy est particulièrement adapté si vous recherchez une solution offrant rapidité, traitement par lots et comportement prévisible en Python. C’est aussi un bon choix si votre équipe dispose déjà de données annotées et souhaite entraîner ou affiner un modèle NER personnalisé pour détecter des entités propres à un domaine, comme des noms de produits, clauses juridiques ou catégories internes.
Sa principale limite est que le schéma NER par défaut reste relativement fixe, sauf si vous entraînez ou fine-tunez le modèle avec des exemples labellisés. spaCy est publié sous licence MIT et peut être utilisé gratuitement.
GLiNER : l’extraction d’entités zero-shot sans données d’entraînement
GLiNER est l’une des nouveautés les plus intéressantes pour l’extraction d’entités en 2026, encore absente de nombreux articles plus anciens sur le sujet. Acronyme de Generalist Lightweight NER, GLiNER est un modèle open source de reconnaissance d’entités nommées basé sur un encodeur transformer bidirectionnel. Il a été présenté à NAACL 2024 par Urchade Zaratiana, Nadi Tomeh, Pierre Holat et Thierry Charnois.
La principale différence avec spaCy réside dans sa flexibilité. spaCy fonctionne très bien avec des labels d’entités prédéfinis, sauf si vous l’affinez avec des exemples annotés. GLiNER permet, lui, de définir les labels d’entités au moment de l’exécution, comme contract_party, payment_term ou jurisdiction, puis d’extraire les entités correspondantes sans données d’entraînement. Cette approche facilite fortement le test de nouveaux schémas d’extraction ou de cas d’usage spécifiques à un domaine.
# pip install gliner
from gliner import GLiNER
model = GLiNER.from_pretrained("urchade/gliner_medium-v2.1")
text = "Acme Corp will pay 50,000 EUR under French law."
labels = ["contract_party", "payment_term", "jurisdiction"]
entities = model.predict_entities(text, labels, threshold=0.5)
for entity in entities:
print(entity["text"], entity["label"])
GLiNER est particulièrement utile lorsque vous devez détecter des types d’entités personnalisés ou nouveaux, mais que vous ne disposez pas encore de données labellisées. Il convient bien au traitement de documents, à la revue de contrats, aux contrôles de conformité, à l’analyse de feedback produit et à d’autres workflows d’extraction métier.
L’article publié à NAACL 2024 indique que GLiNER surpasse ChatGPT et certains LLM fine-tunés sur des benchmarks NER zero-shot. Le modèle peut également fonctionner sur CPU, ce qui le rend exploitable en production sans nécessiter de GPU.
Le projet compte environ 3,2k étoiles sur GitHub, reste activement maintenu, et sa dernière version PyPI a été publiée en mars 2026. GLiNER est disponible sur PyPI et Hugging Face sous licence Apache 2.0.
Hugging Face Transformers : des modèles NER haute précision
Hugging Face Transformers donne accès à de nombreux modèles NER basés sur BERT et RoBERTa via une API de pipeline simple à utiliser. Deux options solides sont dslim/bert-base-NER, un modèle BERT fine-tuné sur le jeu de données anglais CoNLL-2003, et Jean-Baptiste/roberta-large-ner-english, un modèle RoBERTa-large également fine-tuné sur CoNLL-2003 et validé sur des données d’emails et de conversations.
Le benchmark CoNLL-2003 reste une référence standard pour comparer les modèles NER classiques sur des entités comme les personnes, organisations, lieux et noms divers. Hugging Face Transformers est donc un bon choix lorsque la précision est la priorité et que vous pouvez gérer une inférence plus lourde.
from transformers import pipeline
ner = pipeline("ner", model="dslim/bert-base-NER", aggregation_strategy="simple")
text = "Apple hired Sarah Chen in London in March 2026."
entities = ner(text)
for entity in entities:
print(entity["word"], entity["entity_group"], entity["score"])
Ces modèles sont particulièrement adaptés si vous disposez d’un accès GPU, recherchez de bonnes performances sur des benchmarks, ou prévoyez de fine-tuner un modèle sur des données métier, par exemple des documents juridiques, médicaux ou financiers.
Comparés à spaCy, les modèles NER basés sur transformers offrent généralement une meilleure précision, mais leur inférence est plus lourde, plus lente et plus coûteuse à scaler. L’Inference API de Hugging Face inclut des crédits gratuits avec des limites de taux, tandis que l’auto-hébergement de modèles open source reste gratuit, hors coûts d’infrastructure.
Flair : une option solide pour le NER multilingue
Flair est un framework NLP open source connu pour ses contextual string embeddings, qui capturent le sens à partir du contexte au niveau des caractères et des mots. Pour l’extraction d’entités, Flair reste utile dans les pipelines multilingues et prend en charge des modèles NER dans plus de 12 langues, dont l’anglais, l’allemand, le français, l’espagnol, le néerlandais et d’autres langues.
Flair est particulièrement pertinent lorsque votre projet implique des textes non anglophones ou lorsque vous avez besoin d’un framework cohérent pour des tâches NLP multilingues. Il peut être adapté aux équipes qui traitent des tickets support, documents ou contenus générés par les utilisateurs dans plusieurs langues.
Cela dit, Flair n’est plus la recommandation par défaut pour la plupart des nouveaux projets NER. GLiNER est généralement plus flexible pour extraire des entités personnalisées sans données d’entraînement, tandis que Hugging Face Transformers offre souvent plus de choix de modèles et une meilleure précision.
Flair reste toutefois une option à considérer lorsque l’extraction d’entités multilingue est le critère principal. Le framework est publié sous licence MIT et peut être utilisé gratuitement.
API cloud d’extraction d’entités
AWS Comprehend
AWS Comprehend est l’API NLP managée d’Amazon pour extraire des informations à partir de textes non structurés. Elle peut détecter des types d’entités standards comme PERSON, LOCATION, ORGANIZATION, DATE, QUANTITY, TITLE et EVENT.
Son principal avantage est la reconnaissance d’entités personnalisées. Vous pouvez entraîner votre propre extracteur d’entités à partir de données CSV labellisées, ce qui est utile lorsque les labels standards ne suffisent pas. Par exemple, AWS Comprehend peut servir à extraire des numéros de police, références produits, identifiants de réclamation, termes médicaux ou champs spécifiques à un contrat.
Utilisez AWS Comprehend si votre équipe travaille déjà avec AWS, a besoin d’un traitement par lots à grande échelle, ou souhaite entraîner des types d’entités personnalisés à partir de données déjà annotées. L’API s’intègre naturellement aux workflows AWS via des services comme S3, Lambda et IAM.
Côté prix, la reconnaissance d’entités commence à 0,0001 $ par unité. Le Free Tier AWS inclut 5 millions d’unités par mois pendant les 12 premiers mois, ce qui est suffisant pour les tests et les premiers cas d’usage.
Google Cloud Natural Language API
Google Cloud Natural Language API est un service NLP managé permettant d’analyser et d’extraire le sens d’un texte. Pour l’extraction d’entités, l’API peut détecter des types comme PERSON, LOCATION, ORGANIZATION, EVENT, WORK_OF_ART, CONSUMER_GOOD et OTHER.
Sa principale force est la désambiguïsation des entités. L’API peut relier les entités détectées à des références du monde réel grâce au Knowledge Graph de Google. Par exemple, elle peut comprendre si “Apple” désigne l’entreprise ou le fruit, ou si “Paris” fait référence à la ville ou à une autre entité. Elle fournit aussi des scores de saillance, qui permettent d’identifier les entités les plus importantes dans un texte.
Cela rend Google Cloud Natural Language API particulièrement utile pour la classification de contenu, l’analyse d’articles d’actualité, la veille média, les workflows de recherche et les applications où le contexte des entités compte davantage qu’une simple extraction de mots-clés.
Le niveau gratuit inclut les 5 000 premières unités par mois. Ensuite, les tarifs commencent à 1 $ pour 1 000 unités.
Azure AI Language (Named Entity Recognition)
Azure AI Language est le service NLP managé de Microsoft pour extraire des entités, analyser du texte et créer des workflows de compréhension du langage. Ses capacités de Named Entity Recognition prennent en charge plus de 80 langues, ce qui en fait une option solide pour les équipes internationales travaillant sur plusieurs régions, marchés ou jeux de données multilingues.
L’un de ses principaux avantages est le Custom NER via Azure Language Studio. Les équipes peuvent entraîner des modèles d’extraction d’entités personnalisés avec une interface no-code, ce qui est utile lorsque des experts métier doivent labelliser et gérer des entités spécifiques sans écrire de scripts d’entraînement.
Azure AI Language s’intègre également bien avec Azure Document Intelligence, ce qui le rend adapté aux workflows de documents structurés comme les factures, contrats, formulaires et documents métier internes.
Utilisez Azure AI Language si votre entreprise s’appuie déjà sur Microsoft ou Azure, si vous avez besoin d’une extraction d’entités multilingue, ou si vous souhaitez entraîner des modèles personnalisés sans workflow entièrement basé sur le code. C’est aussi un bon choix pour les pipelines Document AI combinant OCR, extraction de mise en page et reconnaissance d’entités nommées.
Les tarifs incluent 5 000 transactions gratuites par mois, puis commencent à 1 $ pour 1 000 transactions.
IBM Watson Natural Language Understanding
IBM Watson Natural Language Understanding est une API NLP managée capable d’extraire des entités, de détecter le sentiment et d’analyser les émotions dans un même appel API. Elle est donc utile lorsque l’extraction d’entités fait partie d’un workflow plus large d’analyse de texte, plutôt qu’une tâche isolée.
C’est une option pertinente pour les secteurs réglementés comme la finance, la santé et le juridique, où les équipes doivent souvent analyser des documents, messages, tickets ou rapports avec un comportement API cohérent. IBM Watson NLU peut être utilisé pour des pipelines de feedback client, surveillance de conformité, analyse des risques et workflows de revue interne.
Son niveau gratuit inclut 30 000 éléments NLU par mois, ce qui est généreux par rapport à de nombreuses autres API NLP. Cela le rend pratique pour les tests, les prototypes et les usages en production à faible volume.
Sa principale limite est qu’IBM Watson NLU ne prend pas en charge l’entraînement d’entités personnalisées pour ce cas d’usage. Il fonctionne uniquement avec des types d’entités prédéfinis.
Extraction d’entités avec les LLM : une nouvelle approche en 2026
Les LLM sont désormais une option sérieuse pour l’extraction d’entités, car ils suppriment deux contraintes majeures du NER traditionnel : les schémas fixes et le besoin de données d’entraînement labellisées.
Au lieu d’entraîner un modèle pour reconnaître des labels prédéfinis, vous pouvez décrire n’importe quel type d’entité dans un prompt et demander une sortie structurée en JSON. Cette approche fonctionne particulièrement bien pour les types d’entités nouveaux, l’extraction de relations, les champs imbriqués et les cas où le sens dépend fortement du contexte.
OpenAI GPT-4o avec Structured Outputs
Avec GPT-4o, l’extraction d’entités peut être traitée comme une tâche de génération pilotée par schéma. En utilisant response_format avec un schéma JSON, vous pouvez forcer le modèle à retourner les entités dans une structure prévisible, ce qui rend la sortie plus facile à valider et à intégrer dans des pipelines de production.
from pydantic import BaseModel
from openai import OpenAI
class Entity(BaseModel):
text: str
label: str
confidence: float
client = OpenAI()
response = client.responses.parse(
model="gpt-4o",
input="Acme Corp signed a contract under French law.",
text_format=list[Entity]
)
entities = response.output_parsed
print(entities)
Le principal compromis concerne le coût et la latence. GPT-4o est plus cher et plus lent que des solutions comme spaCy ou GLiNER, avec un prix généralement situé autour de 0,005 $ à 0,015 $ pour 1 000 tokens, selon la taille de l’entrée et de la sortie.
Utilisez GPT-4o lorsque vous devez extraire des entités contextuelles complexes, des relations, des champs imbriqués ou des types d’entités nouveaux pour lesquels aucune donnée d’entraînement n’existe.
Extraction d’entités avec les LLM : la nouvelle approche
Les LLM sont désormais une option sérieuse pour l’extraction d’entités, car ils lèvent deux contraintes majeures du NER traditionnel : les schémas fixes et le besoin de données d’entraînement labellisées.
Au lieu d’entraîner un modèle pour reconnaître des labels prédéfinis, vous pouvez décrire n’importe quel type d’entité dans un prompt et demander une sortie structurée en JSON. Cette approche fonctionne particulièrement bien pour les types d’entités nouveaux, l’extraction de relations et les cas où le sens dépend fortement du contexte.
.png)
.png)

