Le projet

Analyse de sentiment par apprentissage automatique. Master Data Science & Génie Logiciel.

Objectif

Construire une chaîne complète d'analyse de sentiment sur des critiques de films, en comparant des approches classiques et un modèle Transformer.

Données

Le jeu IMDB réunit 50 000 critiques en anglais, réparties à parts égales entre avis positifs et négatifs : 25 000 pour l'entraînement, 25 000 pour le test.

Modèles comparés

  • Régression logistique — 89,2 %, rapide et interprétable
  • Forêts aléatoires — 85,9 %, robuste
  • DistilBERT — 87,5 %, comprend le contexte

Un résultat contre-intuitif

La régression logistique devance DistilBERT. La comparaison n'est pas équitable : le premier a vu 25 000 critiques, le second seulement 2 000, faute de puissance de calcul. À moyens limités, une méthode simple bien réglée reste très compétitive.

Technologies

Python Scikit-learn PyTorch HuggingFace Flask Docker

Qualité et reproductibilité

91 tests automatiques couvrent le nettoyage du texte, les modèles et l'API, et s'exécutent à chaque modification. Les tirages aléatoires sont fixés : deux entraînements identiques donnent exactement les mêmes résultats.

Le pipeline, étape par étape

  • Chargement des critiques depuis HuggingFace
  • Nettoyage du texte : balises, ponctuation, mots vides
  • Vectorisation TF-IDF ou tokenisation pour DistilBERT
  • Entraînement, puis évaluation sur des textes jamais vus
  • Mise en ligne via Flask et Docker