recherche
Maisondéveloppement back-endTutoriel PythonVisualiser les résultats de l'analyse des sentiments en Python à l'aide de Matplotlib

Dans cet article, nous ajouterons une représentation graphique des résultats de l'analyse des sentiments à l'aide de Matplotlib. L'objectif est de visualiser les scores de sentiments de plusieurs phrases, avec un graphique à barres qui distingue les sentiments positifs et négatifs en utilisant différentes couleurs.

Pré-requis

Assurez-vous que les bibliothèques suivantes sont installées :

pip install transformers torch matplotlib
  • transformateurs : pour gérer les modèles PNL pré-entraînés.
  • torche : Pour exécuter le modèle.
  • matplotlib : Pour créer la représentation graphique des résultats de l'analyse des sentiments.

Code Python avec visualisation

Visualizing Sentiment Analysis Results in Python using Matplotlib

Voici le code Python mis à jour qui intègre l'analyse des sentiments à la visualisation des données.

import matplotlib.pyplot as plt
from transformers import pipeline
from transformers import AutoTokenizer, AutoModelForSequenceClassification

# Load pre-trained model and tokenizer
model_name = "distilbert-base-uncased-finetuned-sst-2-english"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Initialize the sentiment-analysis pipeline
classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)

# List of 10 sentences for sentiment analysis
sentences = [
    "I love you! I love you! I love you!",
    "I feel so sad today.",
    "This is the best day ever!",
    "I can't stand the rain.",
    "Everything is going so well.",
    "I hate waiting in line.",
    "The weather is nice, but it's cold.",
    "I'm so proud of my achievements.",
    "I am very upset with the decision.",
    "I am feeling optimistic about the future."
]

# Prepare data for the chart
scores = []
colors = []

for sentence in sentences:
    result = classifier(sentence)
    sentiment = result[0]['label']
    score = result[0]['score']
    scores.append(score)

    # Color bars based on sentiment: Positive -> green, Negative -> red
    if sentiment == "POSITIVE":
        colors.append("green")
    else:
        colors.append("red")

# Create a bar chart
plt.figure(figsize=(10, 6))
bars = plt.bar(sentences, scores, color=colors)

# Add labels and title with a line break
plt.xlabel('Sentences')
plt.ylabel('Sentiment Score')
plt.title('Sentiment Analysis of 10 Sentences\n')  # Added newline here
plt.xticks(rotation=45, ha="right")

# Adjust spacing with top margin (to add ceiling space)
plt.subplots_adjust(top=0.85)  # Adjust the top spacing (20px roughly equivalent to 0.1 top margin)

plt.tight_layout()  # Adjusts the rest of the layout

# Display the sentiment score on top of the bars
for bar in bars:
    yval = bar.get_height()
    plt.text(bar.get_x() + bar.get_width() / 2, yval + 0.02, f'{yval:.2f}', ha='center', va='bottom', fontsize=9)

# Show the plot
plt.show()

Répartition du code

Importation des bibliothèques nécessaires :
Nous importons matplotlib.pyplot pour créer des tracés et des transformateurs afin d'effectuer une analyse des sentiments.

   import matplotlib.pyplot as plt
   from transformers import pipeline
   from transformers import AutoTokenizer, AutoModelForSequenceClassification

Chargement du modèle pré-entraîné :
Nous chargeons le modèle DistilBERT affiné pour l'analyse des sentiments sur l'ensemble de données SST-2. Nous chargeons également le tokenizer associé qui convertit le texte en jetons lisibles par modèle.

   model_name = "distilbert-base-uncased-finetuned-sst-2-english"
   model = AutoModelForSequenceClassification.from_pretrained(model_name)
   tokenizer = AutoTokenizer.from_pretrained(model_name)

Initialisation du pipeline d'analyse des sentiments :
Le pipeline de classificateur est configuré pour l’analyse des sentiments. Ce pipeline se charge de tokeniser le texte saisi, d'effectuer l'inférence et de renvoyer le résultat.

   classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)

Phrases pour l'analyse des sentiments :
Nous créons une liste de 10 phrases à analyser. Chaque phrase est une expression unique d'un sentiment, allant du très positif au négatif.

   sentences = [
       "I love you! I love you! I love you!",
       "I feel so sad today.",
       "This is the best day ever!",
       "I can't stand the rain.",
       "Everything is going so well.",
       "I hate waiting in line.",
       "The weather is nice, but it's cold.",
       "I'm so proud of my achievements.",
       "I am very upset with the decision.",
       "I am feeling optimistic about the future."
   ]

