Polydesk-logotype
Polydesk.ai — Header

Timeline Extraction

La timeline extraction (extraction de chronologie) est une tâche de traitement du langage naturel qui consiste à extraire automatiquement les expressions temporelles et les événements mentionnés dans un texte, à résoudre les relations temporelles entre eux (avant, après, simultané), puis à les organiser en une chronologie structurée et ordonnée.

Timeline Extraction en bref
Catégorie
Tâche NLP / Information Extraction / Temporal IE
Standard
ISO-TimeML (TIMEX3, EVENT, TLINK, SLINK, ALINK)
Sous-tâches
Time Expression Recognition + Event Detection + Temporal Relation Extraction + Ordering
Datasets
TimeBank 1.2, TempEval-3, i2b2 2012, ChemoTimelines
Outils classiques
HeidelTime, SUTime, TARSQI, spaCy
Métriques
F1-score (expressions temporelles, events, TLINKs)

Qu’est-ce que la timeline extraction ?

Imaginez un article de presse qui raconte : « L’entreprise a été fondée en 2018. Après une levée de série A en mars 2021, elle a acquis son concurrent en janvier 2022, avant de déposer le bilan en septembre 2023. » Un humain construit instinctivement une chronologie mentale. La timeline extraction automatise ce processus : elle identifie chaque événement, chaque date, les relie temporellement, puis produit une séquence ordonnée exploitable par une machine ou présentable visuellement.

La timeline extraction se situe à l’intersection de deux sous-domaines du NLP : l’extraction d’événements (identifier ce qui s’est passé) et l’extraction d’information temporelle (identifier quand). C’est la combinaison de ces deux capacités, enrichie par le raisonnement sur les relations temporelles, qui permet de construire des chronologies cohérentes.

Les quatre sous-tâches fondamentales

Construire une timeline à partir de texte brut implique quatre étapes distinctes, chacune avec ses propres défis :

1. Reconnaissance et normalisation des expressions temporelles

La première étape consiste à identifier les mentions de temps dans le texte : dates absolues (« le 15 mars 2024 »), dates relatives (« hier », « la semaine prochaine », « il y a deux mois »), durées (« pendant trois jours »), fréquences (« tous les mardis ») et expressions vagues (« récemment », « dans un futur proche »).

Une fois identifiées, ces expressions doivent être normalisées vers un format standard. Le standard de référence est TIMEX3, défini dans la spécification ISO-TimeML. Chaque expression temporelle reçoit un type (DATE, TIME, DURATION, SET) et une valeur normalisée conforme à ISO 8601. Par exemple, « la semaine dernière » dans un article publié le 21 mars 2026 serait normalisé en 2026-W12.

La normalisation est particulièrement délicate pour les expressions relatives et déictiques. « Demain » n’a de sens que par rapport à une date de référence (souvent la date de création du document). « L’été dernier » dépend à la fois de la date de référence et des conventions culturelles (l’été n’a pas les mêmes bornes calendaires partout).

2. Détection des événements temporels

En extraction temporelle, un « événement » a une définition plus large que dans l’event extraction classique. Il englobe toute situation mentionnée dans le texte qui peut être ancrée dans le temps : actions (« a signé », « a voté »), états (« était malade », « occupait le poste de »), processus (« la construction avançait ») ou même propriétés transitoires (« le cours était élevé »).

Dans le schéma TimeML, chaque événement est annoté avec son type (OCCURRENCE, STATE, REPORTING, PERCEPTION, ASPECTUAL, I_ACTION, I_STATE), sa classe grammaticale, son temps verbal et sa polarité (positive ou négative). Ces attributs sont essentiels pour le raisonnement temporel qui suit.

C’est le cœur de la tâche et sa partie la plus difficile. Une fois les événements et les expressions temporelles identifiés, il faut déterminer comment ils se situent les uns par rapport aux autres dans le temps. TimeML définit les types de relations temporelles suivants :

Relation Signification Exemple
BEFORE A se produit avant B « Il a signé, puis il est parti »
AFTER A se produit après B « Après l’annonce, le cours a chuté »
SIMULTANEOUS A et B en même temps « Pendant la réunion, il a reçu un appel »
INCLUDES A contient B temporellement « En 2023, l’entreprise a fait faillite »
IS_INCLUDED A est contenu dans B « La faillite a eu lieu en 2023 »
DURING A se déroule pendant B « Il travaillait pendant la nuit »
BEGINS / ENDS A commence / termine B « Le contrat a débuté le 1er janvier »
OVERLAP A et B se chevauchent « La grève a commencé avant la fin des négociations »

Trois catégories de TLINKs existent : Event-Time (un événement ancré à une date), Event-Event (l’ordre entre deux événements) et Time-Time (relation entre deux expressions temporelles). En pratique, l’accord inter-annotateurs sur les TLINKs est faible (autour de 0.55 en kappa), ce qui reflète l’ambiguïté intrinsèque de la tâche.

4. Construction de la timeline

L’étape finale transforme l’ensemble des TLINKs en une chronologie linéaire (ou partiellement ordonnée). Cela implique un raisonnement par inférence : si A est avant B et B est avant C, alors A est avant C (transitivité). Le graphe des relations temporelles doit être rendu cohérent (pas de cycles) et aussi complet que possible. Des techniques d’Integer Linear Programming (ILP) et de propagation de contraintes sont utilisées pour résoudre les conflits et inférer les relations manquantes.

Le standard ISO-TimeML TimeML est le standard de facto pour l’annotation temporelle en NLP, développé initialement lors des workshops TERQAS en 2002 sous la direction de James Pustejovsky (Brandeis University). Il définit cinq types de balises principales : TIMEX3 (expressions temporelles), EVENT (événements), SIGNAL (connecteurs temporels comme « après », « pendant »), TLINK (relations temporelles), SLINK (relations de subordination) et ALINK (relations aspectuelles). TimeML a été adopté comme standard ISO (ISO 24617-1) en 2009.

Datasets et benchmarks de référence

L’évaluation des systèmes de timeline extraction repose sur plusieurs corpus annotés :

TimeBank 1.2 : le corpus fondateur, créé comme illustration du standard TimeML. Il contient 183 articles d’actualité en anglais (environ 61 000 tokens) annotés pour les événements, les expressions temporelles et les relations temporelles. Distribué par le Linguistic Data Consortium (LDC), c’est le benchmark le plus cité en recherche. Ses limitations principales sont sa taille modeste et le faible accord inter-annotateurs sur les TLINKs.

TempEval (1, 2, 3) : une série de shared tasks organisées dans le cadre de SemEval. TempEval-3 (2013) est la plus utilisée comme benchmark. Elle évalue la détection des expressions temporelles, la détection des événements et l’extraction des relations temporelles. Le corpus est plus varié que TimeBank mais nettement plus petit.

i2b2 2012 Temporal Relations : un corpus clinique de 310 résumés de sortie d’hôpital, annotés pour les événements médicaux, les expressions temporelles et les TLINKs spécifiques au domaine clinique. C’est la référence pour la timeline extraction en contexte médical.

ChemoTimelines (2024-2025) : une shared task récente de Clinical NLP, centrée sur l’extraction de chronologies de traitements de chimiothérapie à partir de dossiers médicaux. L’édition 2025 a spécifiquement évalué la capacité des LLMs à construire des timelines patient complètes, avec des résultats prometteurs mais encore en dessous des systèmes fine-tunés spécialisés.

Dataset Domaine Taille Langues Tâches évaluées
TimeBank 1.2 Actualités 183 docs, ~61K tokens EN TIMEX3, EVENT, TLINK
TempEval-3 Actualités ~100 docs EN, ES TIMEX3, EVENT, TLINK
i2b2 2012 Clinique 310 résumés EN Events médicaux, TIMEX3, TLINK
ChemoTimelines Oncologie ~350 patients EN Timelines de traitements
THYME Clinique ~1 250 docs EN Temporal IE clinique

Outils et systèmes de référence

Outils rule-based et hybrides

