L’équipe de France de football joue ce soir sa demi-finale de l’Euro 2016 !

Nous en avons profité chez Censio pour mettre en œuvre une analyse de sentiments à partir des tweets publiés autour de l’évènement, avec l’aide de SAP HANA et SAP BusinessObjects Web Intelligence 4.2 (dit « Webi » pour les intimes).

Notre analyse s’est faite en 4 étapes :

    1 – Récupérer les tweets à l’aide de l’API Twitter
    2 – Sauvegarder les tweets dans HANA
    3 – Lancer l’analyse de sentiments dans HANA
    4 – Analyser les résultats à l’aide de vues HANA et de rapports Webi

1 – Récupérer les tweets à l’aide de l’API Twitter




La première étape a été d’extraire les tweets. Twitter met à disposition une API « The Search API » qui permet d’obtenir un échantillon de tweets récemment publiés (depuis moins de 7 jours) : https://dev.twitter.com/rest/public/search.
Après avoir créé un compte sur le réseau social, il suffit de quelques clics pour créer une application avec Twitter Developers (https://apps.twitter.com). Cette application va nous fournir un token d’accès qui va nous être utile pour interroger l’API.



APITwitter


2 – Sauvegarder les tweets dans HANA




L’étape suivante a été de stocker les tweets dans HANA.
Pour commencer, nous avons créé une table dans HANA pour stocker les tweets et une seconde pour stocker la liste des mots clefs utilisés.
Nous avons ensuite programmé une application HANA XS JavaScript qui fait appel à l’API Twitter en utilisant le token d’accès récupéré à l’étape précédente afin d’insérer les tweets dans la table.


TweetTable

Le lancement de cette application est planifié et peut être suivi dans le « XS Job Dashboard » via l’outil web d’administration XS de HANA.

XSJOBDASHBOARD

3 – Lancer l’analyse de sentiments dans HANA


Il est nécessaire d’identifier les sentiments contenus dans ces tweets afin de connaitre l’avis du public à propos de l’Euro 2016. Pour utiliser l’analyse de texte de HANA, il suffit de quelques lignes de code en précisant la colonne de langue, puis HANA s’occupe du reste ! Une table est générée et on obtient une ligne pour chaque mot ou groupe de mot extrait de chaque tweet avec son type (sentiment, ville, personne …). Pour isoler les sentiments on récupère les lignes dont le type est égal à ‘StrongNegativeSentiment’, ‘StrongPositiveSentiment’, ‘WeakNegativeSentiment’, ‘WeakPositiveSentiment’ et ‘NeutralSentiment’.

4 – Analyser les résultats à l’aide de vues HANA et de rapports Webi



Comme nous l’annoncions en décembre dernier (https://blog.censio.fr/bi/business-objects/sap-businessobject-bi-42-en-rampup-chez-censio/), la nouvelle version de SAP BusinessObjects BI 4.2 permet d’interroger directement des vues HANA dans Webi sans passer par un univers.
Nous avons donc créé des vues HANA à partir de nos tables de tweets et produit les analyses suivantes avec Webi :

Nuages de mots
Nous avons ainsi pu réaliser ces nuages de mots avec les tweets qui contiennent au moins un sentiment positif ou négatif. Le mot clé utilisé est «EURO2016».

Nuage de mots positifs
Comme on peut le constater, de nombreux mots à connotation positive sont bien présents. Mais nous pouvons également trouver des noms de pays ou de joueurs, on peut d’ailleurs se féliciter de la présence de la France dans ce nuage !

NuagePositifEuro

Nuage de mots négatifs
De la même manière nous retrouvons ici de nombreux mots à connotation négative, Twitter étant un espace de liberté d’expression, nous pouvons constater qu’aucune censure n’est faite et nous nous excusons pour le caractère grossier de certains mots. La marque Puma a beaucoup fait parler d’elle par la piètre qualité des maillots de l’équipe Suisse et est ainsi en bonne position dans les réactions négatives du réseau social.
On peut aussi remarquer que le mot Englandest en bonne place dans ce nuage, illustration de la colère des fans Anglais à la contre-performance de leur équipe dans ce tournoi !.

NuageNégatifEuro

Camembert
Pour cette analyse, nous n’avons gardé que les mots de type sentiment positif, négatif et neutre. Chaque camembert représente la proportion de chaque type de sentiment pour un mot clef. Nous pouvons ainsi observer que l’équipe de France est appréciée par rapport au sentiment global dégagé par l’EURO2016. Quand on filtre sur un mot clef à connotation positive : «FierdetreBleus» le résultat est assez logique ! Grâce à cette analyse on peut également obtenir la réputation d’un joueur, celle de Patrice Evra est visiblement mitigée…

PieChartEuro

Diagramme linéaire
En utilisant l’analyse des sentiments récoltés au cours du match France-Islande du 3 juillet 2016, nous avons pu suivre la réaction du public pendant la rencontre. Le graphique suivant présente le pourcentage de tweets positifs par pallier de 10 minutes, de 21H (heure du début du match) à minuit.

Le premier but de Olivier Giroud marqué à la 12e minute apparait clairement sur le graphique en faisant monter le taux de satisfaction à 100%. Le niveau de la courbe reste élevé puis dégringole au premier but de l’Islande à la 56e minute. Le 5e but marqué par la France permet de faire remonter la courbe mais le dernier but de l’Islande fait retomber à nouveau l’euphorie, ce qui apparait distinctement sur le graphique.

Finalement la France est qualifiée en demi-finale et les français expriment leur joie sur Twitter dès le coup de sifflet final, la courbe atteint alors son niveau maximum et le conserve jusqu’à la fin de la soirée.

FranceIslandeCOUPE6

Sentiment analysis, pour quoi faire ?


Le « sentiment analysis » ou « opinion mining » consiste à analyser des sentiments à partir de sources textuelles non structurées sur de grandes quantités de données (big data).
Cette technique utilisée ici à titre d’exemple pour connaitre l’opinion du public sur l’EURO 2016, permet d’obtenir le ressenti ou l’image d’une entreprise, d’une marque, d’un produit ou d’un service.
De nos jours, les entreprises doivent garder un œil permanent sur les réseaux sociaux pour pouvoir réagir avant qu’un buzz négatif ruine leur réputation.

Une fois les données importées SAP HANA permet de réaliser cette analyse rapidement et simplement. Il ne reste plus qu’à utiliser un outil de restitution au choix, comme ici Webi 4.2.

Laisser un commentaire