L’analyse de sentiments est une tâche prépondérante du Traitement Automatique du Langage (TAL). Depuis longtemps, la littérature s’intéresse à l’extraction et à l’analyse de la polarité des sentiments présents dans le texte. Par exemple, il est fréquent de classifier la polarité des commentaires des produits présents sur Amazon [14, 51, 101, 122]. En effet, pour ce genre de corpus, la présence d’une note en plus du commentaire permet d’avoir une information sur la polarité de ce dernier, ce qui en fait des données propices à la classification de sentiments. L’analyse de revues de film est un autre exemple de tâche courante en TAL [44, 95, 148, 166]. Encore une fois, ce type de corpus a l’avantage de contenir des notes clarifiant la polarité des commentaires.
Afin de réaliser l’analyse de sentiments, la meilleure solution est l’utilisation des modèles Transformer, actuellement à l’état de l’art. Effectivement, depuis la publication du Transformer en 2017 dans [151], la majorité des modèles récents utilisent ce mécanisme. Le Transformer a pour principe central l’utilisation de l’auto attention, c’est-à-dire la mesure des relations entre les différents tokens d’une même séquence.
Analyse de sentiments sur Twitter
Les réseaux sociaux sont devenus de plus en plus présents dans la vie des gens, permettant d’exprimer des sentiments et des opinions sur des sujets publics ou politiques, ou même sur la vie quotidienne. Pouvoir extraire le sentiment et l’opinion des tweets est donc devenu essentiel puisque tout le monde publie son opinion envers presque tout. Les tweets liés aux marques sont particulièrement utiles pour les entreprises qui souhaitent évaluer leur réputation, améliorer leurs produits, ou étudier les besoins du marché et leurs concurrents. (Ghiassi et al., 2016) ont par exemple développé une approche qui permet d’effectuer une analyse des sentiments sur Twitter et de classer les tweets sur une échelle en cinq points [43].
De ce fait, de nombreuses études se penchent sur la détection de sentiments et d’opinions contenus dans des tweets [47, 70, 86, 111]. Cependant, la plupart de ces études parlent d’analyse de sentiments ou d’opinions sans faire de distinction. Il s’agit pourtant de deux tâches proches mais pas totalement identiques [70, 86]. Si les approches traditionnelles pour l’apprentissage automatique et les réseaux de neurones récurrents et convolutifs pour le traitement du texte ont chacun leur tour permis d’obtenir les meilleures performances pour la classification de tweets, ce sont actuellement les modèles fondés sur le Transformer qui sont à l’état de l’art sur cette tâche. En effet, depuis l’apparition du bloc Transformer [151] en 2017, celui-ci est présent dans la majorité des modèles publiés récemment et pour l’analyse de texte.
Grâce à leurs nombreuses couches permettant une meilleure représentation du texte, les modèles Transformer capturent des caractéristiques à la fois sémantiques et syntaxiques, surpassant ainsi les représentations « sac de mots » et les embeddings . Dans ce chapitre, nous commençons donc par faire la distinction entre les tâches d’analyse de sentiments, et de détection d’opinion afin d’éclaircir ces deux notions. Nous voyons ensuite différentes manières de représenter un texte sous la forme d’un vecteur ainsi que des méthodes de traitement du texte, et en particulier des tweets. Nous faisons ensuite un point sur les différentes approches permettant d’effectuer de l’analyse de sentiments. Enfin, nous terminons par présenter les différents jeux de données utilisés dans l’ensemble de nos expérimentations.
Formalisation du problème
Analyse de sentiments, reconnaissance d’opinion et détection de posture sont trois tâches similaires mais pourtant différentes en Traitement Automatique du Langage (TAL) [70, 86]. Il est donc nécessaire de rappeler la distinction entre ces trois tâches souvent confondues. Cette section est consacrée à la clarification de notre problématique. Dans un premier temps, nous définissons chacune des tâches afin de préciser les différents termes utilisés dans la littérature, concernant la reconnaissance d’opinion, l’analyse de sentiments et la détection de posture. Nous prenons ensuite position parmi ces tâches et définitions. Enfin, nous mettons en lumière les particularités liées à notre tâche et à notre thématique.
Sentiment et Opinion
Un sentiment est l’expression d’une subjectivité (ou de l’absence de subjectivité) dans un texte, sous la forme d’une valence ou une étiquette positive (exemple 1), négative (exemple 2) ou hors contexte (exemple 3).
Exemple 1 I’m about to eat four hot dogs and watch Miss USA. Happy Sunday.
Exemple 2 Bad Blood may have the absolute worst lyricism I’ve ever heard in my life (regarding Taylors parts) #UsedtobeMadLove #ReallyDeepCut
Exemple 3 Trump to skip Miss USA pageant : Donald Trump won’t be at the Miss USA Pageant taking place in Baton Rouge, Louisiana, on Sunday night…
Une opinion est une notion plus complexe, car définie au travers de cinq entités. Cela consiste à extraire et analyser l’opinion O d’une entité envers une autre entité. Cela signifie que l’entrée est un texte (un document, une phrase, ou dans notre cas, un tweet) ou une séquence de textes. En ce qui concerne la sortie obtenue, il s’agit de l’opinion O qui peut être représentée par le quintuplet (o, a, p, e, t) [70, 86]. Soit :
o l’objet de l’opinion,
a l’aspect de cet objet,
p la polarité de l’opinion,
e l’émetteur de l’opinion,
t le moment d’émission de l’opinion.
Pour l’exemple 4, o serait le new Moto G, l’aspect a serait son prix, et la polarité p serait positive. Concernant e et t, ils ne sont pas présents dans le texte, cependant s’agissant d’un tweet, l’émetteur e peut être considéré comme étant l’auteur du tweet, et t le moment de publication du tweet.
Exemple 4 The new Moto G may be the best budget phone… again. http://t.co/GXy3TDlRpC #News #TechNews .
Au sens strict de ces deux notions, le sentiment est la polarité d’un texte indépendamment de tout objet et/ou d’un émetteur, alors que l’opinion est définie au travers des cinq notions ci-dessus. Dans le cadre de l’analyse de sentiments, il est souvent fait l’hypothèse simplificatrice que chacun des documents d’un jeu de données est fondé sur un même objet d’opinion, unique et éventuellement déterminé par les mots-clés utilisés lors de la collecte du corpus [112].
Détection de posture, analyse de sentiments fondée sur l’aspect & analyse de sentiments fondé sur la cible
Si l’analyse de sentiments permet de prédire une polarité et la reconnaissance d’opinion permet de prédire un quintuplet, la détection de posture (Stance detection) se positionne entre les deux. En effet, l’objectif ici est de déterminer une polarité vis-à-vis d’un objet ciblé, faisant ou non partie du document étudié. Contrairement à l’analyse de sentiments, nous ne faisons donc pas l’hypothèse que le jeu de données a été collecté sur une thématique particulière, ou encore que chaque document a un objet unique, puisque cet ou ces objets restent à déterminer [133]. Il est possible de considérer que deux sous-problèmes d’analyse de sentiments se rapprochent beaucoup de la tâche de détection de posture [74], ainsi que de la reconnaissance d’opinion. Il s’agit en effet de l’analyse de sentiments fondé sur la cible (Target-based sentiment analysis) ainsi que de l’analyse de sentiments fondée sur l’aspect (Aspect-based sentiment analysis).
Analyse de sentiments fondée sur la cible
L’objectif de cette tâche est de déterminer la polarité ainsi que la cible, c’est-à-dire l’objet o d’un document [74]. Selon (Ebrahimi et al., 2016) , les principales différences avec la détection de posture, sont dans un premier temps liées à la cible, qui peut ne pas être explicitement présente dans le document pour la détection de posture [34]. Dans un second temps, la cible de la détection de posture n’est pas forcément la cible du sentiment présent dans le document. Enfin, si dans le cas de l’analyse de sentiments la cible est habituellement une entité ou une caractéristique, elle peut être un événement en détection de posture. Par exemple, dans le cadre d’une collecte de tweets réalisée sur la thématique du second tour des élections présidentielles 2022 en France, seraient considérés comme favorable à E. Macron des tweets contre M. Le Pen. Ainsi, la cible (E. Macron) n’est ni explicitement contenue dans le tweet, ni la cible du sentiment du texte.
|
Table des matières
1 Introduction
1.1 Contexte de la thèse
1.2 Projet SAPhIRS
1.3 Contributions
1.4 Organisation
2 Analyse de sentiments sur Twitter
2.1 Formalisation du problème
2.1.1 Sentiment et Opinion
2.1.2 Détection de posture, analyse de sentiments fondée sur l’aspect & analyse de sentiments fondé sur la cible
2.1.3 Positionnement
2.2 Traitement du texte pour l’analyse de sentiments
2.2.1 Représentation des tweets
2.2.1.1 Sac de mots
2.2.1.2 Embeddings
2.2.1.3 Modèle de langage
2.2.2 Caractéristiques et traitement des tweets
2.3 Approches pour l’analyse de sentiments
2.3.1 Approches traditionnelles d’apprentissage automatique
2.3.2 Réseaux de neurones récurrents et convolutifs
2.3.2.1 Description des réseaux de neurones pour le texte
2.3.2.2 Utilisation des réseaux de neurones pour l’analyse de sentiments
2.3.3 Modèles Transformer
2.4 Conclusion
3 Analyse de sentiment avec des ressources limitées
3.1 Utilisation des modèles Transformer avec des ressources limitées
3.1.1 Utilisation du fine-tuning
3.1.2 Poursuivre le pré-apprentissage du modèle
3.1.3 Utilisation d’un modèle spécifique quand cela est possible
3.1.4 Discussion
3.2 Protocole
3.2.1 Expérimentations
3.2.2 Jeux de données pour l’analyse de sentiments
3.3 Quelles sont les bonnes pratiques pour faire de l’analyse de sentiments avec des ressources limitées ?
3.3.1 Choix de la taille du modèle
3.3.2 Gérer l’oubli catastrophique
3.3.3 Choisir le type d’apprentissage pour BERT-base
3.3.4 Traiter le vocabulaire spécifique de Twitter
3.3.4.1 Normalisation des tweets : que faire des mentions, hashtags et URL
3.3.4.2 Utilisation d’un modèle Twitter : BERTweet
3.3.4.3 Traitement des emojis
3.3.5 Résultats
3.4 Conclusion
4 Étude de l’impact de l’ajout de caractéristiques d’emojis et de sarcasme sur l’analyse de sentiments
4.1 Qu’est ce qu’un emoji et comment peuvent-ils être traités ?
4.1.1 Définition d’un emoji
4.1.2 Différentes manières de traiter les emojis dans la littérature
4.1.3 Discussion
4.2 Qu’en est-il du sarcasme ?
4.2.1 Définition
4.2.2 Détection de sarcasme fondée sur le contexte
4.2.3 Détection de sarcasme fondée sur le contenu
4.2.4 Discussion
4.3 De quelle manière pouvons-nous combiner ces éléments ?
4.3.1 Quels éléments sont combinés ?
4.3.2 De quelle manière sont-ils combinées ?
4.3.3 Discussions
4.4 Est-il possible d’améliorer l’analyse de sentiments en donnant des informations supplémentaires au classifieur ?
4.4.1 Protocole Expérimental
4.4.2 Inclure la représentation d’emojis dans le classifieur de sentiments
4.4.3 Inclure le sarcasme au classifieur de sentiments, avec ou sans prise en comte des emojis Saagie – INSA Rouen Normandie
4.4.3.1 Approche naïve pour intégrer l’information de sarcasme dans la classification de sentiments
4.4.3.2 Inclure le sarcasme au sentiment, sans les emojis
4.4.3.3 Inclure les emojis et le sarcasme au sentiment
4.4.4 Étude approfondie
4.4.4.1 Étude sur le mode de combinaison
4.4.4.2 Ablation study
4.4.5 Analyse des résultats
5 Projet SAPhIRS et l’industrialisation de l’apprentissage automatique
5.1 Présentation du projet SAPhIRS
5.1.1 Partenariat entre Saagie, le LITIS et Airbus Defence and Space
5.1.2 Découpage du projet
5.1.3 Jeu de données radicalisation
5.1.4 Jeux de données et modèles pour la communauté
5.2 Détection d’influences et de communautés
5.2.1 Base de données graphe
5.2.2 Détecteur d’influenceurs à partir de graphes d’interactions
5.2.3 Détecteur de communautés d’utilisateurs et d’influenceurs
5.3 Détection d’opinions et de haine
5.3.1 Collecte de tweets et stockage
5.3.2 Détection de langue
5.3.3 Détection de dialecte
5.3.4 Translittération
5.3.5 Traduction
5.3.6 Détection de haine
5.3.7 Détection d’objet d’opinion
5.3.8 Détection de polarité d’opinion
5.4 Pipeline, déploiement et visualisation
5.4.1 Démonstrateur Saagie
5.4.2 Pipeline de modules
5.4.3 Stockage des données et déploiement du pipeline
5.4.4 Visualisation des résultats
6 Conclusion