HeidelTime Open Source : un tagger temporel à base de règles développé à l’université de Heidelberg. C’est l’outil le plus robuste pour la reconnaissance et la normalisation d’expressions temporelles. Ses atouts principaux : support multilingue (plus de 200 langues via des patterns localisés), adaptation aux différents domaines (actualités, récits, documents scientifiques) avec des stratégies de normalisation spécifiques. HeidelTime a remporté TempEval-2 et reste compétitif sur les benchmarks récents. Il est intégré dans GATE et peut être utilisé via un wrapper UIMA.

SUTime Open Source : le tagger temporel de Stanford, intégré dans le pipeline Stanford CoreNLP. C’est un système déterministe à base de règles (expressions régulières et grammaires formelles) conçu pour être extensible. SUTime excelle en précision sur les expressions temporelles anglaises, et sa valeur normalisée TIMEX3 est particulièrement fiable. Il est utilisable directement en Python via stanza ou en Java.

TARSQI Toolkit Open Source : un pipeline complet pour l’annotation temporelle conforme à TimeML. TARSQI couvre l’ensemble du processus : détection d’événements (Evita), tagging temporel (GUTime), et extraction de relations (Slinket, S2T, Blinker). C’est le système le plus complet pour une annotation TimeML de bout en bout, mais il est moins activement maintenu que HeidelTime ou SUTime.

HeidelTime vs. SUTime : lequel choisir ? Pour des documents en anglais dans le domaine des actualités, les deux performent de manière comparable. HeidelTime l’emporte nettement pour le multilingue et les documents narratifs (Wikipedia, textes littéraires), grâce à ses stratégies de normalisation spécifiques par domaine. SUTime est plus facile à intégrer si vous utilisez déjà Stanford CoreNLP. Pour le français, HeidelTime est le meilleur choix natif.

Approches LLM

Les grands modèles de langage transforment la timeline extraction en rendant possible l’extraction zero-shot de chronologies complètes. Deux approches dominent :

Extraction directe par prompt : on soumet un texte au LLM avec un prompt demandant d’extraire une chronologie structurée. Les modèles comme GPT-5.4 et Claude Opus 4.6 produisent des timelines de qualité remarquable en zero-shot, surtout quand le texte contient des dates explicites. Des travaux récents sur les case reports PubMed montrent que les LLMs atteignent un rappel d’événements de 80% et une concordance temporelle de 95% sur les événements identifiés.

LLMs fine-tunés pour les relations temporelles : la shared task ChemoTimelines 2025 a vu plusieurs équipes fine-tuner des LLMs pour l’extraction de timelines de chimiothérapie. Les résultats montrent que les LLMs fine-tunés surpassent les approches classiques, mais que la combinaison de modèles spécialisés (encoders) avec des LLMs donne les meilleurs résultats globaux.

Exemple de prompt pour construire une timeline avec un LLM :

Analysez le texte suivant et extrayez une chronologie
structurée de tous les événements.

Pour chaque événement, indiquez :
- "date": date normalisée ISO 8601 (YYYY-MM-DD si possible,
  sinon YYYY-MM ou YYYY)
- "event": description concise de l'événement
- "type": OCCURRENCE | STATE | REPORTING
- "confidence": HIGH | MEDIUM | LOW

Si la date exacte n'est pas mentionnée, inférez-la à partir
du contexte. Ordonnez les événements chronologiquement.

Texte : [votre texte ici]

Répondez en JSON : {"timeline": [...]}
Limitations des LLMs pour la timeline extraction Les LLMs excellent quand les dates sont explicites, mais peinent avec les relations temporelles implicites et le raisonnement par inférence (transitivité, résolution de conflits). Sur les contextes longs, le phénomène de lost in the middle dégrade la qualité de l’extraction pour les événements situés au milieu du document. Pour des timelines précises sur des documents longs, un pipeline hybride (HeidelTime pour les TIMEX3 + LLM pour les événements + ILP pour la cohérence) reste supérieur.

Évolution des approches

Ère rule-based (2000-2012)

Les premiers systèmes de timeline extraction étaient entièrement à base de règles. GUTime (Georgetown University), ancêtre de TARSQI, utilisait des expressions régulières Perl pour détecter les expressions temporelles. HeidelTime (2010) et SUTime (2012) ont raffiné cette approche avec des systèmes de règles plus sophistiqués et des stratégies de normalisation adaptées aux domaines. Ces outils restent les plus fiables pour la détection d’expressions temporelles pures.

Ère machine learning (2012-2019)

Le shared task i2b2 2012 a catalysé la recherche sur l’extraction de relations temporelles en milieu clinique. Les systèmes gagnants combinaient des classifieurs supervisés (SVM, CRF, MaxEnt) avec des features linguistiques (dépendances syntaxiques, POS tags, features de domaine) et des outils rule-based existants (HeidelTime, SUTime) comme sources de features. L’ajout de raisonnement par contraintes (ILP) pour assurer la cohérence globale du graphe temporel a marqué une avancée significative.

Ère Transformers (2019-2023)

L’arrivée de BERT et de ses variantes a amélioré significativement l’extraction de relations temporelles grâce à des représentations contextuelles plus riches. Des modèles comme ceux développés sur le corpus THYME ont montré des gains substantiels en F1-score pour les TLINKs cliniques. La review systématique publiée en avril 2025 sur les approches Transformer pour l’extraction d’information temporelle souligne toutefois que la recherche reste limitée sur la normalisation des expressions temporelles, où les systèmes rule-based conservent un avantage.

Ère LLM (2023-aujourd’hui)

Les LLMs ont ouvert la voie à des approches end-to-end pour la timeline extraction. La publication d’un framework LLM pour l’extraction de timelines relatives à partir de case reports PubMed (2025) montre que les modèles comme O1-preview (OpenAI) atteignent un rappel d’événements de 80% et une concordance temporelle élevée (0.95) sur les événements identifiés. En parallèle, la shared task ChemoTimelines 2025 a confirmé que les LLMs fine-tunés sont compétitifs avec les systèmes spécialisés pour la construction de timelines cliniques.

Cas d’usage concrets

Médical et parcours patient

C’est le domaine où la timeline extraction a le plus d’impact immédiat. Reconstruire automatiquement la chronologie d’un patient, ses diagnostics, traitements, hospitalisations et résultats à partir des notes cliniques non structurées, permet d’alimenter les systèmes d’aide à la décision clinique et de détecter des patterns temporels (délai entre diagnostic et traitement, efficacité des séquences thérapeutiques). Le corpus i2b2 2012 et la shared task ChemoTimelines illustrent l’importance de ce cas d’usage. Les systèmes de support à la décision clinique intègrent de plus en plus la timeline extraction comme brique fondamentale.

Finance et veille stratégique

Construire des chronologies automatiques d’événements corporate (levées de fonds, acquisitions, changements de direction, annonces réglementaires) à partir de flux d’actualités est essentiel pour la veille stratégique et le trading algorithmique. La timeline extraction permet de contextualiser un événement dans l’histoire de l’entreprise et de repérer des patterns prédictifs (séquence levée → acquisition → IPO).

Journalisme et fact-checking

Les rédactions utilisent la timeline extraction pour construire automatiquement des chronologies d’événements complexes (conflits, crises sanitaires, affaires judiciaires). Comparer les timelines extraites de différentes sources aide à identifier les incohérences et à vérifier les faits. Le lien avec la détection de fake news est direct : une information qui place un événement à une date contredite par d’autres sources fiables est un signal d’alerte.

Renseignement et analyse de crises

Les agences de renseignement construisent des timelines à partir de sources ouvertes (OSINT) pour reconstituer des séquences d’événements : mouvements de troupes, transactions financières suspectes, communications. La timeline extraction automatique permet de traiter des volumes d’information qu’aucun analyste ne pourrait lire manuellement.

Juridique

Reconstituer la chronologie des faits dans un dossier juridique (contrats, correspondances, décisions) est un cas d’usage naturel. Les outils de Legal AI intègrent la timeline extraction pour aider les avocats à visualiser la séquence des événements et à identifier les points de rupture temporelle (délais dépassés, obligations non respectées).

