L'analisi del sentiment è sorprendentemente accurata e puoi creare questa semplice app Tkinter per provarla.

L'analisi del sentimento è una tecnica per determinare il tono emotivo di un pezzo di testo. Utilizza l'elaborazione del linguaggio naturale, l'analisi del testo e la linguistica computazionale. Usando questo puoi classificare il tono in positivo, neutro o negativo. Questo aiuta le aziende ad analizzare il feedback dei clienti su social media, recensioni e sondaggi.

Sulla base di questi dati, possono elaborare strategie per i loro prodotti e le loro campagne in modo più efficace. Scopri come creare un'applicazione in grado di rilevare i sentimenti utilizzando Python.

Il modulo Tkinter e vaderSentiment

Tkinter ti consente di creare applicazioni desktop. Offre una varietà di widget come pulsanti, etichette e caselle di testo che semplificano lo sviluppo di app. Puoi usare Tkinter per creare un'app dizionario in Python o a crea la tua applicazione di notizie che aggiorna le storie tramite un'API.

instagram viewer

Per installare Tkinter, apri un terminale ed esegui:

pip installa tkinter

VADER (Valence Aware Dictionary and sEntiment Reasoner) è uno strumento di analisi del sentiment basato su lessico e regole. È pre-costruito e ampiamente utilizzato in Elaborazione del linguaggio naturale. L'algoritmo ha una serie di parole predefinite che rappresentano diversi sentimenti. Sulla base delle parole trovate nella frase, questo algoritmo fornisce un punteggio di polarità. Usando questo punteggio, puoi identificare se la frase è positiva, negativa o neutra.

Per installare il pacchetto vaderSentiment in Python, esegui questo comando da terminale:

pip install vaderSentiment

Come rilevare i sentimenti usando Python

Puoi trovare il codice sorgente di questo programma di esempio nel suo file Deposito GitHub.

Inizia importando i moduli VADER e tkinter richiesti:

da vaderSentiment.vaderSentiment importare SentimentIntensityAnalyzer
da tkinter importare *

Quindi definisci una funzione, cancella tutto(). Il suo scopo è cancellare i campi di input, cosa che puoi fare usando il file eliminare() metodo da un indice iniziale di 0 all'indice finale, FINE.

defcancella tutto():
campo negativo.delete(0, FINE)
neutralField.delete(0, FINE)
campopositivo.delete(0, FINE)
complessivoField.delete(0, FINE)
textArea.delete(1.0, FINE)

Definire una funzione, rileva_sentimento(). Utilizzare il metodo get per recuperare la parola inserita nel file textArea widget e creare un oggetto di SentimentIntensityAnalyzer classe. Usa il polarità_punteggi metodo sul testo che hai recuperato e applica l'algoritmo di analisi del sentiment VADER.

defdetect_sentiment():
frase = textArea.get("1.0", "FINE")
sentiment_obj = SentimentIntensityAnalyzer()
sentiment_dict = sentiment_obj.polarity_scores (frase)

Estrai il punteggio del sentiment negativo('negativo') e convertirlo in una percentuale. Inserire il valore ottenuto nel campo negativo a partire dalla posizione 10. Ripeti la stessa procedura per il punteggio del sentiment neutro ('nuovo') e il punteggio del sentimento positivo ('posizione').

 stringa = str (sentiment_dict['negativo'] * 100)
campo negativo.insert(10, corda)

stringa = str (sentiment_dict['nuovo'] * 100)
neutralField.insert(10, corda)

stringa = str (sentiment_dict['posizione'] * 100)
positivoField.insert(10, corda)

Estrai il valore della chiave composta che contiene il sentimento complessivo della frase. Se il valore è maggiore o uguale a 0,05, la frase è positiva. Se il valore è minore o uguale a -0,05, la frase è negativa. Per valori compresi tra -0,05 e 0,05, è un'affermazione neutra.

Se sentimento_dict['composto'] >= 0.05:
stringa = "Positivo"
elif sentimento_dict['composto'] <= - 0.05:
stringa = "Negativo"
altro:
stringa = "Neutro"

Inserisci il risultato nel file complessivoCampo dalla decima posizione:

 complessivoField.insert(10, corda)

Inizializza una finestra dell'interfaccia utente grafica utilizzando Tkinter. Imposta il colore di sfondo, il titolo e le dimensioni della finestra. Crea cinque etichette. Uno che chiede all'utente di inserire una frase e gli altri quattro per i diversi sentimenti. Imposta l'elemento genitore in cui desideri inserirlo, il testo che dovrebbe visualizzare e gli stili di carattere che dovrebbe avere insieme al colore di sfondo.

Definire un widget di testo per ricevere la frase dall'utente. Imposta l'elemento genitore in cui vuoi posizionarlo, la sua altezza, larghezza, stili di carattere e il colore di sfondo che dovrebbe possedere. Definisci tre pulsanti. Uno per eseguire l'analisi del sentiment, uno per cancellare i contenuti dopo l'uso e uno per uscire dall'applicazione. Imposta la finestra madre, il testo che dovrebbe visualizzare, il colore di sfondo, gli stili dei caratteri e il comando che desideri eseguire quando viene fatto clic.

Se __nome__ == "__principale__":
gui = Tk()
gui.config (sfondo="#A020f0")
gui.titolo("Analizzatore di sentimenti VADER")
gui.geometria("400x700")
enterText = Etichetta (gui, text="Inserisci la tua frase: ",carattere="arial 15 grassetto",bg="#A020f0")
negativo = Etichetta (gui, text="Percentuale negativa: ", carattere="ariale 15",bg="#A020f0")
neutro = Etichetta (gui, text="Percentuale neutra: ", carattere="ariale 15",bg="#A020f0")
positivo = Etichetta (gui, text="Percentuale positiva: ", carattere="ariale 15",bg="#A020f0")
generale = Etichetta (gui, text="La frase generale è: ", carattere="ariale 15",bg="#A020f0")
textArea = Testo (gui, altezza=5, larghezza=25, carattere="ariale 15", bg="#cf9fff")
check = Pulsante (gui, text="Controlla il sentimento", bg="#e7305b", carattere=("ariale", 12, "grassetto"), comando=detect_sentiment)
clear = Pulsante (gui, text="Chiaro", bg="#e7305b", carattere=("ariale", 12, "grassetto"), comando=cancellaTutto)
Esci = Pulsante (gui, text="Uscita", bg="#e7305b", carattere=("ariale", 12, "grassetto"), comando=esci)

Definisci quattro campi di immissione per i diversi sentimenti e imposta la finestra principale e gli stili dei caratteri.

 negativeField = Entry (gui, font="ariale 15")
neutralField = Entry (gui, font="ariale 15")
positiveField = Entry (gui, font="ariale 15")
overallField = Voce (gui, font="ariale 15")

Usa una griglia composta da 13 righe e tre colonne per il layout generale. Posiziona i vari elementi come etichette, campi di immissione testo e pulsanti in varie righe e colonne come illustrato. Aggiungi l'imbottitura necessaria dove richiesto. Impostare il appiccicoso opzione a "W" a sinistra allinea i testi all'interno della sua cella.

 enterText.grid (riga=0, colonna=2, pady=15)
textArea.grid (riga=1, colonna=2, padx=60, pady=10, adesivo=W)
check.grid (riga=2, colonna=2, pady=10)
griglia.negativa (riga=3, colonna=2, pady=10)
neutral.grid (riga=5, colonna=2, pady=10)
griglia.positiva (riga=7, colonna=2, pady=10)
global.grid (riga=9, colonna=2, pady=5)
negativeField.grid (riga=4, colonna=2)
neutralField.grid (riga=6, colonna=2)
positivoCampo.griglia (riga=8, colonna=2)
complessivoCampo.griglia (riga=10, colonna=2, pady=10)
clear.grid (riga=11, colonna=2, pady=10)
Exit.grid (riga=12, colonna=2, pady=10)

IL ciclo principale() La funzione dice a Python di eseguire il ciclo di eventi Tkinter e di ascoltare gli eventi finché non chiudi la finestra.

 gui.mainloop()

Metti insieme tutto il codice e puoi utilizzare il breve programma risultante per rilevare i sentimenti.

L'output del rilevamento dei sentimenti tramite Python

Durante l'esecuzione di questo programma, viene visualizzata la finestra VADER Sentiment Analyzer. Quando abbiamo testato il programma su una frase positiva, l'ha rilevata con una precisione del 79%. Provando un'affermazione neutra e una negativa, il programma è stato in grado di rilevare rispettivamente con una precisione del 100% e del 64,3%.

Alternative per l'analisi del sentiment utilizzando Python

Puoi utilizzare Textblob per l'analisi del sentiment, l'etichettatura vocale e la classificazione del testo. Ha un'API coerente e un classificatore di polarità del sentimento integrato. NLTK è una libreria NLP completa che contiene una vasta gamma di strumenti per l'analisi del testo, ma ha una curva di apprendimento ripida per i principianti.

Uno degli strumenti più popolari è IBM Watson NLU. È basato su cloud, supporta diverse lingue e dispone di funzionalità come il riconoscimento delle entità e l'estrazione delle chiavi. Con l'introduzione di GPT, puoi utilizzare l'API OpenAI e integrarla nelle tue applicazioni per ottenere opinioni dei clienti accurate e affidabili in tempo reale.