Iniziare con l’analisi del sentiment su Twitter

Iniziare analizzando sentimenti su Twitter.

L’analisi del sentiment è il processo automatico di classificazione dei dati testuali in base alla loro polarità, come positiva, negativa e neutrale. Le aziende sfruttano l’analisi del sentiment dei tweet per capire come i clienti parlano dei loro prodotti e servizi, ottenere spunti per prendere decisioni aziendali e individuare problemi di prodotto e potenziali crisi di PR in anticipo.

In questa guida, copriremo tutto ciò che devi imparare per iniziare con l’analisi del sentiment su Twitter. Condivideremo un processo passo-passo per fare l’analisi del sentiment, sia per i programmatori che per i non programmatori. Se sei un programmatore, imparerai come utilizzare l’API di inferenza, un’API di machine learning plug & play per fare l’analisi del sentiment dei tweet su larga scala in poche righe di codice. Se non sai come programmare, non preoccuparti! Copriremo anche come fare l’analisi del sentiment con Zapier, uno strumento senza codice che ti permetterà di raccogliere i tweet, analizzarli con l’API di inferenza e infine inviare i risultati a Google Sheets ⚡️

Leggi insieme o vai alla sezione che ti interessa di più:

  1. Cos’è l’analisi del sentiment?
  2. Come fare l’analisi del sentiment su Twitter con il codice?
  3. Come fare l’analisi del sentiment su Twitter senza codice?

Preparati e goditi il viaggio! 🤗

Cos’è l’Analisi del Sentiment?

L’analisi del sentiment utilizza il machine learning per identificare automaticamente come le persone parlano di un determinato argomento. L’uso più comune dell’analisi del sentiment è la rilevazione della polarità dei dati testuali, cioè l’identificazione automatica se un tweet, una recensione di prodotto o un ticket di supporto parla positivamente, negativamente o neutralmente di qualcosa.

Ad esempio, vediamo alcuni tweet che menzionano @Salesforce e vediamo come verrebbero etichettati da un modello di analisi del sentiment:

  • “Più uso @salesforce, più mi piace. È lento e pieno di bug. Ci sono elementi dell’interfaccia utente che sembrano non essere stati aggiornati dal 2006. Frustrazione attuale: le pagine dell’app exchange non smettono di aggiornarsi ogni 10 secondi” –> Questo primo tweet sarebbe etichettato come “Negativo”.

  • “È questo che amo di @salesforce. Che si tratta di relazioni e di prendersi cura delle persone e che non riguarda solo il business e il denaro. Grazie per prenderti cura della #TrailblazerCommunity” –> Al contrario, questo tweet sarebbe classificato come “Positivo”.

  • “Tornando a casa: #Dreamforce torna a San Francisco per il 20° anniversario. Scopri di più: http://bit.ly/3AgwO0H via @Salesforce” –> Infine, questo tweet sarebbe etichettato come “Neutrale” poiché non contiene un’opinione o una polarità.

Fino a poco tempo fa, analizzare i tweet che menzionano un marchio, un prodotto o un servizio era un processo molto manuale, difficile e tedioso; richiedeva a qualcuno di esaminare manualmente i tweet pertinenti, leggerli e classificarli in base al loro sentiment. Come puoi immaginare, non solo questo non scala, è costoso e molto tempo, ma è anche soggetto a errori umani.

Fortunatamente, i recenti progressi nell’AI hanno permesso alle aziende di utilizzare modelli di machine learning per l’analisi del sentiment dei tweet che sono altrettanto validi quanto gli esseri umani. Utilizzando il machine learning, le aziende possono analizzare i tweet in tempo reale 24/7, farlo su larga scala e analizzare migliaia di tweet in pochi secondi e, soprattutto, ottenere gli insight che cercano quando ne hanno bisogno.

Perché fare l’analisi del sentiment su Twitter? Le aziende utilizzano questa tecnica per una vasta gamma di casi d’uso, ma i due casi d’uso più comuni sono l’analisi dei feedback degli utenti e il monitoraggio delle menzioni per rilevare problemi potenziali in anticipo.

