La reconnaissance d'entités nommées (NER, pour Named Entity Recognition) repère dans un texte les éléments qui ont un nom propre ou une valeur : personnes, organisations, lieux, dates, montants. Elle transforme un email ou un contrat en champs structurés, prêts à remplir un CRM ou un outil de gestion.
Un assistant surligne au feutre, dans chaque courrier reçu, le nom du client en jaune, la ville en vert, la date en bleu et le montant en rose. Puis il recopie chaque couleur dans la bonne case.
Mots, ponctuation, nombres. Le modèle examine chaque jeton avec son contexte : « Martin » après « Claire » n'a pas le même rôle que « martin-pêcheur ».
Début d'entité, suite d'entité, ou hors entité, avec le type : personne, lieu, organisation. Ce découpage (schéma BIO) permet de reconnaître des entités de plusieurs mots.
Pour les entités très régulières (dates, montants, numéros de contrat), quelques motifs écrits à la main sont plus fiables et plus simples qu'un réentraînement.
Le client écrit comme il veut : son nom, sa ville, une date de livraison, un montant à rembourser, parfois le nom d'un partenaire. Les textes du code sont deux exemples écrits pour l'illustration.
Pour chaque email : personne, lieu, organisation, date, montant. Le modèle spaCy reconnaît les noms, lieux et organisations ; deux règles ajoutent les dates et les montants, que le petit modèle français ne détecte pas.
On annote à la main 100 à 200 emails, puis on mesure, pour chaque type, la part des entités extraites qui sont justes (précision) et la part des entités présentes qui sont trouvées (rappel). Un montant manqué coûte souvent plus cher qu'un nom de ville oublié.
Le choix du modèle et des types d'entités compte plus que les hyperparamètres. Noms donnés pour spaCy.
fr_core_news_sm est rapide et léger ; fr_core_news_lg est plus précis. Les modèles de type CamemBERT ajustés à la NER, sur Hugging Face, vont plus loin mais demandent plus de calcul.
Les modèles spaCy français connaissent PER, LOC, ORG et MISC. Pour DATE, MONTANT ou des entités métier, il faut des règles ou un modèle entraîné sur vos exemples.
Des motifs sur les jetons (un nombre suivi de « euros ») ou des listes de noms connus. Placées avant le modèle (before="ner"), elles sont prioritaires.
Quelques centaines de textes annotés suffisent souvent à ajouter un type d'entité ou à adapter le modèle à votre vocabulaire.
# Réclamations clients : reconnaissance d'entités (NER) en Python
import spacy
# Petit modèle français public : python -m spacy download fr_core_news_sm
# Il reconnaît personnes (PER), lieux (LOC), organisations (ORG) et divers (MISC)
nlp = spacy.load("fr_core_news_sm")
# Dates et montants ne font pas partie de ses étiquettes : on ajoute des règles
mois = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août",
"septembre", "octobre", "novembre", "décembre"]
regles = nlp.add_pipe("entity_ruler", before="ner")
regles.add_patterns([
{"label": "DATE", "pattern": [{"IS_DIGIT": True}, {"LOWER": {"IN": mois}}, {"IS_DIGIT": True, "OP": "?"}]},
{"label": "MONTANT", "pattern": [{"LIKE_NUM": True}, {"LOWER": {"IN": ["€", "euros"]}}]},
])
reclamations = [
"Bonjour, je m'appelle Claire Martin et j'habite à Lyon. Mon colis livré le 12 mars 2026 était abîmé.",
"Après mon appel à la SNCF, je demande le remboursement de 349 euros avant le 30 avril.",
]
for texte in reclamations:
doc = nlp(texte)
print([(entite.text, entite.label_) for entite in doc.ents])
La NER se pratique en Python (spaCy, transformers) : en R, le package spacyr ne fait qu'appeler spaCy installé côté Python.
Un élément du texte qui désigne quelque chose de précis : une personne, une organisation, un lieu, et par extension une date, un montant ou une quantité. La liste exacte dépend du modèle : il faut vérifier les types qu'il connaît avant de l'utiliser.
spaCy est rapide, gratuit, tourne en interne et donne des résultats stables, mais ne connaît que ses types d'entités. Un LLM extrait n'importe quel champ décrit dans une consigne, sans entraînement, mais coûte plus cher par texte et peut inventer une valeur absente. Sur de gros volumes, on combine souvent les deux.
Elle en est la base : on repère les noms, lieux et organisations, puis on les remplace. Mais aucun modèle n'a un rappel parfait. Pour des données personnelles sensibles, il faut ajouter des règles, mesurer ce qui échappe et prévoir une relecture.
Un modèle de type BERT ajusté à la NER donne les meilleurs scores sur des textes difficiles, au prix de la vitesse.
Voir la fiche → extraction par consigneOn demande au LLM de rendre les champs en JSON. Souple, sans entraînement, mais plus coûteux et à vérifier sur un échantillon.
Voir la fiche → l'autre lecture du même emailClasse le texte entier au lieu d'en extraire des morceaux. Les deux se combinent pour router et pré-remplir une réclamation.
Voir la fiche →Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.
Nous utilisons des cookies de mesure d'audience et de suivi publicitaire pour comprendre la fréquentation du site et l'efficacité de nos annonces. Rien n'est déposé sans votre accord. En savoir plus