La croissance des volumes de conversation sur les médias sociaux ou les blogs a eu pour conséquence de créer un intérêt particulier pour l’automatisation de l’extraction d’opinions et de sentiments.
Avec le nombre croissant de critiques, d’opinions, d’évaluations et de commentaires en ligne, l’analyse et / ou la gestion de l’expression d’opinion a pris une grande importance auprès des entreprises qui cherchent à identifier les forces et les faiblesses de leurs produits et services, afin d’ajuster leur offre en conséquence. L’étude des tendances des opinions en ligne permet aux sociétés de mieux placer leurs produits, d’identifier les demandes des consommateurs et de mesurer leur image de marque.
Qu’est-ce que l’analyse de sentiment ?
“L’extraction d’opinion est le processus qui détermine le ton émotionnel transcrit par les mots, utilisé afin d’obtenir une interprétation des attitudes, des opinions et des émotions exprimées dans un commentaire en ligne.”
Le spectre de sentiments que les sociétés souhaitent détecter varie en fonction de leurs besoins et des limites techniques. Pour de nombreux acteurs, la classification des avis et commentaires en trois sentiments basiques – positif, négatif, neutre – est une solution suffisante. D’autres sociétés souhaitent une vision plus profonde des sentiments de leurs clients (surprise, peur, peine, bonheur, colère, déception, accord, désaccord, etc.).
L’analyse de sentiment sert essentiellement aux besoins internes à l’entreprise (analytique, marketing, ventes, etc). Un autre cas d‘application de l’analyse de sentiments est l’automatisation de modules de recommandations intégrés dans les sites web d’entreprises. Ces modules servent à prédire les préférences d’un utilisateur donné et de lui suggérer les produits les plus adéquats.
Quelles sont les difficultés d’une telle analyse ?
L’interprétation du ton d’un message est intuitif pour un lecteur humain. Considérons le message suivant :
“Il y a une grève des chauffeurs de bus aujourd’hui, Il va falloir que je prenne un taxi pour aller travailler. Super !”
Ou bien celui-ci :
“Notre boss est d’habitude tellement aimable et bienveillant… comme un ours qui n’a pas mangé depuis une semaine”
Les humains n’ont habituellement pas de difficultés pour comprendre l’ironie et le sarcasme. Pourtant, tous les humains ne s’accordent pas sur la présence d’un sentiment particulier dans un énoncé. L’interprétation d’un commentaire spécifique dépend du contexte mais aussi de l’attitude du lecteur.
“J’ai testé leur nouveau baume… pas de commentaires les amis…”
Positif, négatif or neutre ?
Le langage humain est un phénomène complexe. Formater une machine à comprendre l’ironie, le sarcasme, les variations grammaticales, l’argot, les spécificités sociales et culturelles d’un commentaire en ligne est une tâche difficile. De plus, les langues évoluent et le vocabulaire change constamment ; ceci nécessite d’être pris en considération lors d’une analyse de sentiment.
Sans un contexte explicite ou une compréhension de la culture, le mot “super” sera potentiellement catégorisé comme un sentiment positif par une machine, ce qui serait correct dans un autre contexte mais pas dans notre exemple à propos de la grève de chauffeurs de bus ci-dessus.
Une autre problématique est la structure d’un commentaire. Il n’existe pas de consignes particulières sur la manière d’exprimer son opinion en ligne. Ces commentaires libres contiennent généralement plusieurs phrases composées de nombreux éléments considérés comme du “bruit” (toute information non pertinente qui ne contient pas de sentiment d’expression et qui ni précise pas le contexte). Ce bruit nécéssite aussi d’être identifié et éliminé.
Enfin, un commentaire peut faire référence à plusieurs aspects d’un même produit ou service et exprimer des sentiments différents pour chacun d’entre eux.
“Le vol était agréable mais la nourriture à bord était dégoutante!”
Dans ces cas complexes, il est difficile de caractériser le commentaire en n’utilisant qu’une seule valeur. Un moyen de résoudre un tel exemple est de diviser le commentaire en autant de sous parties qu’il y a de sujets et d’analyser ensuite les sentiments correspondants (comme expliqué ci-dessous).
Découvrez nos autres solutions de self-care : Chatbot, Voicebot, Callbot, Ticketing, Mailbot, Formbot, FAQ Dynamique, Moteur de recherche sémantique
Les technologies de l’analyse de sentiments
Comme nous venons de voir dans les sections précédentes, l’analyse de sentiments est une tâche complexe qui nécessité d’analyser en profondeur les mots qui expriment (potentiellement) une émotion mais aussi le contexte syntaxique et pragmatique. Commençons par l’analyse des mots : il existe plusieurs techniques qui peuvent être appliquées pour déterminer le ton émotionnel derrière un message donné.
Les modèles basés sur des règles sont des jeux de règles manuellement assemblées pour reconnaître efficacement les émotions exprimées dans un formulaire de texte. De tels systèmes utilisent souvent des dictionnaires ou des listes de mots avec une connotation positive ou négative (ou différentes listes des sentiments à détecter).
Ex. (“quelque”, NEUTRE) + (“*”, NEGATIF) -> POSITIF “quelques bugs” -> good (software)
(“beaucoup de”, NEUTRE) + (“*”, NEGATIF) -> NEGATIF “beaucoup de bugs” -> bad
(“peu”, NEUTRE) + (“*”, POSITIF) -> NEGATIF “peu de points”
(“beaucoup de”, NEUTRE) + (“*”, POSITIF) -> POSITIF “beaucoup de points”
La limite de cette approche est le temps nécéssaire : en fonction de la complexité du modèle et du nombre de sentiments traités, le nombre de règles peut aisément atteindre plusieurs centaines, parfois même des milliers. Un autre inconvénient est qu’elles sont spécifiques à un langage, à un style et à un domaine. Néanmoins, un set de règles bien élaboré permet d’obtenir de bons résultats dans un domaine d’application limité.
Les modèles basés sur l’apprentissage automatique pour la détection d’émotions nécessitent des corpus annotés pour entraîner un modèle qui peut prendre en compte différentes spécificités (y compris la pragmatique). Le développement et le déploiement de tels modèles réduit le temps de travail et les modèles eux mêmes permettent d’atteindre une bonne performance. L’inconvénient de cette approche est la nécessité de construire les corpus – des textes avec des émotions annotées manuellement par un expert.
Entrainer un modèle d’apprentissage automatique revient à developper une jeu de règles générées de manière automatique, ce qui réduit drastiquement les coûts de développement. Les indices textuels et les dépendances liés à un sentiment peuvent ne pas être visibles au premier regard humain mais sont facilement détectées par une machine qui encode cette information dans un modèle.
Indiquer qu’un message donné exprime de la colère (ce qui implique l’annotation préalable d’un corpus par un expert) est suffisant pour que l’algorithme détecte les “indices de colère” automatiquement et les enregistre pour une utilisation future.
Modèle de complexité n-phases: détection de l’ironie et de l’humour + analyse de sentiments
Pour rendre le modèle automatique plus performant, il est possible d’identifier les preuves d’ironie et de transmettre cette caractéristique à l’algorithme d’apprentissage. De cette manière, l’algorithme va apprendre quand il faut traiter un message donné littéralement (sans ironie) ou au figuré en prenant en compte la présence d’ironie.
Contextes pragmatiques
Comme discuté précédemment, les mots bruts ne permettent pas toujours d’identifier correctement une émotion.
Les métadonnées telles que le statut de l’utilisateur, les commentaires précédents, les repères/indices provenant d’expression non verbales (emoji, ponctuation et espaces redondants, lettres majuscules, etc.) peuvent être utilisés pour ajuster la performance de l’apprentissage automatique et du jeu de règles du modèle. en cas d’approche basée sur l’apprentissage automatique, cette information peut être transmise à l’algorithme sous la forme de “features” et de paramètres du modèle.
Mesurer les sentiments
Un autre problème est qu’une analyse de sentiment nous confronte parfois à mesurer la présence de sentiment d’une manière non binaire (scalaire). Par exemple, il peut ne pas être suffisant d’affirmer la présence d’un sentiment ; nous pouvons vouloir évaluer le degré d’intensité de ce sentiment sur une échelle allant de 1 à 10 (ou autre graduation). Nous pouvons également vouloir évaluer le message en terme de probabilité de l’expression d’une d’émotions donnée.
L’analyse de sentiment chez Inbenta France
Nous avons développé un modèle d’apprentissage automatique en trois phases qui a pour objectif de diviser le message (si nécéssaire) en sous-parties logiques, de détecter la présence d’ironie et d’exécuter une analyse binaire ou scalaire des sentiments de chaque sous-parties. Le résultat fourni est ainsi un résumé complet des émotions du contenu du message. Le modèle est capable de traiter des contenus composés tels que :
“Le vol était agréable mais la nourriture à bord était dégoutante !”
scale (0-3)
vol – POSITIF 1
nourriture – NEGATIF 2
Envie d’optimiser votre parcours client via un chatbot ?
Visionnez le replay de notre webinaire pour découvrir 10 secrets d’une expérience conversationnelle réussie :