Analizza i Feedback su Twitter

Ascoltare i clienti è fondamentale per individuare spunti su come migliorare il proprio prodotto o servizio. Anche se ci sono molte fonti di feedback, come sondaggi o recensioni pubbliche, Twitter offre feedback grezzi e non filtrati su ciò che il tuo pubblico pensa della tua offerta.

Analizzando come le persone parlano del tuo brand su Twitter, puoi capire se gli piace una nuova funzionalità che hai appena lanciato. Puoi anche capire se il tuo prezzo è chiaro per il tuo pubblico target. Puoi anche vedere quali aspetti della tua offerta piacciono di più e cosa non piace per prendere decisioni aziendali (ad esempio, i clienti amano la semplicità dell’interfaccia utente ma odiano la lentezza del supporto clienti).

Monitora le Menzioni su Twitter per Rilevare Problemi

Twitter è diventato il modo predefinito per condividere un’esperienza negativa con un cliente ed esprimere frustrazioni ogni volta che qualcosa va storto durante l’utilizzo di un prodotto o servizio. Le aziende monitorano quindi come gli utenti menzionano il loro brand su Twitter per rilevare eventuali problemi in anticipo.

Implementando un modello di analisi del sentiment che analizza le menzioni in entrata in tempo reale, è possibile ricevere automaticamente avvisi su improvvisi picchi di menzioni negative. La maggior parte delle volte, ciò è causato da una situazione in corso che deve essere affrontata al più presto (ad esempio, un’app che non funziona a causa di interruzioni del server o un’esperienza molto negativa con un rappresentante del servizio clienti).

Ora che abbiamo affrontato cosa sia l’analisi del sentiment e perché sia utile, mettiamoci all’opera e facciamo effettivamente l’analisi del sentiment dei tweet!💥

Come fare l’analisi del sentiment su Twitter con il codice?

Oggi, iniziare con l’analisi del sentiment su Twitter è piuttosto facile e diretto 🙌

Con poche righe di codice, è possibile ottenere automaticamente i tweet, eseguire l’analisi del sentiment e visualizzare i risultati. E puoi imparare come fare tutte queste cose in pochi minuti!

In questa sezione, ti mostreremo come farlo con un piccolo progetto interessante: faremo l’analisi del sentiment dei tweet che menzionano Notion !

Innanzitutto, utilizzerai Tweepy , una libreria Python open source, per ottenere i tweet che menzionano @NotionHQ utilizzando l’API di Twitter . Successivamente, utilizzerai l’API di Inference per effettuare l’analisi del sentiment. Una volta ottenuti i risultati dell’analisi del sentiment, creerai alcuni grafici per visualizzare i risultati e individuare alcune informazioni interessanti.

Puoi utilizzare questo notebook di Google Colab per seguire questo tutorial.

Iniziamo! 💪

  1. Installare le dipendenze

Come primo passo, dovrai installare le dipendenze richieste. Utilizzerai Tweepy per raccogliere i tweet, Matplotlib per creare alcuni grafici e WordCloud per creare una visualizzazione con le parole chiave più comuni:

!pip install -q transformers tweepy matplotlib wordcloud
  1. Configurazione delle credenziali di Twitter

Successivamente, è necessario configurare le credenziali dell’API di Twitter in modo da poter effettuare l’autenticazione con Twitter e quindi raccogliere automaticamente i tweet utilizzando la loro API:

import tweepy
 
# Aggiungi la chiave e il segreto dell'API di Twitter
consumer_key = "XXXXXX"
consumer_secret = "XXXXXX"
 
# Gestione dell'autenticazione con Twitter
auth = tweepy.AppAuthHandler(consumer_key, consumer_secret)
 
# Crea un wrapper per l'API di Twitter
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
  1. Cerca i tweet utilizzando Tweepy

Ora sei pronto per iniziare a raccogliere dati da Twitter! 🎉 Utilizzerai Tweepy Cursor per raccogliere automaticamente 1.000 tweet che menzionano Notion:

# Funzione di supporto per gestire la paginazione nella ricerca e gestire i limiti di velocità
def limit_handled(cursor):
    while True:
        try:
            yield cursor.next()
        except tweepy.RateLimitError:
            print('Raggiunto il limite di velocità. In pausa per >15 minuti')
            time.sleep(15 * 61)
        except StopIteration:
            break
 
# Definisci il termine che utilizzerai per cercare i tweet
query = '@NotionHQ'
query = query + ' -filter:retweets'
 
# Definisci quanti tweet ottenere dall'API di Twitter
count = 1000
 
# Cerca i tweet utilizzando Tweepy
search = limit_handled(tweepy.Cursor(api.search,
                       q=query,
                       tweet_mode='extended',
                       lang='en',
                       result_type="recent").items(count))
 
# Elabora i risultati della ricerca utilizzando Tweepy
tweets = []
for result in search:
    tweet_content = result.full_text
    tweets.append(tweet_content) # Salva solo il contenuto del tweet.
  1. Analisi dei tweet con analisi del sentiment

Ora che hai i dati, sei pronto per analizzare i tweet con l’analisi del sentiment! 💥

Utilizzerai l’API di Inference , un’API facile da usare per integrare modelli di apprendimento automatico tramite semplici chiamate API. Con l’API di Inference, puoi utilizzare modelli all’avanguardia per l’analisi del sentiment senza dover affrontare la complessità di costruire l’infrastruttura per l’apprendimento automatico o occuparti della scalabilità del modello. Puoi servire i modelli open source più recenti (e migliori!) per l’analisi del sentiment rimanendo al di fuori del MLOps. 🤩

Per utilizzare l’API di Inference, prima dovrai definire il tuo model id e il tuo Hugging Face API Token :

  • Il model ID serve per specificare quale modello desideri utilizzare per effettuare le previsioni. Hugging Face ha più di 400 modelli per l’analisi del sentiment in più lingue , inclusi vari modelli appositamente addestrati per l’analisi del sentiment dei tweet. Per questo particolare tutorial, utilizzerai twitter-roberta-base-sentiment-latest , un modello di analisi del sentiment addestrato su ≈124 milioni di tweet e perfezionato per l’analisi del sentiment.

  • Dovrai anche specificare il tuo token Hugging Face ; puoi ottenerne uno gratuitamente registrandoti qui e quindi copiando il tuo token in questa pagina .

modello = "cardiffnlp/twitter-roberta-base-sentiment-latest"
hf_token = "XXXXXX" 

Successivamente, creerai la chiamata API utilizzando l’ID del modello e il hf_token :

API_URL = "https://api-inference.huggingface.co/models/" + modello
headers = {"Authorization": "Bearer %s" % (hf_token)}

def analisi(data):
    payload = dict(inputs=data, options=dict(wait_for_model=True))
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.json()

Ora sei pronto per effettuare l’analisi del sentimento su ogni tweet. 🔥🔥🔥

analisi_tweet = []
for tweet in tweets:
    try:
        risultato_sentimento = analisi(tweet)[0]
        sentimento_top = max(risultato_sentimento, key=lambda x: x['score']) # Ottieni il sentimento con il punteggio più alto
        analisi_tweet.append({'tweet': tweet, 'sentimento': sentimento_top['label']})
 
    except Exception as e:
        print(e)
  1. Esplora i risultati dell’analisi del sentimento

Ti chiedi se le persone su Twitter parlano positivamente o negativamente di Notion? O di cosa parlano gli utenti quando parlano positivamente o negativamente di Notion? Utilizzeremo qualche visualizzazione dei dati per esplorare i risultati dell’analisi del sentimento e scoprirlo!

Prima di tutto, vediamo degli esempi di tweet che sono stati etichettati per ogni sentimento per avere un’idea delle diverse polarità di questi tweet:

import pandas as pd
 
# Carica i dati in un dataframe
pd.set_option('max_colwidth', None)
pd.set_option('display.width', 3000)
df = pd.DataFrame(analisi_tweet)
 
# Mostra un tweet per ogni sentimento
display(df[df["sentimento"] == 'Positivo'].head(1))
display(df[df["sentimento"] == 'Neutrale'].head(1))
display(df[df["sentimento"] == 'Negativo'].head(1))

Risultati:

@thenotionbar @hypefury @NotionHQ That’s genuinely smart. So basically you’ve setup your posting queue to by a recurrent recycling of top content that runs 100% automatic? Sentimento: Positivo

@itskeeplearning @NotionHQ How you've linked gallery cards? Sentimento: Neutrale

@NotionHQ Running into an issue here recently were content is not showing on on web but still in the app. This happens for all of our pages. https://t.co/3J3AnGzDau. Sentimento: Negativo

Successivamente, conterai il numero di tweet che sono stati etichettati come positivi, negativi e neutrali:

conteggio_sentimento = df.groupby(['sentimento']).size()
print(conteggio_sentimento)

Notevolmente, la maggior parte dei tweet su Notion sono positivi:

sentimento
Negativo     82
Neutrale     420
Positivo    498

Poi, creeremo un grafico a torta per visualizzare ogni sentimento in termini relativi:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6), dpi=100)
ax = plt.subplot(111)
conteggio_sentimento.plot.pie(ax=ax, autopct='%1.1f%%', startangle=270, fontsize=12, label="")

È interessante vedere che il 50% di tutti i tweet è positivo e solo l’8,2% è negativo:

Risultati dell’analisi del sentimento dei tweet che menzionano Notion

Come ultimo passo, creeremo delle wordcloud per vedere quali parole vengono più utilizzate per ogni sentimento:

from wordcloud import WordCloud
from wordcloud import STOPWORDS
 
# Wordcloud con tweet positivi
tweet_positivi = df['tweet'][df["sentimento"] == 'Positivo']
stop_words = ["https", "co", "RT"] + list(STOPWORDS)
wordcloud_positivo = WordCloud(max_font_size=50, max_words=50, background_color="white", stopwords = stop_words).generate(str(tweet_positivi))
plt.figure()
plt.title("Tweet Positivi - Wordcloud")
plt.imshow(wordcloud_positivo, interpolation="bilinear")
plt.axis("off")
plt.show()
 
# Wordcloud con tweet negativi
tweet_negativi = df['tweet'][df["sentimento"] == 'Negativo']
stop_words = ["https", "co", "RT"] + list(STOPWORDS)
wordcloud_negativo = WordCloud(max_font_size=50, max_words=50, background_color="white", stopwords = stop_words).generate(str(tweet_negativi))
plt.figure()
plt.title("Tweet Negativi - Wordcloud")
plt.imshow(wordcloud_negativo, interpolation="bilinear")
plt.axis("off")
plt.show()

Curiosamente, alcune delle parole che emergono dai tweet positivi includono “note”, “cron” e “paid”:

Nuvola di parole per i tweet positivi

Al contrario, “figma”, “enterprise” e “account” sono alcune delle parole più utilizzate nei tweet negativi:

Nuvola di parole per i tweet negativi

È stato divertente, vero?

Con poche righe di codice, sei stato in grado di raccogliere automaticamente i tweet che menzionano Notion utilizzando Tweepy, analizzarli con un modello di analisi del sentiment utilizzando l’API di Inference e infine creare alcune visualizzazioni per analizzare i risultati. 💥

Sei interessato a fare di più? Come prossimo passo, potresti utilizzare un secondo classificatore di testo per classificare ogni tweet in base al tema o all’argomento. In questo modo, ogni tweet verrà etichettato con sentiment e argomento e potrai ottenere approfondimenti più dettagliati (ad esempio, gli utenti elogiano la facilità d’uso di Notion ma si lamentano del prezzo o del supporto clienti?).

Come fare l’analisi del sentiment di Twitter senza codifica?

Per iniziare con l’analisi del sentiment, non è necessario essere uno sviluppatore o sapere come programmare. 🤯

Esistono alcune incredibili soluzioni senza codice che ti consentiranno di fare facilmente l’analisi del sentiment in pochi minuti.

In questa sezione, userai Zapier, uno strumento senza codice che consente agli utenti di collegare più di 5000 app con un’interfaccia utente semplice da usare. Creerai uno Zap, che viene attivato ogni volta che qualcuno menziona Notion su Twitter. Lo Zap utilizzerà quindi l’API di Inference per analizzare il tweet con un modello di analisi del sentiment e infine salverà i risultati su Google Sheets:

  1. Passaggio 1 (trigger): Ottenere i tweet.
  2. Passaggio 2: Analizzare i tweet con l’analisi del sentiment.
  3. Passaggio 3: Salvare i risultati su Google Sheets.

Niente paura, non ci vorrà molto tempo; in meno di 10 minuti, creerai e attiverai lo Zap e inizierai a vedere i risultati dell’analisi del sentiment che compariranno su Google Sheets.

Cominciamo! 🚀

Passaggio 1: Ottenere i Tweet

Per iniziare, dovrai creare uno Zap e configurare il primo passaggio del tuo Zap, chiamato anche passaggio “Trigger”. Nel tuo caso, dovrai impostarlo in modo che attivi lo Zap ogni volta che qualcuno menziona Notion su Twitter. Per impostarlo, segui i seguenti passaggi:

  • Seleziona “Twitter” e seleziona “Ricerca menzione” come evento su “Scegli app e evento”.
  • Quindi collega il tuo account Twitter a Zapier.
  • Configura il trigger specificando “NotionHQ” come termine di ricerca per questo trigger.
  • Infine, testa il trigger per assicurarti che raccoglie i tweet e funziona correttamente.

Passaggio 1 nello Zap

Passaggio 2: Analizzare i Tweet con l’Analisi del Sentiment

Ora che il tuo Zap può raccogliere i tweet che menzionano Notion, aggiungiamo un secondo passaggio per fare l’analisi del sentiment. 🤗

Utilizzerai l’API di Inference, un’API facile da usare per l’integrazione di modelli di apprendimento automatico. Per utilizzare l’API di Inference, dovrai definire il tuo “modello id” e il tuo “Hugging Face API Token”:

  • Il modello ID serve per indicare all’API di Inference quale modello desideri utilizzare per fare le previsioni. Per questa guida, utilizzerai twitter-roberta-base-sentiment-latest, un modello di analisi del sentiment addestrato su circa 124 milioni di tweet e affinato per l’analisi del sentiment. Puoi esplorare i più di 400 modelli disponibili su Hugging Face Hub per l’analisi del sentiment nel caso in cui desideri utilizzare un modello diverso (ad esempio, fare l’analisi del sentiment in una lingua diversa).

  • Dovrai anche specificare il tuo Hugging Face token; puoi ottenerne uno gratuitamente registrandoti qui e quindi copiando il tuo token in questa pagina.

Una volta ottenuto il tuo modello ID e il tuo Hugging Face token ID, torna al tuo Zap e segui queste istruzioni per configurare il secondo passaggio dello zap:

  1. Seleziona “Code by Zapier” e “Esegui Python” in “Scegli app e evento”.
  2. Nella sezione “Configura azione”, dovrai prima aggiungere il “testo completo” del tweet come “input_data”. Quindi dovrai aggiungere queste 28 righe di codice Python nella sezione “Codice”. Questo codice consentirà allo Zap di chiamare l’API di Inference e fare le previsioni con l’analisi del sentiment. Prima di aggiungere questo codice al tuo zap, assicurati di fare quanto segue:
    • Cambia la riga 5 e aggiungi il tuo token Hugging Face, cioè invece di hf_token = "AGGIUNGI_IL_TUO_TOKEN_HUGGING_FACE_QUI", dovrai cambiarlo in qualcosa del genere hf_token = "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"
    • Se desideri utilizzare un modello diverso per l’analisi del sentiment, dovrai modificare la riga 4 e specificare l’ID del nuovo modello qui. Ad esempio, invece di utilizzare il modello predefinito, potresti utilizzare questo modello per fare l’analisi del sentiment sui tweet in spagnolo modificando questa riga model = "cardiffnlp/twitter-roberta-base-sentiment-latest" in model = "finiteautomata/beto-sentiment-analysis".
  3. Infine, testa questo passaggio per assicurarti che faccia previsioni e funzioni correttamente.

Passo 2 sullo Zap

Passo 3: Salva i risultati su Google Sheets

Come ultimo passo del tuo Zap, salverai i risultati dell’analisi del sentiment su un foglio di calcolo su Google Sheets e visualizzerai i risultati. 📊

Prima di tutto, crea un nuovo foglio di calcolo su Google Sheets e definisci le seguenti colonne:

  • Tweet: questa colonna conterrà il testo del tweet.
  • Sentiment: conterrà l’etichetta dei risultati dell’analisi del sentiment (ad esempio positivo, negativo e neutrale).
  • Score: memorizzerà il valore che riflette quanto il modello sia sicuro della sua previsione.
  • Data: conterrà la data del tweet (che può essere utile per creare grafici nel tempo).

Successivamente, segui queste istruzioni per configurare questo ultimo passo:

  1. Seleziona Google Sheets come app e “Crea riga del foglio di calcolo” come evento in “Scegli app ed evento”.
  2. Quindi collega il tuo account Google Sheets a Zapier.
  3. Successivamente, dovrai configurare l’azione. Prima di tutto, dovrai specificare il valore di Google Drive (ad esempio, My Drive), quindi selezionare il foglio di calcolo e infine il foglio di lavoro in cui desideri che Zapier scriva automaticamente nuove righe. Una volta fatto ciò, dovrai associare ogni colonna del foglio di calcolo ai valori che desideri utilizzare quando il tuo zap scrive automaticamente una nuova riga nel file. Se hai creato le colonne che abbiamo suggerito prima, dovrebbe apparire come segue (colonna → valore):
    • Tweet → Testo completo (valore dal passo 1 dello zap)
    • Sentiment → Etichetta del sentiment (valore dal passo 2)
    • Sentiment Score → Punteggio di sentiment (valore dal passo 2)
    • Data → Creato il (valore dal passo 1)
  4. Infine, testa questo ultimo passo per assicurarti che possa aggiungere una nuova riga al tuo foglio di calcolo. Dopo aver confermato che funziona, puoi eliminare questa riga dal tuo foglio di calcolo.

Passo 3 sullo Zap

4. Attiva il tuo Zap

A questo punto, hai completato tutti i passaggi del tuo zap! 🔥

Ora devi solo attivarlo in modo che possa iniziare a raccogliere tweet, analizzarli con l’analisi del sentiment e archiviare i risultati su Google Sheets. ⚡️

Per attivarlo, fai clic sul pulsante “Pubblica” in fondo allo schermo:

Attivazione dello Zap

Dopo alcuni minuti, vedrai come il tuo foglio di calcolo inizia a popolarsi con i tweet e i risultati dell’analisi del sentiment. Puoi anche creare un grafico che può essere aggiornato in tempo reale man mano che arrivano i tweet:

Tweet che compaiono su Google Sheets

Molto figo, vero? 🚀

Conclusione

Twitter è la piazza pubblica dove le persone condividono i loro pensieri su ogni tipo di argomento. Dalle persone che parlano di politica, sport o tecnologia, agli utenti che condividono le loro opinioni su una nuova app brillante, o ai passeggeri che si lamentano con una compagnia aerea di un volo cancellato, la quantità di dati su Twitter è enorme. L’analisi del sentiment consente di dare un senso a tutti questi dati in tempo reale per scoprire informazioni che possono guidare le decisioni aziendali.

Felizmente, strumenti come l’API di inferenza rendono molto facile iniziare con l’analisi del sentiment su Twitter. Non importa se sai o non sai programmare e/o non hai esperienza di machine learning, in pochi minuti puoi configurare un processo che può raccogliere tweet in tempo reale, analizzarli con un modello all’avanguardia per l’analisi del sentiment ed esplorare i risultati con alcune visualizzazioni interessanti. 🔥🔥🔥

Se hai domande, puoi chiederle nel forum Hugging Face in modo che la comunità di Hugging Face possa aiutarti e gli altri possano beneficiare della discussione. Puoi anche unirti al nostro server Discord per parlare con noi e con l’intera comunità di Hugging Face.