Traitement des sentiments et préparation des données :
Pour chaque phrase, nous classons son sentiment et extrayons la partition. En fonction de l'étiquette de sentiment (POSITIVE ou NÉGATIF), nous attribuons une couleur aux barres du graphique. Les phrases positives seront vertes, tandis que les négatives seront rouges.

   scores = []
   colors = []

   for sentence in sentences:
       result = classifier(sentence)
       sentiment = result[0]['label']
       score = result[0]['score']
       scores.append(score)

       if sentiment == "POSITIVE":
           colors.append("green")
       else:
           colors.append("red")

Création du graphique à barres :
Nous utilisons matplotlib pour créer un graphique à barres. La hauteur de chaque barre représente le score de sentiment pour une phrase, et les couleurs différencient les sentiments positifs et négatifs.

   plt.figure(figsize=(10, 6))
   bars = plt.bar(sentences, scores, color=colors)

Ajout d'étiquettes et ajustement de la mise en page :
Nous personnalisons l'apparence de l'intrigue en faisant pivoter les étiquettes de l'axe X pour une meilleure lisibilité, en ajoutant un titre et en ajustant la mise en page pour un espacement optimal.

   plt.xlabel('Sentences')
   plt.ylabel('Sentiment Score')
   plt.title('Sentiment Analysis of 10 Sentences\n')  # Added newline here
   plt.xticks(rotation=45, ha="right")
   plt.subplots_adjust(top=0.85)  # Adjust the top spacing
   plt.tight_layout()  # Adjusts the rest of the layout

Affichage des scores de sentiment en haut des barres :
Nous affichons également le score de sentiment en haut de chaque barre pour rendre le graphique plus informatif.

pip install transformers torch matplotlib

Affichage du tracé :
Enfin, le graphique est affiché à l'aide de plt.show(), qui restitue le tracé.

import matplotlib.pyplot as plt
from transformers import pipeline
from transformers import AutoTokenizer, AutoModelForSequenceClassification

# Load pre-trained model and tokenizer
model_name = "distilbert-base-uncased-finetuned-sst-2-english"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Initialize the sentiment-analysis pipeline
classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)

# List of 10 sentences for sentiment analysis
sentences = [
    "I love you! I love you! I love you!",
    "I feel so sad today.",
    "This is the best day ever!",
    "I can't stand the rain.",
    "Everything is going so well.",
    "I hate waiting in line.",
    "The weather is nice, but it's cold.",
    "I'm so proud of my achievements.",
    "I am very upset with the decision.",
    "I am feeling optimistic about the future."
]

# Prepare data for the chart
scores = []
colors = []

for sentence in sentences:
    result = classifier(sentence)
    sentiment = result[0]['label']
    score = result[0]['score']
    scores.append(score)

    # Color bars based on sentiment: Positive -> green, Negative -> red
    if sentiment == "POSITIVE":
        colors.append("green")
    else:
        colors.append("red")

# Create a bar chart
plt.figure(figsize=(10, 6))
bars = plt.bar(sentences, scores, color=colors)

# Add labels and title with a line break
plt.xlabel('Sentences')
plt.ylabel('Sentiment Score')
plt.title('Sentiment Analysis of 10 Sentences\n')  # Added newline here
plt.xticks(rotation=45, ha="right")

# Adjust spacing with top margin (to add ceiling space)
plt.subplots_adjust(top=0.85)  # Adjust the top spacing (20px roughly equivalent to 0.1 top margin)

plt.tight_layout()  # Adjusts the rest of the layout

# Display the sentiment score on top of the bars
for bar in bars:
    yval = bar.get_height()
    plt.text(bar.get_x() + bar.get_width() / 2, yval + 0.02, f'{yval:.2f}', ha='center', va='bottom', fontsize=9)

# Show the plot
plt.show()

Exemple de sortie

Le résultat de ce code sera un graphique à barres affichant les scores de sentiment des 10 phrases. Les phrases positives seront représentées par des barres vertes, tandis que les phrases négatives seront représentées par des barres rouges. Le score de sentiment sera affiché au-dessus de chaque barre, indiquant le niveau de confiance du modèle.

