Auteur·rice

Karl Sondeji

Date de publication

11 août 2026

Code source Rapport pdf

Projet réalisé dans le cadre du cours Advanced Practical Machine Learning — MSc Data Engineering & Cloud Computing, aivancity School of AI & Data.

Contexte

Les entreprises reçoivent chaque jour un volume important d’avis clients qu’il est difficile d’analyser manuellement. Une simple note globale ne permet pas d’identifier précisément les points forts et les axes d’amélioration d’un produit ou d’un service. Un même avis peut être très positif sur le prix et très négatif sur la sécurité, sans que la note moyenne ne le révèle.

Ce projet a pour objectif de développer un système de traitement automatique du langage capable d’extraire, pour chaque avis, les aspects concrets évoqués (qualité du produit, prix, sécurité, facilité d’usage, délai de livraison,etc.) et le sentiment associé (positif, négatif) à chacun d’eux. Cette tâche est connue sous le nom d’Aspect-Based Sentiment Analysis, ou ABSA.

Image illustrative de la notion ABSA

L’idée derrière ce projet est de répondre à un besoin métier, en permettant aux entreprises de disposer d’indicateurs exploitables pour orienter leurs décisions et améliorer l’expérience client. Le domaine retenu pour notre projet est celui des produits pour bébés, à partir du corpus public Amazon Reviews 2023, catégorie Baby Products. Ce choix correspond à un cas d’usage directement transposable à des enseignes de puériculture, des plateformes e-commerce ou des services qualité, qui auraient besoin de comprendre finement les retours clients.

Demo Streamlit

Capture animée de l'application Streamlit d'analyse d'avis clients

Démonstration de l’application Streamlit ABSA

Approches comparées

Pour réaliser notre projet, deux types de modèles ont été retenus. - Le premier modèle est un modèle Bidirectional Long Short-Term Memory (Bi-LSTM), qui est un réseau de neurones récurrents qui traite les données séquentielles dans les deux sens, du début à la fin et de la fin au début. Ce mode de fonctionnement va permettre au modèle de mieux comprendre le contexte global d’une phrase.

  • Le deuxième modèle est le modèle : Bidirectional Encoder Representations from Transformers (BERT). Ce modèle est un modèle d’apprentissage profond (Deep Learning), développé par Google en 2018 et spécialisé dans le traitement du langage naturel. Lui aussi analyse e contexte d’une phrse de manière bidirectionnelle en regardant simultanément le mot à gauche et à droite d’un terme. Cependant son architecture est différente, il utilise notamment des transformer pour représenter les phrases sous une forme vectorielle enrichie pour comprendre le sens précis de chaque mot en analysant tout le contexte en même temps. Ou encore des mécanismes d’auto-attention pour évaluer le lien et le poids de chaque mot par rapport à tous les autres dans la même séquence. Il va aussi apprendre à comprendre la cohérence entre deux phrases consécutives.

La différence structurelle entre nos deux modèles est importante. Le Bi-LSTM apprend une représentation du langage depuis zéro sur notre corpus (nos données). BERT part d’une représentation déjà acquise sur un très large corpus, puis s’adapte à notre tâche. C’est cette différence d’initialisation, autant que l’architecture, qui explique une grande partie de l’écart de performance qui seront observés ultérieurement.

Données et méthodologie de labellisation

Le jeu de données utilisé est constitué de véritables avis de clients issus d’Amazon Reviews 2023. Chaque avis contient notamment le texte du commentaire, la note attribuée au produit et l’information indiquant si l’achat a été vérifié. Ces avis ne comportant pas directement d’indication sur les thèmes abordés ni sur le sentiment exprimé, une étape d’annotation automatique a été mise en place afin de préparer les données pour l’entraînement des modèles.

Anotation automatique

Dans un premier temps, chaque avis est nettoyé puis découpé en phrases afin de pouvoir analyser séparément les différentes idées exprimées par le client.

