Polydesk-logotype
Polydesk.ai — Header

Entity Linking (Liaison d’Entités)

L’entity linking est une tâche de NLP qui consiste à identifier les mentions d’entités nommées dans un texte (personnes, organisations, lieux, produits) et à les relier à leur entrée unique dans une base de connaissances (knowledge base) comme Wikidata, DBpedia ou une ontologie métier. C’est l’étape qui transforme un nom ambigu en une identité précise.

Quand un texte mentionne « Paris », s’agit-il de la capitale de la France, de Paris Hilton, de Paris (Texas) ou du personnage mythologique ? Quand il mentionne « Apple », est-ce l’entreprise technologique ou le fruit ? L’entity linking résout cette ambiguïté en analysant le contexte et en reliant chaque mention à l’entité correcte dans une base de connaissances structurée. C’est la couche d’intelligence qui transforme du texte brut en données exploitables pour les knowledge graphs, la recherche sémantique, l’analyse d’information et le SEO structuré.

Entity Linking en bref
Catégorie
NLP / Information Extraction
Aussi appelé
Named Entity Disambiguation (NED), wikification, Named Entity Normalization (NEN)
Pipeline
NER (détection) → Génération de candidats → Désambiguïsation → Linking
Knowledge bases
Wikidata, DBpedia, YAGO, Freebase (deprecated), ontologies métier
Outils
spaCy + EntityLinker, DBpedia Spotlight, BLINK (Meta), REL, TagMe
Approche SOTA
Bi-encoders BERT (BLINK) + reranking, LLM zero-shot

Le pipeline d’entity linking

L’entity linking se décompose en trois étapes séquentielles, chacune avec ses propres défis techniques.

Étape 1 : Détection des mentions (NER)

La première étape est la reconnaissance d’entités nommées (NER) : identifier dans le texte les spans (séquences de mots) qui correspondent à des entités. Le système détecte que « Sebastian Thrun » est une personne, « Stanford » une organisation, et « Palo Alto » un lieu. Les modèles modernes utilisent des architectures de type Transformer (BERT, RoBERTa) avec un étiquetage séquentiel BIO (Beginning-Inside-Outside).

C’est une étape critique : si la mention n’est pas détectée, elle ne peut pas être liée. Les erreurs de NER se propagent en cascade dans tout le pipeline. Les textes informels (tweets, messages, forums) sont particulièrement difficiles car ils contiennent des abréviations, des fautes d’orthographe et une ponctuation erratique.

Étape 2 : Génération de candidats

Pour chaque mention détectée, le système génère une liste de candidats depuis la base de connaissances. Pour « Paris », les candidats pourraient être : Paris (ville, France), Paris (Texas), Paris Hilton, Paris (mythologie grecque). La génération de candidats utilise plusieurs stratégies :

Correspondance de surface : Rechercher les entrées de la KB dont le nom correspond (exact ou fuzzy) à la mention. « Paris » matche toutes les entrées contenant « Paris ».

Alias et redirections : Utiliser les alias, acronymes et redirections de Wikipedia/Wikidata. « NYC » → New York City, « OMS » → Organisation mondiale de la Santé.

Prior de popularité : Pondérer les candidats par leur probabilité a priori. « Paris » sans contexte fait référence à la capitale française dans ~95% des cas sur Wikipedia. Ce prior est calculé à partir des statistiques de liens dans Wikipedia.

Encodage dense (BLINK) : Les systèmes modernes comme BLINK (Meta) utilisent un bi-encoder BERT pour encoder la mention avec son contexte et chaque entité candidate en vecteurs denses, puis recherchent les plus proches voisins via FAISS. C’est scalable et efficace, même avec des millions d’entités dans la KB.

Étape 3 : Désambiguïsation

Le cœur de l’entity linking. Parmi les candidats générés, le système doit choisir la bonne entité en analysant le contexte. Trois types de signaux sont exploités :

Contexte local : Les mots autour de la mention. « Paris est la capitale de la France » → le mot « capitale » indique la ville. « Paris a publié un album » → « album » indique une personne.

Cohérence globale : Les autres entités détectées dans le même document doivent être cohérentes. Si le texte mentionne aussi « Tour Eiffel » et « Seine », cela renforce le candidat Paris (ville). Les approches par graphe modélisent cette cohérence collective.

Similarité sémantique : Les modèles Transformer comparent l’embedding du contexte de la mention avec l’embedding de la description de chaque candidat dans la KB. Le candidat le plus similaire sémantiquement est sélectionné.

La prédiction NIL Un cas important : la mention fait référence à une entité qui n’existe pas dans la KB. Par exemple, une startup récemment créée ou une personne inconnue. Le système doit être capable de prédire « NIL » (non linkable) plutôt que de forcer un lien incorrect. C’est un défi majeur, surtout pour les KB incomplètes ou les domaines en évolution rapide.

Entity Linking vs NER : la distinction fondamentale

Critère NER (Named Entity Recognition) Entity Linking
Objectif Détecter et classifier les entités (personne, lieu, organisation) Identifier quelle entité spécifique est mentionnée et la relier à une KB
Sortie « Paris » → LOC (lieu) « Paris » → wikidata:Q90 (Paris, capitale de la France)
Ambiguïté Non résolue (dit seulement que c’est un lieu) Résolue (dit exactement quel lieu)
Base de connaissances Non requise Indispensable (Wikidata, DBpedia, ontologie métier)
Complexité Détection + classification Détection + classification + désambiguïsation + linking

Le NER est un sous-composant de l’entity linking. Le NER détecte et catégorise (« c’est un lieu »). L’entity linking va plus loin et identifie (« c’est spécifiquement Paris, France, identifiant Wikidata Q90 »). En pratique, les systèmes modernes font souvent les deux en un seul pipeline end-to-end.


Les bases de connaissances (Knowledge Bases)

Knowledge Base Source Entités Usage
Wikidata Wikimedia Foundation ~100M+ items KB de référence open source. Identifiants uniques (Q-IDs), multilingue, structurée.
DBpedia Extraction structurée de Wikipedia ~6M+ entités KB historique pour l’entity linking. Format RDF, SPARQL queryable.
YAGO Max Planck Institute ~10M+ entités Combine Wikipedia et WordNet. Haute qualité, taxonomie riche.
UMLS / SNOMED CT NLM / IHTSDO Millions de concepts médicaux Entity linking biomédical. Standard pour les dossiers cliniques.
Ontologies métier Custom Variable Taxonomies internes, catalogues produits, référentiels clients.

Le choix de la KB conditionne tout le système. Pour du texte open-domain (articles, web), Wikidata est la référence. Pour du texte médical, UMLS et SNOMED CT sont les standards. Pour un usage métier spécifique, une KB custom (base clients, catalogue produits, taxonomie interne) est souvent nécessaire.


Outils et systèmes d’entity linking

Outil Approche KB cible Points forts
BLINK (Meta) Bi-encoder BERT + FAISS Wikipedia SOTA, zero-shot (>90% accuracy), scalable. Open source.
DBpedia Spotlight Modèle probabiliste DBpedia API REST simple, multilingue, gratuit. Précurseur historique.
REL Neural (Flair + ED) Wikipedia End-to-end NER + EL, rapide, API. Open source.
TagMe Graph-based Wikipedia Conçu pour les textes courts (tweets, requêtes). API gratuite.
spaCy EntityLinker Intégré au pipeline spaCy Wikidata (via NEL) S’intègre dans un pipeline NLP complet. Extensible.
Google Cloud NL API Propriétaire Knowledge Graph Google API managée, haute qualité, MID (identifiants Knowledge Graph).
LLM (GPT-4, Claude) Zero-shot prompting Variable Flexible, pas de KB prédéfinie requise. Lent et coûteux.
LLM pour l’entity linking ? Les LLM récents obtiennent des F1-scores supérieurs à 85% en entity linking zero-shot sur des datasets open-domain. L’avantage : pas besoin de KB prédéfinie ni de modèle spécialisé. L’inconvénient : latence élevée, coût par document, et risque d’hallucination (le LLM peut inventer un lien vers une entité inexistante). Pour la production à grande échelle, un système spécialisé comme BLINK ou REL reste plus fiable et plus économique.

Cas d’usage concrets

Construction de knowledge graphs : L’entity linking est la brique fondamentale pour peupler un knowledge graph à partir de texte. Extraire les entités, les relier à une KB, puis extraire les relations entre elles. C’est le pipeline standard de knowledge base population.

SEO sémantique et Schema.org : Relier les entités de votre contenu à Wikidata via les propriétés Schema.org (sameAs, about, @id) améliore la compréhension de votre contenu par Google. C’est ce qui alimente les Knowledge Panels et les résultats enrichis. L’entity linking automatisé permet de générer ces annotations à grande échelle.

Analyse d’information et veille : Relier les mentions de personnes, d’entreprises et de lieux à des identifiants uniques permet d’agréger les informations sur une même entité provenant de sources différentes. « Anthropic », « la société d’IA Anthropic » et « l’entreprise qui développe Claude » sont trois mentions différentes de la même entité.

Biomédecine et clinical NLP : Relier les mentions de maladies, médicaments et gènes à des codes standardisés (UMLS, SNOMED CT, MeSH). Indispensable pour l’analyse de dossiers médicaux, la pharmacovigilance et la recherche clinique.

Analyse juridique : Relier les références à des lois, des jurisprudences et des parties prenantes à des entrées normalisées. « L.225-37 du Code de commerce » → identifiant législatif précis.

RAG et recherche sémantique : L’entity linking enrichit les documents avant l’indexation dans un pipeline RAG. Relier « Apple » à l’entité correcte améliore la qualité du retrieval en éliminant l’ambiguïté en amont.


Approches modernes

BLINK (Meta, 2020) utilise un bi-encoder BERT pour encoder séparément la mention (avec son contexte) et chaque entité candidate (sa description dans la KB) en vecteurs denses. La recherche des candidats les plus proches se fait via FAISS (ANN). Optionnellement, un cross-encoder reclasse les top candidats pour affiner la sélection. BLINK atteint des accuracies supérieures à 90% en zero-shot et fonctionne sur des KB de millions d’entités.

Systèmes end-to-end

Les architectures récentes intègrent NER, génération de candidats et désambiguïsation dans un seul modèle neural. Des modèles comme GENRE (Meta) utilisent des architectures encoder-decoder (BART) qui génèrent directement l’identifiant de l’entité sous forme de texte. L’avantage : plus de pipeline séquentiel, les erreurs ne se propagent plus d’une étape à l’autre.

Entity linking multilingue

Un défi majeur. Les systèmes entraînés sur Wikipedia anglais ne généralisent pas bien aux autres langues, surtout les langues à faibles ressources. Les approches cross-lingual utilisent des modèles multilingues (mBERT, XLM-R) pré-entraînés sur des corpus parallèles pour transférer les capacités de linking entre langues. Wikidata, avec ses labels multilingues, est la KB de choix pour l’entity linking cross-lingual.


Exemple avec spaCy

import spacy

# Charger le modèle avec entity linker
nlp = spacy.load("en_core_web_lg")
# Ajouter le composant entity linker si disponible
# nlp.add_pipe("entity_linker")  # nécessite une KB configurée

# Alternative : utiliser un service comme DBpedia Spotlight
import requests

text = "Apple CEO Tim Cook announced new products at the event in Cupertino."

# NER avec spaCy
doc = nlp(text)
for ent in doc.ents:
    print(f"{ent.text} → {ent.label_}")
# Apple → ORG
# Tim Cook → PERSON
# Cupertino → GPE

# Entity linking via DBpedia Spotlight API
response = requests.get(
    "https://api.dbpedia-spotlight.org/en/annotate",
    params={"text": text, "confidence": 0.5},
    headers={"Accept": "application/json"}
)
entities = response.json().get("Resources", [])
for e in entities:
    print(f"{e['@surfaceForm']} → {e['@URI']}")
# Apple → http://dbpedia.org/resource/Apple_Inc.
# Tim Cook → http://dbpedia.org/resource/Tim_Cook
# Cupertino → http://dbpedia.org/resource/Cupertino,_California

DBpedia Spotlight est l’API la plus simple pour expérimenter avec l’entity linking. Pour la production, BLINK ou REL offrent de meilleures performances et plus de contrôle.


Limites et défis

Dépendance à la qualité de la KB. Le système ne peut lier qu’aux entités présentes dans la KB. Si l’entité n’y figure pas (startup récente, personne peu connue), le système doit prédire NIL, ce qui reste un défi. La couverture de la KB est un facteur limitant majeur.

Ambiguïté extrême. Certaines mentions sont très ambiguës : « Washington » peut désigner l’état, la ville, l’université, le président ou le film. La désambiguïsation dépend entièrement du contexte disponible. Sur les textes courts (tweets, requêtes de recherche), le contexte est souvent insuffisant.

Cascade d’erreurs. Dans un pipeline séquentiel, les erreurs de NER se propagent : si « Tim Cook » n’est pas détecté comme entité, il ne peut pas être lié. Les modèles end-to-end atténuent ce problème mais sont plus complexes à mettre en place.

Scalabilité multilingue. Les KB et les modèles NER sont nettement moins développés pour les langues autres que l’anglais. L’entity linking en français ou en arabe nécessite des ressources spécifiques (modèles NER multilingues, KB avec labels dans la langue cible).

Coût de maintenance de la KB. Les KB doivent être régulièrement mises à jour pour refléter les nouvelles entités, les changements (fusions d’entreprises, changements de nom) et les évolutions du monde réel. C’est un coût opérationnel significatif.


Verdict

L’entity linking est la couche d’intelligence qui transforme des noms ambigus en identités précises. C’est un composant essentiel pour la construction de knowledge graphs, le SEO sémantique, l’analyse biomédicale et tout système qui a besoin de comprendre de qui ou de quoi on parle. Les systèmes modernes (BLINK, GENRE) atteignent des performances remarquables (>90% accuracy en zero-shot) et les LLM offrent une flexibilité inédite pour les cas non standard.

Pour démarrer, DBpedia Spotlight est la solution la plus simple (API gratuite, résultats corrects). Pour la production, BLINK ou REL offrent un meilleur contrôle et de meilleures performances. Et pour les domaines spécialisés (médical, juridique), une KB métier couplée à un modèle fine-tuné est indispensable. L’entity linking n’est pas un luxe, c’est ce qui sépare le NLP « basique » (il y a un lieu mentionné) du NLP « intelligent » (le lieu est Paris, France, coordonnées 48.8566°N, 2.3522°E, population 2,1 millions).


Questions fréquentes sur l’entity linking

Quelle est la différence entre entity linking et NER ?

La NER (Named Entity Recognition) détecte et catégorise les entités dans un texte : « Paris » → lieu, « Apple » → organisation. L’entity linking va plus loin : il désambiguïse et relie chaque entité à son entrée unique dans une base de connaissances. « Paris » → Wikidata Q90 (Paris, France), « Apple » → Wikidata Q312 (Apple Inc.). Le NER répond à « qu’est-ce que c’est ? », l’entity linking répond à « de qui ou de quoi exactement parle-t-on ? ». Le NER est une sous-étape de l’entity linking.

Quelle base de connaissances utiliser pour l’entity linking ?

Pour du texte open-domain : Wikidata (100M+ entités, multilingue, identifiants uniques Q-IDs, mise à jour continue). Pour de l’entity linking historique ou des benchmarks : DBpedia. Pour le domaine biomédical : UMLS ou SNOMED CT. Pour un usage métier spécifique : une KB custom (catalogue produits, base clients, taxonomie interne). Le choix de la KB conditionne la couverture et la qualité du linking. Si l’entité n’est pas dans la KB, le système ne peut pas la lier.

Comment l’entity linking améliore-t-il le SEO ?

L’entity linking relie les entités de votre contenu à des identifiants standardisés (Wikidata, Knowledge Graph Google). En annotant votre contenu avec Schema.org (sameAs, about, @id), vous aidez Google à comprendre exactement de qui et de quoi vous parlez. Cela alimente les Knowledge Panels, les résultats enrichis et l’indexation sémantique. Un site dont les entités sont clairement liées à des identifiants reconnus a un avantage significatif en SEO sémantique par rapport à un site qui n’utilise que du texte brut.

Les LLM peuvent-ils remplacer les systèmes d’entity linking classiques ?

Partiellement. Les LLM (GPT-4, Claude) obtiennent des F1-scores supérieurs à 85% en entity linking zero-shot, sans KB prédéfinie ni entraînement spécifique. Leur flexibilité est un atout pour les cas non standard ou les domaines de niche. Mais ils sont plus lents, plus coûteux, et peuvent halluciner (inventer un lien vers une entité inexistante). Pour la production à grande échelle avec des exigences de fiabilité, un système spécialisé (BLINK, REL) avec une KB structurée reste la référence. L’approche hybride (LLM pour les cas ambigus, système classique pour le volume) est de plus en plus courante.

L’entity linking fonctionne-t-il en français ?

Oui, mais avec des nuances. DBpedia Spotlight supporte le français via son API (api.dbpedia-spotlight.org/fr/annotate). Wikidata est nativement multilingue. Les modèles NER de spaCy (fr_core_news_lg) détectent les entités en français. Pour la désambiguïsation, les modèles multilingues (mBERT, XLM-R) permettent de transférer les capacités de l’anglais au français. Les performances sont toutefois légèrement inférieures à l’anglais en raison de corpus d’entraînement plus petits. Pour un usage métier en français, un fine-tuning sur des données annotées françaises est recommandé.

Polydesk.ai — Footer