Coreference Resolution (Résolution de Coréférence)
La coreference resolution est une tâche de NLP qui identifie toutes les expressions dans un texte qui font référence à la même entité du monde réel, et les regroupe en chaînes de coréférence. C’est ce qui permet à une machine de comprendre que « Marie Curie », « elle », « la physicienne » et « la lauréate du prix Nobel » désignent toutes la même personne.
Quand vous lisez « Jean a acheté un vélo. Il l’utilise tous les jours pour aller au travail », vous comprenez instantanément que « il » = Jean et « l' » = le vélo. C’est trivial pour un humain, mais c’est un défi majeur pour une machine. Sans résolution de coréférence, un système de question-answering ne peut pas répondre à « Qui utilise le vélo ? » à partir de la deuxième phrase seule, car « il » est ambigu sans contexte. C’est la brique qui transforme un texte fragmenté en un récit cohérent pour les machines.
- Catégorie
- NLP / Compréhension du langage
- Aussi appelé
- Résolution de coréférence, anaphora resolution (cas particulier)
- Objectif
- Regrouper toutes les mentions qui réfèrent à la même entité en chaînes de coréférence
- Input
- Texte avec pronoms, noms propres, descriptions définies
- Output
- Clusters de mentions coréférentes : [Jean, il, le cycliste] [un vélo, l’, son vélo]
- Outils
- Stanford CoreNLP, spaCy + neuralcoref, SpanBERT, HuggingFace, Spark NLP
Concepts fondamentaux
Types de références
La coréférence couvre plusieurs types de références linguistiques :
Pronoms anaphoriques : Les cas les plus fréquents. « Jean est parti. Il reviendra demain. » Le pronom « il » est une anaphore qui réfère à « Jean », son antécédent. C’est le type le plus étudié et le mieux résolu par les systèmes actuels.
Cataphores : L’inverse de l’anaphore : la référence apparaît avant l’entité. « Quand il est arrivé, Jean a été surpris. » Ici, « il » apparaît avant « Jean » dans le texte. Plus rare et plus difficile à résoudre.
Descriptions définies : Des expressions nominales différentes qui désignent la même entité. « Anthropic a annoncé Claude Opus 4.6. L’entreprise d’IA basée à San Francisco poursuit son développement. » « L’entreprise d’IA » est une description définie coréférente avec « Anthropic ».
Noms propres répétés ou variés : « Marie Curie a reçu deux prix Nobel. Curie est la seule personne à avoir obtenu le Nobel dans deux disciplines scientifiques différentes. »
Chaînes de coréférence
L’output d’un système de résolution de coréférence est un ensemble de clusters (ou chaînes). Chaque cluster regroupe toutes les mentions du texte qui réfèrent à la même entité. Exemple :
Texte : « Marie Curie a découvert le radium. Elle a reçu le prix Nobel de physique en 1903. La physicienne polonaise a ensuite obtenu le Nobel de chimie en 1911. »
Chaîne 1 : [Marie Curie, Elle, La physicienne polonaise]
Chaîne 2 : [le radium]
Chaîne 3 : [le prix Nobel de physique]
Chaîne 4 : [le Nobel de chimie]
Les techniques de résolution
Approches par règles
Les premières approches utilisaient des heuristiques linguistiques :
Accord en genre et en nombre : « Jean est parti. Il reviendra. » → « il » (masculin singulier) matche « Jean » (masculin singulier). « Les chats dorment. Ils sont fatigués. » → « ils » (masculin pluriel) matche « les chats ».
Contraintes syntaxiques : Le pronom ne peut pas coréférer avec le sujet de sa propre proposition dans certains cas (Binding Theory de Chomsky). « Jeani l’j a vu » → « l' » ne peut pas être Jean.
Proximité : En l’absence d’autre signal, le candidat antécédent le plus proche est souvent le plus probable.
Le système de Stanford CoreNLP utilise une approche multi-pass sieve qui applique ces règles par ordre de précision décroissante : d’abord les correspondances exactes de noms propres, puis les acronymes, puis les accords grammaticaux, puis les heuristiques plus permissives. Cette approche reste une baseline solide.
Approches par machine learning
Classifieur mention-pair : Pour chaque paire de mentions (m_i, m_j), un classifieur binaire prédit si elles sont coréférentes ou non. Les features incluent la distance entre les mentions, l’accord en genre/nombre, les caractéristiques syntaxiques et sémantiques. Les paires positives sont ensuite reliées par clustering transitif.
Modèle mention-ranking : Pour chaque mention, un modèle classe tous les antécédents possibles et sélectionne le plus probable. Plus efficace que le mention-pair car il modélise la compétition entre candidats. Les systèmes supervisés atteignent des F-scores entre 0,7 et 0,8 sur les benchmarks standard (MUC, ACE, OntoNotes).
Approches deep learning (état de l’art)
End-to-end neural coreference (Lee et al., 2017) : Le modèle fondateur qui a révolutionné le domaine. Il traite toutes les spans du texte comme des mentions potentielles, apprend à détecter les mentions et à résoudre les coréférences dans un seul modèle, sans pipeline séquentiel. Il utilise des embeddings contextuels (ELMo, puis BERT) pour représenter chaque span.
SpanBERT : Une variante de BERT spécifiquement pré-entraînée pour les tâches de spans (dont la coréférence). SpanBERT a établi de nouveaux records sur le benchmark OntoNotes pour la résolution de coréférence.
Word-level coreference : Les approches récentes opèrent au niveau des tokens plutôt que des spans, réduisant significativement la complexité computationnelle tout en maintenant des performances compétitives. C’est utile pour traiter de longs documents.
Applications concrètes
Question answering et RAG : Si le passage récupéré contient « Elle a fondé l’entreprise en 2021 », le système doit résoudre « elle » pour fournir une réponse complète. Sans coréférence, le LLM dans un pipeline RAG reçoit un contexte ambigu qui dégrade la qualité de la réponse.
Résumé automatique : Pour produire un résumé cohérent, le système doit savoir que « le président », « il » et « Biden » réfèrent à la même personne. Sinon, le résumé peut contenir des pronoms sans antécédent ou des répétitions incohérentes.
Traduction automatique : Les langues pro-drop (comme l’espagnol ou le japonais) omettent souvent les pronoms sujets. Pour traduire vers le français ou l’anglais, le système doit inférer le sujet implicite, ce qui requiert une résolution de coréférence cross-phrase.
Enrichissement d’embeddings : Remplacer les pronoms par les entités auxquelles ils réfèrent (coreference resolution as preprocessing) améliore la qualité des embeddings de phrases pour la recherche sémantique. « Il l’a utilisé » devient « Jean a utilisé le vélo », un embedding beaucoup plus informatif.
Information extraction : Pour construire un knowledge graph, il faut savoir que « Anthropic » dans le paragraphe 1 et « l’entreprise » dans le paragraphe 3 sont la même entité. La coréférence est un prérequis pour l’entity linking et l’extraction de relations à travers les phrases.
Analyse de sentiment par entité : « Le restaurant était bruyant. Mais sa cuisine était excellente. » La coréférence permet d’attribuer les sentiments (bruyant → négatif, cuisine excellente → positif) à la même entité « le restaurant ».
Détection de fake news : Une étude a montré que l’ajout de la résolution de coréférence a amélioré la précision de détection de fake news de 9,42%, car le système comprend mieux les relations entre les affirmations dans un article.
Outils et implémentations
| Outil | Approche | Langues | Points forts |
|---|---|---|---|
| Stanford CoreNLP | Multi-pass sieve + neural | Anglais, chinois | Référence académique, intégré dans un pipeline NLP complet |
| spaCy + neuralcoref | Neural (greedily-connected) | Anglais | Simple d’utilisation, intégré à spaCy. Note : neuralcoref est legacy. |
| SpanBERT (HuggingFace) | End-to-end neural (Transformer) | Anglais | SOTA sur OntoNotes, haute précision |
| Spark NLP (John Snow Labs) | SpanBertCoref | Anglais | Scalable (Apache Spark), production-ready, modèles cliniques |
| AllenNLP | End-to-end neural | Anglais | Implémentation de référence du modèle de Lee et al. |
| LLM (GPT-4, Claude) | Zero-shot prompting | Multilingue | Flexible, pas de modèle spécialisé requis. Lent et coûteux. |
Exemple d’implémentation
Avec spaCy et un modèle Transformer
# Installation : pip install spacy[transformers]
# python -m spacy download en_coreference_web_trf
import spacy
nlp = spacy.load("en_coreference_web_trf")
text = """Marie Curie discovered radium in 1898.
She received the Nobel Prize in Physics in 1903.
The Polish-born physicist later won the Nobel Prize
in Chemistry in 1911."""
doc = nlp(text)
# Afficher les chaînes de coréférence
for cluster in doc.spans:
if cluster.startswith("coref_clusters"):
mentions = doc.spans[cluster]
print(f"Cluster: {[m.text for m in mentions]}")
# Cluster: ['Marie Curie', 'She', 'The Polish-born physicist']
Avec un LLM (approche zero-shot)
# Approche pragmatique avec un LLM pour la résolution de coréférence
prompt = """Résous les coréférences dans le texte suivant.
Pour chaque pronom ou expression référentielle, indique
l'entité à laquelle il fait référence.
Texte : "Jean a acheté un vélo neuf. Il l'utilise tous
les jours. Le cycliste apprécie particulièrement les
trajets le matin."
Format de sortie : JSON avec les chaînes de coréférence."""
# Envoyer au LLM via API
# Résultat attendu :
# {
# "chaîne_1": ["Jean", "Il", "Le cycliste"],
# "chaîne_2": ["un vélo neuf", "l'"]
# }
L’approche LLM est la plus flexible, surtout pour le français ou d’autres langues sous-dotées en outils spécialisés. Elle est aussi utile comme prétraitement dans un pipeline RAG : résoudre les pronoms avant d’indexer les chunks améliore la qualité du retrieval.
Défis et limites
Ambiguïté syntaxique. « Jean a dit à Pierre qu’il partirait demain. » Qui est « il » ? Jean ou Pierre ? Même avec le contexte, c’est ambigu. Les humains eux-mêmes ne sont pas toujours d’accord, ce qui limite les performances atteignables.
Connaissance du monde. « Le vase a heurté la table. Il s’est cassé. » « Il » = le vase (parce qu’on sait qu’un vase est fragile). Ce type de raisonnement nécessite des connaissances du monde que les modèles purement linguistiques ne possèdent pas toujours. Les LLM ont un avantage ici grâce à leur pré-entraînement massif.
Documents longs. La résolution de coréférence sur des documents de plusieurs pages est computationnellement coûteuse (complexité quadratique en nombre de mentions). Les approches word-level et les stratégies de fenêtre glissante atténuent ce problème.
Multilinguisme. Les langues diffèrent profondément dans leur système pronominal, leurs accords grammaticaux et leurs stratégies de référence. Le français avec ses pronoms relatifs complexes, l’arabe avec son système d’accords, le japonais avec ses pronoms souvent omis posent chacun des défis spécifiques.
Évaluation complexe. Les métriques (MUC, B-CUBED, CEAF, LEA) mesurent des aspects différents de la qualité et ne sont pas toujours corrélées. Un système peut bien scorer sur MUC mais mal sur B-CUBED. Le CoNLL F1 (moyenne de MUC + B-CUBED + CEAF) est le compromis standard.
Verdict
La résolution de coréférence est une tâche NLP fondamentale mais souvent sous-estimée. Elle est le chaînon manquant entre la détection d’entités (NER) et la compréhension textuelle profonde. Sans elle, un système de question-answering ne peut pas résoudre « Qui a fait quoi ? » quand la réponse traverse plusieurs phrases. Sans elle, un résumé automatique produit des pronoms orphelins. Sans elle, un pipeline RAG reçoit des chunks ambigus.
En pratique, la résolution de coréférence reste un défi ouvert. Les meilleurs systèmes atteignent ~80-83% de CoNLL F1 en anglais, ce qui signifie qu’environ 20% des coréférences sont encore mal résolues. Pour le français et les autres langues, les performances sont inférieures. L’approche la plus pragmatique en 2026 est d’utiliser un LLM (GPT-4, Claude) pour la résolution de coréférence en zero-shot, surtout sur des langues autres que l’anglais. Pour l’anglais en production à grande échelle, SpanBERT ou le modèle de coréférence de spaCy restent les choix les plus efficaces.
Questions fréquentes sur la coreference resolution
Quelle est la différence entre coreference resolution et anaphora resolution ?
L’anaphora resolution est un sous-ensemble de la coreference resolution. L’anaphore est une expression (typiquement un pronom comme « il », « elle ») qui réfère à une entité mentionnée précédemment (l’antécédent). La coréférence est plus large : elle inclut aussi les cataphores (référence avant l’antécédent), les descriptions définies (« l’entreprise » = « Anthropic »), et les noms propres variés (« Marie Curie » = « Curie » = « la physicienne »). En pratique, la majorité des cas de coréférence sont des anaphores, donc les deux termes sont souvent utilisés de façon interchangeable.
Pourquoi la coreference resolution est-elle importante pour le RAG ?
Dans un pipeline RAG, les documents sont découpés en chunks. Un chunk peut contenir « Elle a fondé l’entreprise en 2021 » sans que l’antécédent de « elle » soit dans le même chunk. Le retrieval peut renvoyer ce chunk pour une requête sur la fondation d’entreprises, mais sans résolution de coréférence, le LLM ne sait pas qui est « elle ». Résoudre les coréférences avant le chunking (en remplaçant « elle » par le nom de la personne) améliore significativement la qualité des embeddings et donc du retrieval.
Quels outils utiliser pour la coreference resolution en français ?
Les options sont plus limitées qu’en anglais. La meilleure approche pour le français en 2026 est d’utiliser un LLM (GPT-4, Claude, Mistral) en zero-shot avec un prompt structuré demandant d’identifier les chaînes de coréférence. Pour des traitements en masse, un modèle multilingue fine-tuné (basé sur XLM-R) peut être entraîné sur des données annotées françaises, mais les corpus disponibles sont limités. Le corpus ANCOR (français oral) et certaines ressources du projet ANR DEMOCRAT sont des points de départ pour les données d’entraînement.
Comment évaluer un système de coreference resolution ?
Trois métriques principales sont utilisées : MUC (basé sur les liens entre mentions, favorise les grandes chaînes), B-CUBED (évalue chaque mention individuellement, équilibre précision/rappel) et CEAF (alignement optimal entre chaînes prédites et gold). Le score standard est le CoNLL F1, qui est la moyenne des F1 de ces trois métriques. Les meilleurs systèmes atteignent environ 80-83% de CoNLL F1 sur OntoNotes 5.0 en anglais. La métrique LEA (Link-based Entity Aware) est une alternative plus récente qui résout certaines limitations des métriques traditionnelles.
La coreference resolution est-elle résolue ?
Non. Malgré les progrès significatifs grâce aux Transformers et aux LLM, environ 20% des coréférences sont encore mal résolues en anglais, et plus dans les autres langues. Les cas difficiles incluent les pronoms ambigus (« Jean a dit à Pierre qu’il partirait »), les coréférences nécessitant des connaissances du monde (« Le vase a heurté la table. Il s’est cassé »), et les descriptions définies complexes. Les documents longs et multi-thématiques restent aussi un défi. C’est un problème ouvert qui bénéficiera des avancées continues en compréhension du langage.