Analyser des données de sentiments avec un écosystème Hadoop

664px-Hadoop_logo.svg

Cet article présente un cas d’utilisation d’un écosystème Hadoop à travers la récupération et l’exploitation de données de sentiments. La connaissance, dans les grandes lignes, des composants d’un écosystème hadoop est un prérequis à la lecture de cet article.

Des données de sentiments sont des données non structurées qui contiennent des opinions, des émotions ou des attitudes. Ces données proviennent généralement de posts de réseaux sociaux, de commentaires de blogs ou d’avis.

Ce cas d’utilisation présente une façon de connaître et de suivre dans le temps l’opinion des utilisateurs du réseau social Twitter suite au lancement d’un nouveau produit.

Architecture de la solution

L’architecture présentée permet de récupérer des données provenant de Twitter, de les traiter à travers la plateforme Hortonworks qui contient un écosystème Hadoop et de les restituer dans Excel.

archi

Les données étudiées proviennent du réseau social Twitter. Elles sont récupérées en temps réel par l’outil de streaming FLUME qui stocke les données dans HDFS (Hadoop Distributed File System).

AMBARI est un composant de l’écosystème HADOOP qui permet d’automatiser et d’ordonnancer des traitements pour manipuler des données en « temps réel ». Un modèle de données est créé à l’aide de l’outil HIVE pour organiser les données stockées dans HDFS.

Les données nettoyées et traitées sont ensuite restituées dans Excel  à des fins d’analyse.

Chargement des données

Récupérer les données avec FLUME

FLUME est l’outil qui permet, entre autre, de récupérer les données provenant du réseau social Twitter. La création d’un traitement automatisé permet d’isoler des tweets en fonction d’un hastag et de les stocker dans HDFS. Dans cet exemple sont également conservés le contenu du Tweet, sa date de création et sa localisation.

extwitt

Les données sont injectées dans HDFS au fil de l’eau de façon brute. Elles ne seront pas interprétables comme données de sentiments avant d’être organisées et traitées.

Organiser  les données avec HIVE

Le composant HIVE de l’écosystème est utilisé pour organiser logiquement les données contenues dans HDFS. L’exécution de requêtes écrites en HiveQL (langage de programmation de HIVE) permet la création de tables composées de champs comme dans un SGBD traditionnel. HIVE génère des métadonnées autour des données contenues dans HDFS. Ces métadonnées sont stockées dans un métastore (HIVE CATALOG).

createtable

Cette requête, nommée create_tweets_raw, permet de créer une table, Tweets_raw En possédant des champs typés, cette table organise les données contenues dans HDFS pour faciliter leur traitement.

Certains champs sont composés. Ils contiennent plusieurs informations sous la forme d’une liste comme le champ « user » dans cet exemple.

table

Traitement des données

En plus de la table Tweets_raw précédemment créée, le modèle est composé de deux autres tables. La table Dictionnary contient l’ensemble des mots du dictionnaire anglais ainsi qu’un coefficient pour chacun d’eux indiquant s’il est associé à un sentiment positif, négatif ou neutre. Une table TweetsBi est également créée pour recevoir le résultat du traitement.

dico

Le traitement appliqué sur les données reste simple puisqu’il consiste à décomposer les mots du tweet et réaliser une jointure avec la table Dictionnary. Cette jointure permet d’attribuer un coefficient à chaque mot de chaque tweet. La moyenne des coefficients obtenus permet de définir la tendance de sentiment des tweets. Les résultats sont générés dans HDFS et organisés dans la table TweetsBi.

result

Restitution et analyse des données

Excel est doté d’un connecteur vers HIVE qui lui permet d’intégrer les données précédemment traitées. Après avoir établi la connexion et choisi les champs à utiliser, les données enrichies peuvent être travaillées dans Excel.

excelco

Le score de sentiment étant un indicateur, il peut être agrégé à différents niveaux de détails. Il est ainsi possible de connaître le nombre de tweets par pays, par date, par heure ou par tendance de sentiment.

transfo

Le module POWER PIVOT d’Excel permet de transformer les données précédemment agrégées dans des tableaux en graphiques plus lisibles.

Dans le cadre de cet exemple un premier graphique montre le nombre de tweet émis au sujet du nouveau produit sur l’ensemble des heures d’une journée. Un second graphique permet de connaître la tendance de sentiment par pays.

graph1

graph2

graph3

L’écosystème HADOOP permet dans cet exemple d’automatiser la récupération, le stockage et le traitement d’une grosse volumétrie de données en « temps réel ».  Ces traitements ne pourraient pas être réalisés par des SGBD traditionnels qui atteignent leurs limites lorsque la volumétrie de données augmente fortement. 

Les données de sentiments concernent généralement un volume de données important pour permettre une analyse sémantique ayant du sens. HADOOP est une plateforme idéale pour permettre ce genre d’analyse d’autant que de plus en plus d’outils de restitution contiennent nativement des connecteurs vers HIVE ou HBASE.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.