Analyse des sentiments

Analyser des données de médias sociaux avec Python

Alex Hanna

Computational Social Scientist

Comprendre l'analyse des sentiments

  • Méthode
    • Compter les mots positifs/négatifs dans le document
    • Évaluer la positivité/négativité de l'ensemble du document
  • Usages
    • Analyser les réactions à une entreprise, un produit, un politicien ou une politique
Analyser des données de médias sociaux avec Python

Outils d'analyse des sentiments

  • VADER SentimentIntensityAnalyzer()
    • Fait partie de Natural Language Toolkit (nltk)
    • Efficace pour de courts textes comme des tweets
    • Mesure le sentiment de mots précis (p. ex. angry, happy)
    • Tient aussi compte des émoji (😀) et des majuscules (Nice vs NICE)
Analyser des données de médias sociaux avec Python

Mettre en œuvre l'analyse des sentiments

from nltk.sentiment.vader import SentimentIntensityAnalyzer

sid = SentimentIntensityAnalyzer()
sentiment_scores = tweets['text'].apply(sid.polarity_scores)
Analyser des données de médias sociaux avec Python

Interpréter les scores de sentiment

  • Lire des tweets fait partie du processus
    • Présente‑t‑il une validité apparente ? (c.-à-d. cela correspond‑il à votre idée de ce qui est positif ou négatif ?)
Analyser des données de médias sociaux avec Python

Interpréter les scores de sentiment

tweet1 = 'RT @jeffrey_heer: Thanks for inviting me, and thanks 
for the lovely visualization of the talk! ...'
print(sid.polarity_scores(tweet1))
{'neg': 0.0, 'neu': 0.496, 'pos': 0.504, 'compound': 0.9041}
tweet2 = 'i am having problems with google play music'
print(sid.polarity_scores(tweet2)
{'neg': 0.267, 'neu': 0.495, 'pos': 0.238, 'compound': -0.0772}
Analyser des données de médias sociaux avec Python

Générer des moyennes de sentiment

sentiment = sentiment_scores.apply(lambda x: x['compound'])

sentiment_fb = sentiment[check_word_in_tweet('facebook', tweets)] .resample('1 min').mean() sentiment_gg = sentiment[check_word_in_tweet('google', tweets)] .resample('1 min').mean()
Analyser des données de médias sociaux avec Python

Tracer les scores de sentiment

plt.plot(
    sentiment_fb.index.minute, 
    sentiment_fb, color = 'blue'
    )
plt.plot(
    sentiment_g.index.minute, 
    sentiment_gg, color = 'green'
    )   
plt.xlabel('Minute')
plt.ylabel('Sentiment')
plt.title('Sentiment des entreprises')
plt.legend(('Facebook', 'Google'))
plt.show()

Facebook vs. Google : sentiment

Analyser des données de médias sociaux avec Python

Passons à la pratique !

Analyser des données de médias sociaux avec Python

Preparing Video For Download...