Défis techniques majeurs

Expressions temporelles vagues et implicites : « récemment », « dans un futur proche », « à cette époque » sont fréquentes et difficiles à normaliser avec précision. Les LLMs gèrent mieux ces cas que les systèmes rule-based, mais sans garantie de cohérence.

Raisonnement temporel complexe : inférer la transitivité (A avant B, B avant C → A avant C), résoudre les contradictions, et gérer l’incertitude temporelle nécessitent un raisonnement logique que ni les LLMs ni les modèles statistiques ne maîtrisent parfaitement. L’intégration de solveurs de contraintes (ILP) reste nécessaire pour les applications critiques.

Multilingue : la grande majorité des ressources (TimeBank, TempEval, i2b2) sont en anglais. Pour le français, HeidelTime offre un support de base, mais il n’existe pas de corpus temporel annoté de référence comparable à TimeBank. Les LLMs multilingues comblent partiellement cette lacune.

Documents longs et multi-sources : construire une timeline cohérente à partir de plusieurs documents (fusion de timelines, résolution de coréférence événementielle, gestion des contradictions entre sources) reste un problème ouvert. Les travaux récents en extraction multi-documents commencent à adresser cette question.

Granularité temporelle : certains événements sont datés au jour près, d’autres à l’année, d’autres sont complètement vagues. Représenter et exploiter cette granularité variable dans une timeline unique est un défi d’interface autant que d’algorithme.

Implémenter une timeline extraction

Pipeline rapide avec LLM

Pour un prototype ou un MVP, l’approche la plus efficace est de soumettre directement le texte à un LLM avec un prompt structuré demandant une timeline en JSON. Coût approximatif : quelques centimes par document avec Claude Sonnet 4.6 ou Gemini 2.5 Flash.

Pipeline production hybride

Pour une application en production avec des exigences de précision :

Étape 1 : TIMEX3 avec HeidelTime : détection et normalisation robustes des expressions temporelles. HeidelTime supporte le français nativement et s’intègre dans n’importe quel pipeline Java ou Python (via wrapper).

Étape 2 : Event detection avec un modèle fine-tuné : un modèle BERT ou un LLM fine-tuné sur vos données d’événements pour identifier les triggers pertinents pour votre domaine.

Étape 3 : TLINKs avec un classifieur ou LLM : pour chaque paire (event, event) et (event, timex), un classifieur prédit la relation temporelle. Un LLM en few-shot peut remplacer le classifieur si vos données annotées sont insuffisantes.

Étape 4 : Raisonnement par contraintes : un solveur ILP ou un algorithme de propagation de contraintes assure la cohérence globale du graphe temporel et infère les relations manquantes par transitivité.

Étape 5 : Sérialisation de la timeline : transformation du graphe cohérent en une séquence ordonnée d’événements datés, exportable en JSON, CSV ou format visuel.

Astuce pour le français HeidelTime est le meilleur outil disponible pour les expressions temporelles françaises. Combinez-le avec un LLM multilingue (Claude, GPT-5.4) pour l’extraction d’événements et les TLINKs. Le prompt du LLM devrait explicitement préciser la date de référence du document pour que les expressions relatives (« hier », « le mois dernier ») soient correctement ancrées.

Timeline extraction vs. event extraction

La confusion entre ces deux tâches est fréquente. L’event extraction identifie les événements et leurs arguments (qui, quoi, où) mais ne les ordonne pas nécessairement dans le temps. La timeline extraction se concentre spécifiquement sur la dimension temporelle : elle peut utiliser l’event extraction comme brique d’entrée, mais ajoute la normalisation temporelle, le raisonnement relationnel et la construction d’une chronologie ordonnée.

En pratique, les deux tâches sont souvent combinées. Un système complet d’extraction d’information identifie les événements (event extraction), les ancre dans le temps (timeline extraction), et les relie causalement (causal AI) pour construire un graphe de connaissances temporel et causal.

Verdict

