Vous êtes sur la page 1sur 5

TP : Sentiment analysis avec les transformers

La commande pip install transformers est utilisée pour installer le package transformers, qui donne
accès aux modèles de pointe basés sur Transformer pour les tâches NLP, y compris l'analyse des
sentiments.

Une fois le package Transformers installé, vous pouvez importer et utiliser les modèles basés sur
Transformer dans vos propres projets.

TextClassificationPipeline est un pipeline prédéfini dans la bibliothèque Transformers pour les tâches
de classification de texte. Il consiste en une séquence d'étapes de traitement prédéfinies pour les
données textuelles en langage naturel, telles que la tokenisation, la conversion du texte en
représentations numériques (c'est-à-dire les intégrations) et l'utilisation de ces intégrations comme
entrée dans un classificateur. Le but de ce pipeline est de simplifier le processus de création et de
formation d'un modèle de classification de texte, vous permettant de former rapidement un modèle
avec de bonnes performances sur votre tâche spécifique.

Le code ci-dessus est une démonstration de la façon d'utiliser le package Transformers pour l'analyse
des sentiments en Python.

Importation de la classe pipeline à partir du package transformers : la première ligne du pipeline


d'importation de transformateurs importe la classe pipeline à partir du package transformers. La classe
pipeline fournit une interface simple et pratique pour effectuer des tâches NLP, y compris l'analyse des
sentiments, à l'aide de modèles pré-entraînés basés sur Transformer.

Création d'un pipeline d'analyse des sentiments : la deuxième ligne classification = pipeline('sentiment-
analysis') crée un pipeline d'analyse des sentiments à l'aide de la classe pipeline. L'argument
'sentiment-analysis' spécifie la tâche à effectuer, qui dans ce cas est l'analyse des sentiments.
Avec ces deux lignes de code, vous avez créé un pipeline d'analyse des sentiments qui peut être utilisé
pour classer le sentiment d'un texte donné comme positif, négatif ou neutre. Vous pouvez désormais
utiliser l'objet de classification pour effectuer une analyse des sentiments sur n'importe quel texte en
appelant sa méthode de prévision et en passant le texte comme argument.

1. Charger le dataset de tweeter


Pour ce TP on va travailler avec un dataset de tweeter.

Comme il s'agit de l'analyse des sentiments, nous n'avons besoin que de colonnes de texte et
d'étiquette. Ici, ce sont les sentiments et le contenu des Tweets.

Vérifions le nombre de classes disponibles dans l'ensemble de données et leur distribution.


Ici, nous avons 4 nombres de classes dans notre ensemble de données. Comme nous utilisons un
modèle d'analyse des sentiments pré-entraîné qui est formé sur des classes binaires, par ex. positif et
négatif. Nous filtrons uniquement les données étiquetées positives et négatives.

Désormais, nous ne gardons que les classes positives et négatives. Vérifions la distribution maintenant.

La première ligne définit un dictionnaire target_map qui mappe la variable cible catégorielle d'origine
« sentiment » à une représentation numérique, avec « Positif » mappé à 1 et « Négatif » mappé à 0.

La deuxième ligne applique ce mappage à la colonne « sentiment » du DataFrame df à l'aide de la


méthode map et enregistre le résultat en tant que nouvelle colonne « cible » dans le même DataFrame.
Cela peut être utile pour entraîner des modèles d’apprentissage automatique, qui nécessitent souvent
des variables d’entrée numériques.

Le code ci-dessus extrait la colonne « Contenu du tweet » d'un Pandas DataFrame df et la convertit en
une liste de valeurs de texte.

La ligne df['Tweet content'] sélectionne la colonne 'Tweet content' dans le DataFrame df et la renvoie
en tant qu'objet Pandas Series. La méthode to_list() est ensuite utilisée pour convertir l'objet Series en
une liste de valeurs de texte. La liste de textes résultante contient toutes les valeurs de texte dans la
colonne « Contenu du tweet » du DataFrame.

Il s'agit d'une étape de prétraitement courante lorsque l'on travaille avec des données textuelles dans
l'apprentissage automatique, car de nombreux modèles s'attendent à ce que les entrées de texte soient
représentées sous forme de listes de chaînes.

2. Prédictions
Ici, nous faisons directement des prédictions à l'aide d'un transformateur pré-entraîné. Cela prendra
un moment.

Predictions = classification (texts)

Afficher quelques prédictions


Nous avons obtenu des prédictions sous forme de liste de dictionnaires avec étiquette et score. Voir le
score pour les classes positives et négatives proches de 1. En utilisant ce score, il sera difficile d'évaluer
les performances. Nous allons le convertir en probabilités allant de 0 à 1, 0 tend vers une classe négative
et 1 tend vers une classe positive.

Le code ci-dessus crée une liste de probabilités à partir d'une liste de dictionnaires nommés «
prédictions ». Chaque dictionnaire de la liste « prédictions » possède deux clés : « label » et « score ».

Le code parcourt chaque dictionnaire de la liste « prédictions » et applique la logique suivante pour
chaque dictionnaire :

Si la valeur de la clé « label » commence par la lettre « P », il prend la valeur de la clé « score » comme
probabilité.

Si la valeur de la clé « label » ne commence pas par la lettre « P », il soustrait la valeur de la clé « score
» de 1 et la prend comme probabilité.

Le résultat de cette logique est une nouvelle liste « probs » qui contient les probabilités calculées.
Extraire les étiquettes de la prédiction et créer une nouvelle liste. Ici, nous effectuons une opération
similaire à celle effectuée ci-dessus.

Le code calcule l'exactitude des prédictions binaires stockées dans la liste « preds » en les comparant
aux vraies valeurs stockées dans la colonne « cible » de la trame de données « df ». La précision est
calculée comme la moyenne d'un tableau booléen, créé par comparaison élément par élément de la «
cible » et des « preds ».

Nous avons obtenu une précision de 78,69 %. Nous considérons ici l'exactitude comme une matrice
d'évaluation car nous disposons d'un ensemble de données presque équilibré.

Nous avons atteint une précision de 78 % sans effectuer aucune formation, démontrant ainsi la force
des Transformers. Il s'agissait d'un aperçu de haut niveau de l'utilisation des transformateurs pour
l'analyse des sentiments.

Matrice de confusion

Vous aimerez peut-être aussi