Analyse des sentiments effectuée sur les tweets sur le séisme en Turquie
Analysis of sentiment on tweets about the earthquake in Turkey
L’analyse des sentiments est une technique de traitement du langage naturel utilisée pour étiqueter un texte donné selon son sentiment, qu’il soit positif, négatif ou neutre.
En général, l’analyse des sentiments est utilisée en marketing pour mieux prendre en compte les besoins des clients, surveiller les opinions sur un produit particulier et extraire des informations sur les tendances attendues afin d’améliorer la stratégie marketing. Dans le domaine de l’assurance, l’analyse des sentiments est utilisée non seulement à des fins de marketing, mais aussi dans l’évaluation des risques. En modélisant le sentiment à partir des tweets, il est possible de construire un facteur de risque qui peut être utilisé dans la modélisation des risques de prime. L’exemple suivant présente une analyse des sentiments appliquée aux tweets sur le tremblement de terre en Turquie, avec l’utilisation de l’outil de référence TextBlob comparé à des modèles pré-entraînés récupérés depuis Hugging Face Hub. Vous pouvez suivre le code dans ce notebook.
Qu’est-ce que Hugging Face ?
- PyTorch LSTM – Formes de l’entrée, de l’état caché, de l’état de la cellule et de la sortie
- Vers l’apprentissage profond en 3D Réseaux de neurones artificiels avec Python
- Les chercheurs de l’UCI et de Harvard présentent TalkToModel, qui explique les modèles d’apprentissage automatique à ses utilisateurs
Hugging Face est une plateforme construite dans le but de démocratiser l’intelligence artificielle, où les scientifiques des données et les ingénieurs en apprentissage automatique peuvent collaborer sur des modèles et des ensembles de données, avec la possibilité de déployer des applications.
En revenant directement au travail, j’ai récupéré un ensemble de données de tweets provenant de Kaggle sur les tremblements de terre en Turquie qui ont eu lieu en février 2023.
Sur l’image suivante, il y a plusieurs caractéristiques à l’exception des étiquettes de sentiment.
L’analyse des sentiments avec des étiquettes de polarité peut être liée à la tâche de classification de texte en ajustant un modèle sur l’ensemble d’entraînement et en évaluant ses performances sur l’ensemble de test, afin de l’utiliser également sur d’autres données non vues avec la même structure. Dans cet ensemble de données, cependant, il n’y a pas d’étiquettes pour entraîner des modèles, et l’idée est d’utiliser un outil pour générer des étiquettes de polarité de manière automatisée, car lorsqu’un ensemble de données comporte des milliers de lignes, une activité d’étiquetage manuelle prend beaucoup de temps.
Il existe plusieurs packages disponibles pour effectuer une analyse des sentiments, les plus connus étant TextBlob, VADER et Flair. Pour ce travail, j’ai sélectionné TextBlob comme outil de référence. Ensuite, je l’ai comparé aux résultats obtenus à partir de modèles pré-entraînés de grande taille (LLMs) récupérés depuis Hugging Face : cardiffnlp/twitter-roberta-base-sentiment-latest, cardiffnlp/bert-base-multilingual-cased-sentiment-multilingual, philschmid/distilbert-base-multilingual-cased-sentiment-2.
Avant de passer aux modèles, je reviens sur l’ensemble de données qui est composé de 16 variables (dont l’ID téléchargé en tant qu’index) et de 28844 lignes, certaines caractéristiques présentant des données n/a et des tweets enregistrés du 07/02/2023 au 26/02/2023. En fait, je m’intéresse aux colonnes suivantes : “date”, “text” et “user_location”, que j’ai utilisées pour filtrer les données.
Sur l’image suivante, il est possible de voir, grâce à la détection de la langue, que les tweets sont écrits en anglais.
Sur l’image suivante, on peut comprendre les cinq provenances principales des messages grâce à la fonctionnalité “user_location”, et la Turquie occupe la deuxième place après l’Inde.
À cette étape, j’ai filtré les données df_.query(‘user_location==”Turkey”‘) sur la Turquie, réduisant à 538 lignes, et après un petit nettoyage, l’ensemble de données était prêt pour commencer l’analyse des sentiments.
La première approche était basée sur l’application de TextBlob en tant qu’outil de référence.
Comment fonctionne TextBlob ?
TextBlob est une bibliothèque Python avec un accès API pour plusieurs tâches de traitement du langage naturel. L’analyseur de sentiments de TextBlob peut être utilisé pour la polarité ou pour la subjectivité. Le premier fournit un résultat flottant qui se situe dans une plage [-1,1], -1 indiquant un sentiment négatif et +1 indiquant des sentiments positifs. Dans mon travail, j’ai également utilisé des valeurs 0 pour les sentiments neutres. La subjectivité fournit également un résultat flottant qui se situe dans une plage [0,1]. La subjectivité est généralement utilisée pour exprimer une opinion personnelle, une émotion ou un jugement. Le problème est que TextBlob ignore les mots qui ne font pas partie de son vocabulaire, il s’occupe des mots et des phrases auxquels il peut appliquer une polarité et fait une moyenne pour obtenir le score final.
À ce stade, parce que je ne suis pas sûr de la fiabilité de l’utilisation d’un seul outil et sans comprendre la qualité des résultats, j’ai décidé d’utiliser des outils avancés : Large Language Models (BERT, RoBERTa et DistillBERT) fine-tuned et pré-entraînés sur des tâches d’analyse de sentiment et de classification de texte et récupérés sur la plateforme Hugging Face.
Quelle est la différence entre BERT, RoBERTa et DistillBERT ?
BERT signifie Bidirectional Encoder Representation from Transformer et c’est un modèle de traitement du langage naturel lancé par des chercheurs de Google en 2018. C’est essentiellement une pile d’encodeurs de l’architecture transformer. Une architecture transformer est un réseau encodeur-décodeur qui utilise l’auto-attention du côté encodeur et l’attention du côté décodeur. L’encodeur du transformer est bidirectionnel, ce qui signifie qu’il peut lire une phrase dans les deux sens, de gauche à droite et de droite à gauche. En donnant une phrase en entrée à l’encodeur du transformer, il obtient la représentation contextuelle (embedding) de chaque mot de la phrase en sortie. L’encodeur est capable de comprendre le contexte de chaque mot de la phrase en utilisant le mécanisme d’attention multi-tête (la façon de regarder la relation entre un mot et ses voisins) et renvoie la représentation contextuelle de chaque mot de la phrase en sortie. Pour cette raison, BERT est un modèle d’embedding basé sur le contexte. Lors du processus de pré-entraînement, BERT utilise deux tâches d’apprentissage non supervisées : le Masked Language Modelling (MLM) et la Next Sentence Prediction (NSP). La première tâche masque aléatoirement certains mots dans une phrase et entraîne le modèle à prédire les mots masqués en se basant sur le contexte des mots environnants. La deuxième tâche entraîne le modèle à prédire si deux phrases sont consécutives ou non. Le BERT utilisé dans ce travail est la version fine-tuned de bert-base-multilingual-cased, sur des tweets. En revanche, le modèle de base multilingue BERT est pré-entraîné sur le plus grand corpus Wikipedia de données multilingues.
RoBERTa signifie Robustly Optimized BERT Pre-training Approach, développé par des chercheurs de Facebook AI. Tout comme BERT, il est basé sur l’architecture transformer qui utilise un mécanisme d’auto-attention pour traiter les séquences d’entrée et générer des représentations contextualisées des mots dans une phrase. Contrairement à BERT, il a été entraîné sur un ensemble de données beaucoup plus volumineux et utilise une technique de masquage dynamique lors de l’entraînement qui aide le modèle à apprendre des représentations plus robustes des mots. Le RoBERTa utilisé dans ce travail est la version fine-tuned de twitter-roberta-base-2021–124m, entraîné sur environ 124 millions de tweets de janvier 2018 à décembre 2021.
DistillBERT est une version simplifiée de BERT, ce qui signifie que son objectif est de réduire la taille importante et d’améliorer la vitesse de BERT, il s’agit donc de la version plus petite et plus rapide de BERT. DistillBERT utilise une architecture générale similaire à celle de BERT, mais avec moins de blocs encodeurs et utilise la technique de distillation des connaissances lors de la pré-entraînement, qui consiste à entraîner un modèle plus petit pour imiter le comportement d’un modèle plus grand. Le DistillBERT utilisé dans ce travail est la version fine-tuned de distilbert-base-multilingual-cased, entraîné sur l’ensemble de données amazon_reviews_multi.
Jetons un coup d’œil aux résultats
J’ai utilisé 3 polarités : positive, négative et neutre.
En regardant le premier graphique avec les résultats de TextBlob, le sentiment neutre est dominant au fil du temps du 07/02/2023 au 21/02/2023. Le sentiment neutre diminue avec l’utilisation de RoBERTa, mais de toute façon, il est pertinent avec 53,2 % des tweets au total, malgré 55 % avec TextBlob.
En excluant le sentiment neutre, un problème qui attire l’attention avec TextBlob est que le sentiment négatif ne représente que 15,6 % contre le sentiment positif, égal à 29,4 %, tandis qu’avec les LLMs, le sentiment négatif l’emporte sur le sentiment positif. En quels outils pouvons-nous avoir confiance ? Nous traitons certainement un événement qui génère de la peur, de l’agitation… des émotions négatives typiques, donc les résultats fournis par les LLMS sont plus plausibles que la référence.
En examinant les résultats de BERT, le sentiment neutre diminue, atteignant 35,9%. Il semble capable d’attribuer des polarités beaucoup plus extrêmes que RoBERTa, avec 47,2% de négatif et 16,9% de positif. Le sentiment négatif prend le dessus avec BERT au fil du temps. En revanche, le sentiment neutre ne l’emporte que le 07/02/2023, le 08/02/2023 et le 15/02/2023. Pendant ce temps, le 11/02/2023, il y a une répartition égale des sentiments entre les tweets.
DistillBERT est le dernier outil utilisé pour effectuer l’analyse des sentiments, et dans cette situation, le sentiment neutre a pratiquement disparu, avec seulement 2%. La polarité négative est énorme au fil du temps, avec 74,9%. De plus, dans cette situation, je ne suis pas confiant dans les résultats car, d’un côté, la plus grande polarité négative est cohérente avec l’événement ; d’un autre côté, les tweets sont difficiles à attribuer en termes de positif/négatif, et la présence de nombreux sentiments neutres peut être plausible.
Remarques finales
Avec l’avènement des big data, il est devenu courant pour les entreprises d’utiliser les réseaux sociaux à des fins liées à l’analyse des sentiments, toujours dans le respect de la vie privée, afin de prendre en compte les tendances du marché. Dans ce cas, j’ai utilisé un ensemble de données liées à un événement extrême et, par conséquent, avec peu de données disponibles.
Les modèles pré-entraînés affinés montrent des résultats intéressants, dépassant les approches traditionnelles et, d’un côté, économisant le temps de calcul employé dans l’activité d’étiquetage manuel, d’autre part, ils donnent de bons résultats qui peuvent être plus fiables en affinant davantage les modèles pré-entraînés sur leurs propres données personnalisées. Je tiens à souligner cet aspect car les entreprises peuvent certainement suivre cette voie dans leur stratégie.
Références
ensemble de données
notebook
TextBlob
BERT
RoBERTa
DistillBERT
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Comment le nouveau paradigme de l’IA de Google élimine-t-il le coût de composition dans les algorithmes d’apprentissage automatique à plusieurs étapes pour une utilité améliorée?
- Les chercheurs en intelligence artificielle de Google présentent MADLAD-400 un ensemble de données de domaine Web de 2,8T de jetons qui couvre 419 langues.
- Microsoft Research introduit BatteryML un outil open-source pour l’apprentissage automatique sur la dégradation de la batterie.
- Cet article du groupe Alibaba présente FederatedScope-LLM un ensemble complet pour le réglage fin des LLMs dans l’apprentissage fédéré.
- Une technique de cartographie de la posture pourrait évaluer à distance les patients atteints de paralysie cérébrale
- Un guide rapide sur la normalisation pour votre modèle de traitement du langage naturel
- Comment construire des graphiques en cascade avec Plotly Graph Objects