La timeline extraction est une tâche mature avec des standards bien établis (TimeML) et des outils fiables pour la détection d’expressions temporelles (HeidelTime, SUTime). Le maillon faible reste l’extraction de relations temporelles, où l’accord inter-annotateurs est faible et les performances des systèmes automatiques plafonnent autour de 60-65% en F1. Les LLMs changent la donne en permettant l’extraction zero-shot de chronologies complètes, mais le raisonnement temporel complexe (transitivité, résolution de conflits) nécessite encore des composants logiques dédiés.

Pour un projet concret, commencez par un LLM en zero-shot pour évaluer la faisabilité. Si la précision est insuffisante, ajoutez HeidelTime pour les expressions temporelles et un solveur de contraintes pour la cohérence. Le domaine médical est celui où la timeline extraction a le plus progressé et le plus d’applications immédiates.


Questions fréquentes sur la timeline extraction

Qu’est-ce que TimeML et pourquoi est-ce important ?

TimeML (Time Markup Language) est le standard international (ISO 24617-1) pour l’annotation d’information temporelle dans les textes. Il définit un vocabulaire structuré pour marquer les expressions temporelles (TIMEX3), les événements (EVENT), les signaux temporels (SIGNAL) et les relations entre eux (TLINK, SLINK, ALINK). TimeML est important parce qu’il fournit un cadre d’annotation cohérent qui permet de comparer les systèmes entre eux et de créer des corpus de référence réutilisables. Tous les benchmarks majeurs (TimeBank, TempEval, i2b2) sont basés sur TimeML ou s’en inspirent.

Peut-on faire de la timeline extraction en français ?

Oui, avec des limitations. HeidelTime supporte le français nativement pour la détection et la normalisation des expressions temporelles, avec des patterns localisés pour les formats de dates français et les expressions temporelles idiomatiques. Pour l’extraction d’événements et les relations temporelles, les LLMs multilingues (GPT-5.4, Claude Opus 4.6, Gemini) fonctionnent correctement en français. Le principal manque est l’absence d’un corpus français annoté conforme à TimeML pour l’entraînement et l’évaluation de modèles spécialisés.

Quels sont les meilleurs LLMs pour la timeline extraction ?

Pour l’extraction de chronologies en zero-shot, GPT-5.4 et Claude Opus 4.6 sont les plus performants. Des travaux sur les case reports PubMed montrent que le modèle O1-preview (OpenAI) atteint un rappel d’événements de 80% et une concordance temporelle de 95%. Pour un bon rapport qualité/prix, Claude Sonnet 4.6 (3 $/M tokens input, 15 $/M output) ou Gemini 2.5 Flash offrent des performances solides à moindre coût. Pour des applications médicales, le fine-tuning d’un LLM sur des données cliniques annotées (comme celles de ChemoTimelines) reste recommandé.

Quelle est la différence entre TIMEX3 et un simple NER de dates ?

La NER de dates identifie et extrait les mentions de dates dans le texte (« le 15 mars », « 2024 », « hier »). TIMEX3 va beaucoup plus loin : il classifie l’expression temporelle par type (DATE, TIME, DURATION, SET/fréquence), normalise sa valeur au format ISO 8601 (ce qui implique de résoudre les références déictiques comme « hier » ou « le mois dernier » par rapport à une date de référence), et annote des attributs supplémentaires comme le mode (APPROX, MORE_THAN, LESS_THAN). Cette normalisation est essentielle pour construire une timeline cohérente.

Comment gérer les incohérences temporelles dans un texte ?

Les textes contiennent souvent des incohérences temporelles, soit par erreur de l’auteur, soit par ambiguïté linguistique. La stratégie standard consiste à modéliser les relations temporelles comme un graphe de contraintes, puis à utiliser un solveur (ILP, propagation de contraintes) pour identifier et résoudre les conflits. Les conflits irréductibles sont signalés avec un score de confiance faible. Dans un pipeline LLM, vous pouvez ajouter une étape de vérification post-extraction qui soumet les incohérences détectées au modèle pour résolution, ou les escalade vers un opérateur humain.

Polydesk.ai — Footer