Chaque phrase est ensuite analysée selon deux dimensions.

  • Identification des thèmes abordés. Un modèle de langage préexistant analyse la phrase afin d’identifier les thèmes auxquels elle fait référence. Dix catégories ont été définies : qualité du produit, prix, design, taille, confort, durabilité, sécurité, facilité d’utilisation, livraison et service client. Des règles complémentaires basées sur certains mots et expressions permettent également de détecter des thèmes évidents qui pourraient ne pas avoir été identifiés par le modèle.

  • Identification du sentiment. Un second modèle analyse la phrase afin de déterminer si l’opinion exprimée est positive ou négative. Un score de confiance est également associé à cette prédiction.

L’ensemble de ce processus est automatisé et réalisé par lots afin de pouvoir traiter un volume important d’avis. Les résultats sont enregistrés progressivement, avec un mécanisme permettant de reprendre le traitement à l’endroit où il s’est arrêté en cas d’interruption. Cette fonctionnalité est particulièrement utile compte tenu du volume de données et du temps de calcul nécessaire.

Préparation et répartition des données

Les données ont été réparties en trois ensembles : entraînement (80 %), validation (10 %) et test (10 %). Cette répartition est réalisée au niveau de l’avis complet et non phrase par phrase. Ainsi, lorsque plusieurs phrases proviennent d’un même avis, elles restent toujours dans le même ensemble. Cela permet d’éviter qu’une partie d’un avis soit utilisée pour entraîner le modèle tandis qu’une autre partie servirait à l’évaluer, ce qui pourrait donner une image artificiellement trop favorable de ses performances.

Pour le modèle Bi-LSTM, un vocabulaire est ensuite construit uniquement à partir des données d’entraînement. Il contient les mots suffisamment fréquents, avec un maximum de 20 000 mots. Le modèle BERT, quant à lui, utilise directement son propre système de découpage des mots et ne nécessite donc pas la création de ce vocabulaire.

Enfin, le jeu de test contient 5 569 exemples, chacun correspondant à une paire « phrase–aspect ». Parmi eux, 3 580 sont associés à un sentiment positif et 1 989 à un sentiment négatif. Les deux catégories ne sont donc pas représentées dans les mêmes proportions, ce qui constitue un déséquilibre à prendre en compte lors de l’interprétation des résultats.

Entraînement des modèles

Baseline Bi-LSTM

Le modèle de référence analyse une phrase en tenant compte à la fois des mots qui la composent et du sujet ou aspect auquel elle se rapporte.

  • Représentation des mots : chaque mot est transformé en un vecteur de 128 valeurs, appris automatiquement pendant l’entraînement. Le vocabulaire est limité à 20 000 mots.
  • Représentation de l’aspect : chacun des 10 aspects possibles est associé à une représentation de 32 valeurs.
  • Analyse de la phrase : un réseau de type LSTM lit la phrase dans les deux sens, de gauche à droite et de droite à gauche. Cela permet de prendre en compte le contexte global de la phrase et d’en produire une représentation synthétique de 256 valeurs (avec 128 unités cachées par direction).
  • Prise en compte de l’aspect : la représentation de la phrase est ensuite combinée avec celle de l’aspect étudié.
  • Prédiction finale : le modèle utilise deux étapes de calcul pour déterminer à laquelle des deux catégories de sortie appartient le résultat.

À l’exception de la représentation des mots, dont la taille dépend du vocabulaire, le modèle comporte environ 302 000 paramètres à apprendre.

L’entraînement est réalisé par groupes de 32 exemples, pendant 30 époques maximum. Le modèle peut toutefois s’arrêter plus tôt si ses performances sur les données de validation n’améliorent plus pendant cinq époques. L’apprentissage utilise l’algorithme Adam, avec un taux d’apprentissage de 0,001.

BERT

Le second modèle utilise BERT, un système de langage déjà pré-entraîné sur d’énormes quantités de texte, que nous avons ensuite spécialisé pour notre tâche. Il fonctionne en 12 étapes de traitement successives, chacune analysant les mots d’une phrase les uns par rapport aux autres pour en comprendre le sens selon leur contexte. Le modèle compte environ 110 millions de paramètres internes, ces paramètres s’ajustent automatiquement, de manière simultanée pendant l’entraînement.

Pour indiquer au modèle quel aspect du produit on veut évaluer (le prix, la sécurité, la qualité…), on lui présente en même temps l’aspect et la phrase de l’avis, l’un à la suite de l’autre. Cette façon de faire permet au modèle de directement relier chaque mot de la phrase à l’aspect visé dès le début de son analyse, une différence importante avec notre premier modèle (le Bi-LSTM), qui traitait la phrase et l’aspect séparément avant de les rapprocher seulement à la toute fin.

L’entraînement s’est fait par petits groupes de 16 avis à la fois, sur un maximum de 4 passages complets sur les données, avec un ajustement progressif et prudent des réglages internes pour éviter de perturber les connaissances déjà acquises par le modèle. Un mécanisme d’arrêt automatique stoppait l’entraînement si les résultats cessaient de s’améliorer, afin d’éviter que le modèle ne se sur-spécialise sur les données d’entraînement au détriment de sa capacité à généraliser.

Résultats

Les deux modèles ont été évalués sur le même ensemble de test, 5569 exemples, avec le meilleur point de sauvegarde de chacun sélectionné selon le F1 macro de validation. Le F1 macro est retenu comme métrique de référence plutôt que l’accuracy seule, car il donne un poids égal aux deux classes malgré leur déséquilibre, 64 pour cent d’exemples positifs contre 36 pour cent de négatifs.

BERT surpasse la baseline sur toutes les métriques, avec un gain particulièrement marqué sur la classe négative, minoritaire, dont le F1 passe de 0,75 à 0,90. Ce résultat est cohérent avec l’apport attendu du pré entraînement à grande échelle qui arrive mieux à généraliser sur une classe sous représentée.

Classe Precision Bi-LSTM Recall Bi-LSTM F1 Bi-LSTM Precision BERT Recall BERT F1 BERT
negative (n=1989) 0,74 0,76 0,75 0,92 0,88 0,90
positive (n=3580) 0,86 0,85 0,86 0,94 0,96 0,95

Conclusion

Ce projet démontre la faisabilité d’un système d’analyse d’avis clients par aspect entièrement construit à partir de données réelles non annotées, en combinant un pipeline de pseudo labellisation par weak supervision avec deux architectures PyTorch entraînées et comparées de bout en bout, un Bi-LSTM de référence et un BERT fine tuné.

Le gain de performance de BERT, 11,9 points de F1 macro, confirme l’intérêt du transfer learning pour cette tâche, en particulier sur la classe négative minoritaire.

L’analyse d’erreurs qualitative, au delà de confirmer ce résultat quantitatif, a mis en lumière le rôle du contexte de la phrase dans la pseudo labellisation, une piste d’amélioration intéressante pour une itération future du projet, en complément de l’ajustement des architectures. La démonstration Streamlit permet de rendre ce système accessible à un utilisateur final, enseigne de puériculture, plateforme e-commerce ou service qualité, qui peut soumettre un avis ou un corpus d’avis et visualiser immédiatement les aspects détectés et leur polarité.

Références

Devlin, J., Chang, M. W., Lee, K., Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.

Pontiki, M., Galanis, D., Papageorgiou, H., Androutsopoulos, I., Manandhar, S., Mohammad, A. S., et al. (2016). SemEval-2016 Task 5: Aspect Based Sentiment Analysis.

Hochreiter, S., Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735-1780.

Lewis, M., et al. BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension (modèle bart-large-mnli, zero shot NLI).

Rapport de synthèse

Ouvrir le PDF dans un nouvel onglet si l'aperçu ne s'affiche pas dans votre navigateur.

Retour au sommet