Reconnaissance d'Entités Nommées (NER) : De la NLP classique à l'extraction basée sur l'IA

Illustration de la reconnaissance d'entités nommées (NER) et de l'extraction de données par l'IA

La reconnaissance d’entités nommées (NER, ou Named Entity Recognition) est une pierre angulaire du traitement automatique du langage naturel (NLP). Il s’agit du processus consistant à identifier et classifier automatiquement les éléments clés d’un texte non structuré dans des catégories prédéfinies, telles que des noms de personnes, d’organisations, de lieux, des dates, des valeurs monétaires et des noms de produits.

Sans la NER, les moteurs de recherche, les moteurs de recommandation et les systèmes automatisés d’analyse de documents peineraient à comprendre qui fait quoi, où et quand au sein d’un texte.

Voici un guide complet pour comprendre la NER, l’évolution de cette technologie et pourquoi l’intelligence artificielle générative moderne a complètement transformé l’extraction d’entités.


1. L’évolution des techniques de NER

Pour comprendre pourquoi la NER basée sur l’IA est si révolutionnaire, il convient d’observer comment l’extraction d’entités a évolué au cours des dernières décennies.

Étape 1 : Systèmes basés sur des règles et des dictionnaires

La NER à ses débuts reposait sur des expressions régulières (regex) et des dictionnaires spécialisés (gazetteers).

  • Fonctionnement : Si un mot figurait dans une base de données de lieux ou correspondait à un motif tel que [3 chiffres]-[3 chiffres]-[4 chiffres] (numéro de téléphone), il était extrait.
  • Limites : Très rigide. Incapable de capturer des mots mal orthographiés, de nouvelles entités, ou de gérer le contexte. Par exemple, impossible de distinguer si « Apple » faisait référence au fruit ou à l’entreprise technologique.

Étape 2 : Apprentissage automatique classique (CRF & SVM)

Dans les années 2000, les modèles statistiques d’apprentissage automatique comme les champs aléatoires conditionnels (CRF) et les machines à vecteurs de support (SVM) sont devenus la norme.

  • Fonctionnement : Les ingénieurs concevaient manuellement des descripteurs (ex. préfixes, suffixes, motifs de capitalisation) et entraînaient des modèles sur des données étiquetées pour prédire la probabilité qu’un jeton (token) fasse partie d’une entité.
  • Limites : Nécessitait des volumes massifs de données étiquetées et une ingénierie de caractéristiques manuelle fastidieuse.

Étape 3 : Apprentissage profond (BiLSTM-CRF & BERT)

Avec l’essor de l’apprentissage profond, les réseaux bidirectionnels à mémoire à court et à long terme (BiLSTM) associés aux CRF, puis plus tard les modèles de type Transformer comme BERT, ont révolutionné le NLP.

  • Fonctionnement : Les plongements de mots (embeddings) capturaient le sens sémantique et les réseaux de neurones profonds comprenaient le contexte. Les modèles basés sur BERT pouvaient identifier « Apple » comme une organisation dans « Apple a lancé un nouvel iPhone » grâce au contexte environnant.
  • Limites : Nécessitait toujours un ajustement fin (fine-tuning) supervisé sur des jeux de données spécifiques à un domaine, et manquait de flexibilité pour extraire de nouvelles catégories non définies sans réentraînement.

Étape 4 : IA générative et NER basé sur les LLM

Aujourd’hui, les grands modèles de langage (LLM) tels que Gemini, GPT-4 et Llama 3 gèrent la NER grâce à leur compréhension sémantique et leur capacité à suivre des instructions.

  • Fonctionnement : À l’aide de prompts Zero-shot ou Few-shot, un utilisateur peut demander à un LLM d’extraire n’importe quel type d’entité arbitraire et de le renvoyer dans un format structuré (comme du JSON).
  • Avantages : Compréhension de la syntaxe complexe, tolérance aux fautes d’orthographe, raisonnement contextuel en cas d’ambiguïté, et absence totale de données d’entraînement nécessaires au départ.

2. Comparaison : NER basée sur l’IA vs. NER classique

Caractéristique NER Classique (BERT / CRF) NER basée sur l’IA (LLMs)
Données d’entraînement requises Élevées (Des milliers d’exemples étiquetés) Zéro à très faible (Zero-shot / Few-shot)
Flexibilité Rigide (Extrait uniquement les catégories pré-entraînées) Extrêmement élevée (Définition de toute entité dans le prompt)
Compréhension du contexte Modérée (Fenêtre de contexte locale) Profonde (Comprend le contexte global du document et l’intention)
Gestion des mots hors vocabulaire (OOV) Faible (Difficulté avec les mots inconnus) Excellente (Recours au raisonnement sémantique)
Latence d’exécution & coût Rapide & peu coûteux (Exécution locale sur petits CPU/GPU) Plus lent & coût plus élevé (Nécessite l’inférence de grands modèles)

3. Principales applications de la NER basée sur l’IA

La reconnaissance d’entités nommées basée sur l’IA va bien au-delà du simple surbrillance de texte. En convertissant un texte non structuré en données JSON structurées et exploitables, elle permet une automatisation puissante :

Analyse de documents et extraction d’informations

Les entreprises traitent chaque jour des milliers de factures, de CV, de contrats et d’appels d’offres (RFP). La NER basée sur l’IA peut extraire :

  • Factures : Numéros de TVA, lignes d’articles, montants totaux, adresses de facturation.
  • CV : Noms des candidats, années d’expérience, compétences spécifiques, universités.
  • Contrats : Dates de résiliation, limites de responsabilité, lois applicables, noms des signataires.

Construction de graphes de connaissances

En extrayant les entités et les relations qui les unissent (ex. [Jennifer Lee] -> [travaille chez] -> [Acme Innovations]), la NER basée sur l’IA sert de moteur d’ingestion fondamental pour les graphes de connaissances (Knowledge Graphs), de plus en plus couplés à GraphRAG pour la recherche d’entreprise avancée.

RAG amélioré et balisage de métadonnées

Dans les systèmes de génération augmentée par récupération (RAG), l’indexation de documents avec des balises de métadonnées (comme l’auteur, la version du produit, le pays et la technologie) améliore considérablement la précision de la récupération. La NER basée sur l’IA génère automatiquement ces balises à grande échelle lors de l’ingestion des documents.

NLP clinique et médical

Les prestataires de soins de santé utilisent la NER pour extraire les symptômes des patients, les dosages de médicaments, les antécédents médicaux et les diagnostics à partir des notes des médecins, tout en masquant automatiquement les informations de santé personnelles (PHI) pour se conformer aux réglementations sur la protection des données.


4. Fonctionnement de la NER basée sur l’IA (Le flux de travail)

La NER moderne basée sur l’IA consiste à fournir à un LLM un prompt contenant des instructions système et un schéma cible afin d’imposer des sorties structurées.

[Texte non structuré] ──> [LLM + Instructions système + Schéma JSON] ──> [Sortie JSON structurée]
  1. Texte d’entrée : Le texte brut à traiter.
  2. Prompt système & Schéma : Nous définissons les entités à extraire (ex. Nom, Entreprise, Date) et le format exact requis (ex. JSON).
  3. Extraction par le LLM : Le modèle effectue l’analyse sémantique, identifie les entités, résout les ambiguïtés et formate la sortie.
  4. JSON structuré : Le résultat est prêt à être stocké directement dans une base de données ou transmis à une API.

5. Exemple d’implémentation : NER basée sur l’IA en Python

Voici un exemple simple en Python montrant comment effectuer une NER basée sur l’IA à l’aide de schémas de sortie JSON structurés :

import json
from google import genai
from google.genai import types
from pydantic import BaseModel

# Initialiser le client Gemini
client = genai.Client()

# Définir la structure cible avec Pydantic
class EntityExtraction(BaseModel):
    people: list[str]
    organizations: list[str]
    locations: list[str]
    dates: list[str]

text_content = """
Le 14 mars 2024, Jennifer Lee a été nommée nouvelle VP de l'ingénierie chez 
Acme Innovations Inc., située à Kyoto, au Japon. Elle succédera à David Miller.
"""

# Demander une sortie structurée à Gemini
response = client.models.generate_content(
    model='gemini-2.5-flash',
    contents=text_content,
    config=types.GenerateContentConfig(
        system_instruction="Extrayez toutes les personnes, organisations, lieux et dates du texte.",
        response_mime_type="application/json",
        response_schema=EntityExtraction,
    ),
)

# Analyser et afficher le résultat JSON propre
entities = json.loads(response.text)
print(json.dumps(entities, indent=2))

Sortie :

{
  "people": ["Jennifer Lee", "David Miller"],
  "organizations": ["Acme Innovations Inc."],
  "locations": ["Kyoto", "Japon"],
  "dates": ["14 mars 2024"]
}

Conclusion

La reconnaissance d’entités nommées a évolué des recherches statiques dans des dictionnaires vers une capacité sémantique et dynamique propulsée par l’IA. Aujourd’hui, les organisations peuvent extraire des entités complexes et spécifiques à leur domaine à partir de documents bruts sans aucune donnée d’entraînement préalable. En intégrant la NER basée sur l’IA dans vos flux de travail, vous pouvez transformer des fichiers texte non structurés en entrées de base de données structurées, ouvrant ainsi la voie à de nouveaux niveaux d’automatisation et d’intelligence décisionnelle.


Explorez d’autres perspectives sur l’IA sur le blog de Ghaznix →