NLP · SemEval 2018 Task E-c · Classification multi-label

Détection multi-label d'émotions dans des tweets avec DistilBERT

Un projet expérimental qui combine modélisation, comparaison de baselines, calibration de seuils et intégration d'un modèle spécialisé dans un démonstrateur LLM local.

0,589Macro-F1 calibré
0,674Micro-F1 calibré

Tâche

11 émotions, plusieurs labels possibles

Le projet s'appuie sur le dataset anglais de SemEval 2018 Task E-c. Chaque tweet peut recevoir zéro, une ou plusieurs émotions parmi : anger, anticipation, disgust, fear, joy, love, optimism, pessimism, sadness, surprise et trust.

Les jeux de données contiennent 6 838 exemples d'entraînement, 886 exemples de développement et 3 259 exemples de test.

Approche

Progression expérimentale

1. TF-IDF + Logistic Regression

Baseline One-vs-Rest, n-grams (1,2), max_features 50k et seuil de décision à 0,5.

2. MLP sur TF-IDF

Réseau avec une couche cachée de 256 unités, optimisé pour la classification multi-label.

3. Fine-tuning DistilBERT

distilbert-base-uncased, 11 sorties sigmoïdes, entraînement sur trois epochs et perte BCEWithLogitsLoss.

4. Calibration par émotion

Recherche de seuils entre 0,1 et 0,9 sur le jeu de développement afin d'améliorer le macro-F1, notamment pour les classes rares.

Schéma du pipeline : prétraitement, baselines TF-IDF, DistilBERT puis calibration de seuils
Pipeline expérimental présenté dans le support du projet.

Évaluation

Résultats sur le jeu de développement

ApprocheMacro-F1Micro-F1
TF-IDF + Logistic Regression0,3130,467
MLP + TF-IDF≈ 0,381≈ 0,547
DistilBERT — seuil 0,50,4860,680
DistilBERT — seuils calibrés0,5890,674

La calibration améliore nettement le macro-F1, de 0,486 à 0,589, au prix d'une légère baisse du micro-F1, de 0,680 à 0,674.

Graphique comparant macro-F1 et micro-F1 de DistilBERT avec seuil fixe et seuils calibrés
Comparaison DistilBERT avant et après calibration des seuils.

Recul critique

Classes difficiles et limites

Classes les plus difficiles

trust : F1 ≈ 0,20
surprise : F1 ≈ 0,27

Leur support plus faible et leur ambiguïté les rendent particulièrement difficiles.

Limites identifiées

Classes rares, tweets courts, contexte implicite, ironie et dépendance à un dataset anglais. L'usage en français n'est donc pas natif.

Intégration

Prototype FastMCP + LLM local

Le projet inclut un démonstrateur expérimental dans lequel un LLM local via Ollama gère le dialogue et délègue la classification à un outil spécialisé predict_emotions exposé par un serveur FastMCP.

Le tool renvoie notamment les scores par émotion, les labels activés selon les seuils calibrés et un top-k des probabilités. Cette séparation permet de garder le dialogue côté LLM tout en confiant le calcul de classification au modèle spécialisé.

Architecture expérimentale : utilisateur, LLM local Ollama, serveur FastMCP, outil predict_emotions et modèle DistilBERT
Architecture du démonstrateur expérimental. Il ne s'agit pas d'un système présenté comme étant en production.