Voraussetzungen: Einführung in tkinter | Sentiment Analysus mit Vader

Python bietet mehrere Optionen zum Entwickeln einer grafischen Benutzeroberfläche (GUI). Von allen GUI-Methoden ist Tkinter die am häufigsten verwendete Methode. Python mit Tkinter gibt den schnellsten und einfachsten Weg aus, um GUI-Anwendungen zu erstellen. In diesem Artikel erfahren Sie anhand einer schrittweisen Anleitung, wie Sie mit Tkinter eine GUI-Anwendung für den Sentiment Detector erstellen.
 

So erstellen Sie einen tkinter:

  • Modul importieren - tkinter
  • Erstellen Sie das Hauptfenster (Container)
  • Fügen Sie dem Hauptfenster eine beliebige Anzahl von Widgets hinzu.
  • Wenden Sie den Ereignisauslöser auf die Widgets an.

Die GUI würde wie folgt aussehen:



Lassen Sie uns eine GUI-basierte Sentiment Detector-Anwendung erstellen, die die vom Benutzer angegebenen Gefühle in Bezug auf die angegebenen Sätze anzeigen kann.
 

Unten ist die Implementierung: 

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer 
 
from tkinter import *
 
def clearAll() : 
   
    
    negativeField.delete(0, END) 
    neutralField.delete(0, END) 
    positiveField.delete(0, END) 
    overallField.delete(0, END) 
 
    
    textArea.delete(1.0, END)
     
def detect_sentiment():
 
    
    sentence = textArea.get("1.0", "end")
 
    
    sid_obj = SentimentIntensityAnalyzer() 
 
    
    
    
    sentiment_dict = sid_obj.polarity_scores(sentence) 
 
    string = str(sentiment_dict['neg']*100) + "% Negative"
    negativeField.insert(10, string)
     
 
    string = str(sentiment_dict['neu']*100) + "% Neutral"
    neutralField.insert(10, string)
 
    string = str(sentiment_dict['pos']*100) +"% Positive"
    positiveField.insert(10, string)
     
    
    if sentiment_dict['compound'] >= 0.05 :
        string = "Positive"
 
    elif sentiment_dict['compound'] <= - 0.05 :
        string = "Negative"
      
 
    else :
        string = "Neutral"
 
    overallField.insert(10, string)
         
 
 
if __name__ == "__main__" :
     
 
    
    gui = Tk() 
     
    
    gui.config(background =  "light green") 
 
    
    gui.title("Sentiment Detector") 
 
    
    gui.geometry("250x400") 
 
    
    enterText = Label(gui, text = "Enter Your Sentence",
                                     bg = "light green")
 
    
    
    
    textArea = Text(gui, height = 5, width = 25, font = "lucida 13")
 
    
    
    
    check = Button(gui, text = "Check Sentiment", fg = "Black", 
                         bg = "Red", command = detect_sentiment)
 
    
    negative = Label(gui, text = "sentence was rated as: ",
                                        bg = "light green") 
   
    
    neutral = Label(gui, text = "sentence was rated as: ", 
                                       bg = "light green") 
   
    
    positive = Label(gui, text = "sentence was rated as: ",
                                        bg = "light green")
 
    
    overall = Label(gui, text = "Sentence Overall Rated As: ",
                                           bg = "light green")
 
    
    negativeField = Entry(gui)
 
    
    neutralField = Entry(gui)
 
    
    positiveField = Entry(gui)
 
    
    overallField = Entry(gui) 
 
    
    
    
    clear = Button(gui, text = "Clear", fg = "Black", 
                      bg = "Red", command = clearAll)
     
    
    
    
    Exit = Button(gui, text = "Exit", fg = "Black", 
                        bg = "Red", command = exit)
 
    
    
    
    enterText.grid(row = 0, column = 2)
     
    textArea.grid(row = 1, column = 2, padx = 10, sticky = W)
     
    check.grid(row = 2, column = 2)
     
    negative.grid(row = 3, column = 2)
     
    neutral.grid(row = 5, column = 2)
     
    positive.grid(row = 7, column = 2)
     
    overall.grid(row = 9, column = 2)
     
    negativeField.grid(row = 4, column = 2)
 
    neutralField.grid(row = 6, column = 2)
                       
    positiveField.grid(row = 8, column = 2)
     
    overallField.grid(row = 10, column = 2)
     
    clear.grid(row = 11, column = 2)
     
    Exit.grid(row = 12, column = 2)
 
    
    gui.mainloop() 
    

Ausgabe :