


Visualiser 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
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!

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.

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

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.

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

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.

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

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.

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.


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

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

Dreamweaver CS6
Outils de développement Web visuel

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft
