Un outil classique de NLP financier vous dit qu'un titre est « négatif ». Il dit rarement négatif pour qui, ni si la chose décrite a déjà eu lieu. SAFE découpe un article en segments infra-phrastiques, détecte les tickers mentionnés, puis classe chaque segment deux fois : sur un axe temporel à cinq classes (passé lointain à futur lointain) et sur les huit émotions primaires de la roue de Plutchik. Les résultats sont agrégés par entreprise et par fenêtre temporelle, et quand deux émotions ressortent au coude à coude, le système annonce la dyade nommée qu'elles forment (anticipation plus joie donne optimisme) au lieu de désigner un vainqueur.
La temporalité est volontairement hybride : SUTime de Stanford traite les dates explicites avec la précision des règles, et un BERT affiné ne prend le relais qu'en l'absence de toute expression de date. Les frontières entre classes relèvent de la configuration, pas des données d'entraînement. Ce qui compte comme « présent » peut changer sans toucher au modèle.
Aucun jeu de données n'existait pour l'une ou l'autre tâche : un second livrable est donc une CLI qui génère et augmente des données étiquetées avec GPT-4, à partir d'une spécification TOML et d'une poignée de phrases d'amorce écrites à la main. Avant tout entraînement, chaque jeu généré est validé : chaque échantillon est encodé par trois encodeurs indépendants et des tests t appariés vérifient que les classes sont réellement séparables. C'est cette passe qui a révélé le recouvrement de la peur et de la tristesse sous un encodeur, une faiblesse qu'il vaut mieux connaître avant qu'après.
La limite, énoncée honnêtement dans le mémoire lui-même : les précisions rapportées sont des chiffres de validation sur des données générées par GPT-4, sans jeu de test indépendant. Elles mesurent l'ajustement à une distribution synthétique, pas la performance sur de vraies dépêches. L'étape de NER, elle, ne couvre que les valeurs du NASDAQ.