NLP · Sentiment
Analisi del Sentiment
Analisi del Sentiment
su Social Media
Pipeline NLP per sentiment analysis automatizzata su contenuti social con classificazione positivo/neutro/negativo per topic. Approccio lexicon-based con TextBlob, validato su campione etichettato manualmente.
NLP
TextBlob
Python
Pandas
Matplotlib
2.4kTesti analizzati
5Topic
82%Accuracy
3Classi
Distribuzione sentiment per topic
Positivo
Neutro
Negativo
AI & Tech
62%24%14%
Politica
22%31%47%
Sport
55%28%17%
Economia
31%35%34%
Ambiente
38%27%35%
Distribuzione polarity score (TextBlob) — tutti i topic
Snippet chiave
from textblob import TextBlob
import pandas as pd
# Classificazione sentiment
def get_sentiment(text):
blob = TextBlob(str(text))
pol = blob.sentiment.polarity
if pol > 0.1: return 'positivo'
elif pol < -0.1: return 'negativo'
else: return 'neutro'
df['polarity'] = df['text'].apply(lambda x: TextBlob(x).sentiment.polarity)
df['sentiment'] = df['text'].apply(get_sentiment)
# Confronto per topic
pivot = df.groupby(['topic', 'sentiment']).size().unstack(fill_value=0)
import pandas as pd
# Classificazione sentiment
def get_sentiment(text):
blob = TextBlob(str(text))
pol = blob.sentiment.polarity
if pol > 0.1: return 'positivo'
elif pol < -0.1: return 'negativo'
else: return 'neutro'
df['polarity'] = df['text'].apply(lambda x: TextBlob(x).sentiment.polarity)
df['sentiment'] = df['text'].apply(get_sentiment)
# Confronto per topic
pivot = df.groupby(['topic', 'sentiment']).size().unstack(fill_value=0)
Risultati e applicabilità
L'analisi evidenzia pattern di sentiment nettamente diversi per topic: AI & Tech e Sport dominati da sentiment positivo, mentre Politica mostra la distribuzione più negativa (47%).
TextBlob raggiunge un'accuracy dell'82% rispetto a etichette manuali su un campione di 200 testi, performance solida per un approccio lexicon-based senza fine-tuning.
Il sistema è integrabile in dashboard di brand monitoring e social listening per analisi in tempo reale della percezione online di prodotti, servizi o campagne.