Conclusion

En combinant l'analyse des sentiments avec la visualisation des données, nous pouvons mieux interpréter le ton émotionnel derrière les données textuelles. La représentation graphique de cet article offre une compréhension plus claire de la répartition des sentiments, vous permettant de repérer facilement les tendances dans le texte. Vous pouvez appliquer cette technique à divers cas d'utilisation, comme l'analyse des avis sur les produits, des publications sur les réseaux sociaux ou des commentaires des clients.

Grâce à la puissante combinaison des transformateurs de Hugging Face et de matplotlib, ce flux de travail peut être étendu et personnalisé pour s'adapter à diverses tâches PNL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comment trancher un tableau Python?Comment trancher un tableau Python?May 01, 2025 am 12:18 AM

La syntaxe de base pour le découpage de la liste Python est la liste [Démarrage: arrêt: étape]. 1.Start est le premier index d'élément inclus, 2.STOP est le premier indice d'élément exclu et 3.StEP détermine la taille de l'étape entre les éléments. Les tranches sont non seulement utilisées pour extraire les données, mais aussi pour modifier et inverser les listes.

Dans quelles circonstances les listes pourraient-elles mieux fonctionner que les tableaux?Dans quelles circonstances les listes pourraient-elles mieux fonctionner que les tableaux?May 01, 2025 am 12:06 AM

ListesoutPerformarRaySin: 1) dynamicingizingandfrequentinSertions / Deletions, 2) StoringheteroGeneousData, and3) MemoryEfficiencyForsparsedata, butmayhaveslightperformanceCostSincertorations.

Comment pouvez-vous convertir un tableau Python en une liste Python?Comment pouvez-vous convertir un tableau Python en une liste Python?May 01, 2025 am 12:05 AM

Toconvertapythonarraytoalist, usethelist () Constructororageneratorexpression.1) ImportTheArrayModuleandCreateArray.2) Uselist (Arr) ou [Xforxinarr] à Convertittoalist, considérant la performance et le domaine de l'émie-efficacité pour les étages.

Quel est le but d'utiliser des tableaux lorsque des listes existent dans Python?Quel est le but d'utiliser des tableaux lorsque des listes existent dans Python?May 01, 2025 am 12:04 AM

ChooseArraySoverListsInpyThonforBetterperformanceAndmemeMoryEfficacitéInSpecificScenarios.1) LargenumericalDatasets: ArraySreduceDeMemoryUsage.2)

Expliquez comment itérer les éléments d'une liste et un tableau.Expliquez comment itérer les éléments d'une liste et un tableau.May 01, 2025 am 12:01 AM

Dans Python, vous pouvez utiliser pour les boucles, énumérer et les compréhensions de liste pour traverser les listes; En Java, vous pouvez utiliser des boucles traditionnelles et améliorées pour les boucles pour traverser les tableaux. 1. Les méthodes de traversée de la liste Python incluent: pour la compréhension de la boucle, de l'énumération et de la liste. 2. Les méthodes de traversée du tableau Java comprennent: traditionnel pour la boucle et amélioré pour la boucle.

Qu'est-ce que la déclaration de commutation Python?Qu'est-ce que la déclaration de commutation Python?Apr 30, 2025 pm 02:08 PM

L'article traite de la nouvelle instruction "Match" de Python introduite dans la version 3.10, qui constitue un équivalent pour les instructions de commutation dans d'autres langues. Il améliore la lisibilité du code et offre des avantages de performance par rapport aux if-elif-el traditionnels

Que sont les groupes d'exception à Python?Que sont les groupes d'exception à Python?Apr 30, 2025 pm 02:07 PM

Les groupes d'exception dans Python 3.11 permettent de gérer plusieurs exceptions simultanément, améliorant la gestion des erreurs dans des scénarios simultanés et des opérations complexes.

Que sont les annotations de fonction dans Python?Que sont les annotations de fonction dans Python?Apr 30, 2025 pm 02:06 PM

Les annotations de fonction dans Python ajoutent des métadonnées aux fonctions pour la vérification de type, la documentation et la prise en charge de l'IDE. Ils améliorent la lisibilité du code, la maintenance et sont cruciaux dans le développement de l'API, la science des données et la création de bibliothèques.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft