2. Adetem / Aproged 15
III BIG DATA ET SENTIMENT ANALYSIS :
QUELS USAGES POUR QUELLES
PROBLEMATIQUES ?
BIG DATA ET SENTIMENT ANALYSIS 17
VEUT-ON UNE ANALYSE GLOBALE OU DETAILLEE DU
MESSAGE ? 19
LE CHAMP DE L'ETUDE EST-IL MONO-SOURCE OU MULTI-
SOURCES ? 19
LE CHAMP DE L'ETUDE COUVRE T-IL DES ENTITES HOMOGENES
OU NON ? 21
VISE-T-ON UN SYSTEME ENTIEREMENT AUTOMATIQUE OU
SEULEMENT UNE ASSISTANCE ? 21
QUELLES TECHNOLOGIES POUR QUELS CAS D'USAGE ? 22
LES CAS FAVORABLES, ET CEUX QUI SONT PROBLEMATIQUES 22
3. Adetem / Aproged 16
Big data et sentiment analysis
Bernard Normier, consultant en text-mining et sentiment analysis
Comme dans les systèmes d'information classiques, il y a deux sortes de big data, selon
que les données sont structurées ou non. Les premières sont partout: toutes sortes de
données numériques venant de capteurs de plus en plus nombreux et divers, ou de méta-
données structurées associées des documents textuels, audio ou vidéo. Le traitement de
ces données, s'il pose de sérieux problèmes techniques du fait de leur volume, à la fois en
stock et en flux, et de leur hétérogénéité, ce pose cependant pas de problème conceptuel
majeur au niveau de leur compréhension unitaire. Chaque donnée, prise individuellement,
est claire et parfaitement compréhensible. C'est la possibilité d'une interprétation de la
masse, de son évolution dans le temps, des tendances qu'on peut en dégager, qui
constitue l'apport majeur des technologies du big data.
Il en va autrement pour les données non structurées. La problématique est alors
sensiblement plus délicate puisque se pose déjà la question de la compréhension de
chaque donnée individuelle, avant même d'envisager une interprétation de la masse.
L'interprétation de l'information textuelle, qu'elle le soit le soit "nativement" ou qu'elle
résulte d'une transformation de parole en texte ("speech to text") est déjà un enjeu majeur.
On ne parlera pas ici de l'interprétation de données non structurées complexes comme le
repérage d'émotions dans des photos de visages, ou de la communication gestuelle dans
une vidéo, ou encore de la prosodie dans un enregistrement audio, sujets sur lesquels des
progrès technologiques constants sont réalisés et commencent à donner lieu à des
applications opérationnelles.
Restons donc sur l'interprétation des textes. Ils représentent la plus grande partie du "big
data": tweets, blogs, réseaux sociaux, presse, etc... Leur recueil est devenu un métier en
4. Adetem / Aproged 17
soi: une société comme GNIP, par exemple, annonce récolter 3 milliards de messages par
jour... en constante augmentation.
La difficulté est donc d'abord d'identifier, parmi cette masse considérable de messages
dont la grande majorité n'a aucun intérêt, quels sont ceux qui peuvent être intéressants
pour telle ou telle étude ou entreprise, et ensuite d'en interpréter le contenu pour en tirer
des analyses utiles d'un point de vue marketing, notamment pour apprécier la satisfaction
et les attentes des clients.
La première tâche est à peu près résolue avec les systèmes de veille, qui sont capables
de recueillir les messages émanant de tous types de sources à partir de formules
booléennes de mots clés, puis de les organiser par différentes méthodes de filtrage et de
catégorisation.
La deuxième tâche, visant à "interpréter" le contenu pose un problème nouveau. Les
techniques classiques du "big data" ne peuvent pas s'appliquer puisque des textes ne sont
pas des "data". Il faut d'abord extraire des données depuis le texte, en utilisant des
technologies venant d'un autre domaine, celui de l' IE pour "Information Extraction".
On définit souvent la tâche de l'IE comme l'opération consistant à remplir une base de
données structurées à partir de textes: identifier des "entités nommées" (en gros des
noms propres), des thématiques, des relations entre elles. Ces informations extraites
peuvent être factuelles (Le plat du jour est à 12 euros) ou subjectives (Le plat du jour est
trop cher).
L'exploitation de ces données subjectives constitue une aubaine pour le marketing, et pour
toute une série d'activités qui ont intérêt à surveiller l'évolution des opinions. Sans doute
n'est-il pas très utile de faire de complexes systèmes d'interprétation des textes pour
récupérer des données factuelles que l'on pourrait trouver déjà formatées ailleurs. Mais
pour tout ce qui du domaine des avis, recommandations, émotions, rumeurs, une analyse
des textes peut apporter énormément d'informations utiles. C'est le domaine de l' "opinion
mining" ou "sentiment analysis", deux termes anglophones quasiment synonymes dans ce
contexte.
Le sujet est polémique. Il est difficile de se faire une opinion sur ce que peut apporter, en
pratique, le "sentiment analysis" quand on regarde les nombreux articles, commentaires,
posts, qui donnent des avis tranchés qui vont de "çà marche très bien" à "çà ne sert à
rien" , en passant par "faut voir, çà peut être utile si un expert humain révise les
analyses"... , en laissant d'une manière générale le sentiment que cela ne fonctionne pas
suffisamment bien pour être utilisable.
Il faut faire la part des choses, et bien différencier les cas d'utilisation. Il en est où cela
sera très utile, d'autres où cela sera inutilisable. Malheureusement ces différents cas ne
sont généralement pas différenciés dans la plupart des plateformes, ce qui conduit
souvent à des résultats plus que fantaisistes qui discréditent la technologie, renforçant
l'idée que "çà ne marche pas".
Quel est l'objectif d'un système de sentiment analysis ? Collecter, repérer, analyser des
opinions. Donc quelle définition formelle pour une opinion ? L'approche la plus souvent
retenue est celle de Bing Liu, donnée dans son livre "Sentiment Analysis and Opinion
Mining" (Morgan and Claypool 2012), qui définit une opinion comme un quintuplet formé
de:
5. Adetem / Aproged 18
Une opinion est un quintuplet (ei, aij, sijkl, hk, tt) , dans lequel :
e représente une « entité »
a représente un « aspect »
s représente un « sentiment » sur un aspect de l’entité
h représente l’auteur de l’opinion (« holder »)
t représente le moment (« time ») où est exprimée l’opinion.
On utilise souvent d'autres mots en français pour désigner ces mêmes notions ("objet"
pour "entité", "facette" ou "critère" pour "aspect" ), mais on peut garder ici la terminologie
directement traduite de l'anglais. Par exemple, dans l’avis exprimé par Dupont le 9 octobre
2012 « l’ hôtel X est très décevant. Les chambres sont sombres et petites. Mais mes
enfants ont trouvé que le petit déjeuner était bon », on identifie trois opinions distinctes :
e=hôtel X, a=0, s=négatif : décevant, h = Dupont, t = 9 oct 12
e=hôtel X, a=chambre, s=négatif : petit, h=toto77, t = 9 oct 12
e=hôtel X, a= petit déjeuner, s=positif : bon, h= enfants de toto, t = 9 oct 12
Cette définition a le mérite d’être simple, même si on pourrait bien sûr complexifier le
modèle dans plusieurs directions, mais tenons nous en là pour le moment. Ce cadre
permet de distinguer déjà plusieurs cas de figure et plusieurs types d’analyse.
Veut-on une analyse globale ou détaillée du
message ?
En fait, beaucoup de systèmes simplifient grandement le problème, et proposent une
analyse globale, en affectant une tonalité à l’ensemble du message, sans chercher à
identifier les entités, et encore moins leurs aspects. Si le message ne parle que d’une
seule entité, le résultat peut être acceptable. Mais si le message porte sur plusieurs
entités, le résultat est généralement inexploitable. Par exemple, que veut dire le calcul
d’une tonalité unique sur un message comme « J’ai été très mal reçu par mon agence à la
banque X et j’ai décidé de les quitter pour Y » qui a de bonnes chances d’être analysé
comme globalement négatif ? surtout si l’objet de l’étude est Y… Admettons que la phrase
est particulièrement difficile à comprendre et prenons plutôt « « J’ai été très mal reçu par
mon agence à la banque X et j’ai décidé de les quitter pour Y qui est bien plus agréable ».
Avec une analyse grossière, sans repérer les entités, il est probable que les tonalités
s’annulent et que la note globale soit « indéterminé » ou « neutre » selon les conventions
du logiciel. C’est déjà mieux, au moins il n’y a pas de contresens total. Une analyse
détaillée est donc préférable en théorie, mais on tombe alors sur d’autres problèmes.
Par ailleurs, on notera au passage que la notion de note globale est difficile à calculer, y
compris dans le cas d'analyse détaillée, parce que l'on ne connait pas, a priori, les
pondérations que l'utilisateur donnerait à chaque aspect. On peut très bien trouver un
message critiquant sévèrement un produit sur plusieurs aspects, mais lui attribuant
finalement une note globale positive.
6. Adetem / Aproged 19
Le champ de l'étude est-il mono-source ou
multi-sources ?
Plus grand sera le nombre de sources et plus il sera difficile d’agréger des données de
plus en plus hétérogènes, et dont la fiabilité sera de moins en moins évidente. La façon
d’exprimer le facteur S (sentiment), par exemple, peut être très différente d'une source à
l'autre: des notes numériques sur des échelles elles-mêmes variables, l'attribution d'un
nombre d'étoiles, des smileys qui sont eux-mêmes très variables selon les librairies
utilisées, des "likes", du texte libre, etc. Par ailleurs les différents aspects des entités
observées pourront varier d’une source à l’autre, complexifiant encore les analyses,
comme dans les deux exemples ci-dessous, venant de deux sites d’avis sur des hôtels.
Un avis pris sur tripadvisor :
et un avis pris sur easyvoyage :
Alors, pourquoi se compliquer la vie en allant chercher dans plusieurs sources pour une
même entité ? Il y a plusieurs réponses : la plupart du temps le nombre d’avis sur un site
7. Adetem / Aproged 20
donné pour une entité particulière est relativement modeste, on veut donc élargir le corpus
de messages en allant sur plusieurs sources. Et d’autre part, on a plus de chances d’avoir
un échantillon plus représentatif de la population d'utilisateurs si l’on va sur plusieurs
sources.
Le champ de l'étude couvre t-il des entités
homogènes ou non ?
Si le corpus de messages est homogène, en ne couvrant qu’ un seul type d’entité, ou un
nombre limité et connus de types d’entités, on peut définir les facteurs A (aspects) qui sont
intéressants à suivre. Par exemple pour un hôtel on pourra suivre des critères comme
ceux montrés dans l’exemple ci-dessus. Mais si l’on doit suivre plusieurs types d’entités,
les choses se compliquent.
Prenons l’exemple suivant, « je reviens de vacances. J’avais choisi une formule location
de voiture + hôtel. Çà s’est bien passé dans l’ensemble. Pas eu de problème avec la
voiture, même si le prix était élevé. Mais hôtel X très décevant. Le garage était trop exigu
pour ma voiture. Les chambres étaient sombres et petites. Mais mes enfants ont trouvé
que le petit déjeuner était bon »
L’entité « location de voiture » pourrait être décrite par des aspects comme le prix,
l’assurance, le kilométrage, etc. Certains aspects pourront être communs à plusieurs
entités, comme le prix dans l’exemple ci-dessus, et il faut alors que l’analyseur soit
capable de construire correctement les associations « entités / aspects ». Cet exemple
reste simple, mais le traitement peut devenir très complexe si l’on se trouve dans un projet
ouvert, avec des entités très diverses, voire même inconnues au départ de la veille, et qu’il
devient impossible d’avoir un modèle des aspects attendus par entité. Il faut alors un
analyseur suffisamment fin pour qu’il repère de lui-même les aspects pertinents dans le
texte.
Vise-t-on un système entièrement automatique
ou seulement une assistance ?
Ces deux situations sont évidemment complètement différentes. Si l’on veut une
assistance, le système d’analyse faisant des propositions qui sont ensuite révisées par un
analyste, son efficacité va bien sûr dépendre de son niveau de qualité d’analyse, mais
aussi, et sans doute surtout, d’autres critères comme l’ergonomie de l’interface de révision
et les capacités d’apprentissage, ou du moins de répercussion d’une révision à l’ensemble
de messages similaires. Pour prendre un exemple simple, réviser la tonalité d’un tweet
devrait réviser celle de ses retweets à l’identique. Si les conditions d’utilisation du système
ne permettent pas de révision, et si l’on doit accepter et analyser des messages textuels, il
faut alors être bien conscient du niveau de qualité obtenu, ne serait-ce que pour prendre
des précautions adéquates vis a vis des utilisateurs. On se demande parfois, quand on
regarde certains systèmes, si leurs auteurs ont vraiment fait ces évaluations.
8. Adetem / Aproged 21
Quelles technologies pour quels cas d'usage ?
On sait que plusieurs types de technologies sont envisageables pour analyser les tonalités
de ce type de message. La "technologie" (?) la plus simple, est "tout à la main": le logiciel
se contente de donner la possibilité de marquer par un tag les messages dans les
catégories positif, négatif, neutre et indéterminé. (Certains fournisseurs ne manquant pas
d'aplomb indiquant même proposer un système de "sentiment analysis" avec ce type de
solution...). La deuxième famille de solution est basée sur l'apprentissage. Très à la mode
parce que facile à mettre en œuvre, cette méthode peut donner des résultats satisfaisants
dans certains cas, quand le volume de données d'apprentissage est important. D'où
l'intérêt de méthodes combinant apprentissage et "crowd sourcing" les utilisateurs
construisant eux-mêmes le corpus d'apprentissage. Mais en tout état de cause, ces
méthodes restent approximatives et ne peuvent pas rentrer dans le détail d'analyse que
seules des méthodes basées sur des analyses linguistiques peuvent atteindre.
L'inconvénient étant alors que l'adaptation au domaine peut être une tâche relativement
lourde.
Les cas favorables, et ceux qui sont
problématiques
On le voit, la qualité du résultat d’un système de « sentiment analysis » va donc dépendre
de plusieurs caractéristiques du projet. On en a cité quelques une ici, mais il en est bien
d’autres.
Si l' on veut surveiller un domaine vaste, généraliste, que l’on ne sait pas bien ce qu’on
cherche, que l'on veut aller sur un grand nombre de sources hétérogènes, et qu'on n'a
pas la possibilité de révision manuelle, alors les critiques de ceux qui ont des doutes
risquent d’être justifiées. Mieux vaut sans doute attendre quelques années que la
technologie progresse.
Mais si le projet ne porte que sur quelques types d’entités bien identifiés, que l’on
analyse quelques sources de messages relativement homogènes, comme par exemple
des sites d’avis, ou des messages sur la hot-line d'une entreprise, et qu’on a un modèle
des objets et des aspects que l’on veut analyser, alors il y a de bonnes chances qu’un
système de « sentiment analysis » fonctionne correctement. Et c'est satisfaisant, parce
que çà correspond à de nombreux cas d'usages d'entreprises qui veulent juste surveiller
des sources bien identifiées sur très peu d'entités.