Die Stimmungsanalyse ist überraschend genau und Sie können diese einfache Tkinter-App erstellen, um sie auszuprobieren.
Die Stimmungsanalyse ist eine Technik, um den emotionalen Ton eines Textes zu bestimmen. Es nutzt die Verarbeitung natürlicher Sprache, Textanalyse und Computerlinguistik. Damit können Sie den Ton in positiv, neutral oder negativ klassifizieren. Dies hilft Unternehmen dabei, Kundenfeedback in sozialen Medien, Bewertungen und Umfragen zu analysieren.
Basierend auf diesen Daten können sie ihre Produkte und Kampagnen effektiver strategisieren. Erfahren Sie, wie Sie mit Python eine Anwendung erstellen können, die Stimmungen erkennt.
Das Tkinter- und vaderSentiment-Modul
Mit Tkinter können Sie Desktop-Anwendungen erstellen. Es bietet eine Vielzahl von Widgets wie Schaltflächen, Beschriftungen und Textfelder, die die Entwicklung von Apps erleichtern. Sie können Tkinter verwenden, um Erstellen Sie eine Wörterbuch-App in Python oder zu Erstellen Sie Ihre eigene Nachrichtenanwendung, die Geschichten über eine API aktualisiert.
Um Tkinter zu installieren, öffnen Sie ein Terminal und führen Sie Folgendes aus:
pip install tkinter
VADER (Valence Aware Dictionary and sEntiment Reasoner) ist ein Lexikon und ein regelbasiertes Sentiment-Analysetool. Es ist vorgefertigt und wird häufig verwendet Verarbeitung natürlicher Sprache. Der Algorithmus verfügt über eine Reihe vordefinierter Wörter, die unterschiedliche Gefühle darstellen. Basierend auf den im Satz gefundenen Wörtern ermittelt dieser Algorithmus einen Polaritätswert. Anhand dieser Bewertung können Sie erkennen, ob der Satz positiv, negativ oder neutral ist.
Um das vaderSentiment-Paket in Python zu installieren, führen Sie diesen Terminalbefehl aus:
pip install vaderSentiment
So erkennen Sie Gefühle mit Python
Den Quellcode dieses Beispielprogramms finden Sie in dessen GitHub-Repository.
Beginnen Sie mit dem Importieren der erforderlichen VADER- und tkinter-Module:
aus vaderSentiment.vaderSentiment importieren SentimentIntensityAnalyzer
aus tkinter importieren *
Dann definieren Sie eine Funktion, alles löschen(). Sein Zweck besteht darin, die Eingabefelder zu leeren, was Sie mit dem tun können löschen() Methode ab einem Startindex von 0 zum Schlussindex, ENDE.
defalles löschen():
negativeField.delete(0, ENDE)
neutralField.delete(0, ENDE)
positiveField.delete(0, ENDE)
OverallField.delete(0, ENDE)
textArea.delete(1.0, ENDE)
Definieren Sie eine Funktion, discover_sentiment(). Verwenden Sie die get-Methode, um das eingegebene Wort abzurufen textArea Widget und erstellen Sie ein Objekt von SentimentIntensityAnalyzer Klasse. Benutzen Sie die polarity_scores Methode auf den von Ihnen abgerufenen Text und wenden Sie den VADER-Stimmungsanalysealgorithmus an.
defdiscover_sentiment():
Satz = textArea.get("1.0", "Ende")
sentiment_obj = SentimentIntensityAnalyzer()
sentiment_dict = sentiment_obj.polarity_scores (Satz)
Extrahieren Sie den negativen Sentiment-Score('negativ') und wandeln Sie es in einen Prozentsatz um. Geben Sie den erhaltenen Wert ein negativeField ab Platz 10. Wiederholen Sie den gleichen Vorgang für den neutralen Sentiment-Score('neu') und der positive Sentiment-Score('pos').
string = str (sentiment_dict['negativ'] * 100)
negativeField.insert(10, Zeichenfolge)string = str (sentiment_dict['neu'] * 100)
neutralField.insert(10, Zeichenfolge)
string = str (sentiment_dict['pos'] * 100)
positiveField.insert(10, Zeichenfolge)
Extrahieren Sie den Wert des zusammengesetzten Schlüssels, der die Gesamtstimmung des Satzes enthält. Wenn der Wert größer oder gleich 0,05 ist, ist der Satz positiv. Wenn der Wert kleiner oder gleich -0,05 ist, ist der Satz negativ. Bei Werten zwischen -0,05 und 0,05 handelt es sich um eine neutrale Aussage.
Wenn sentiment_dict['Verbindung'] >= 0.05:
string = "Positiv"
elif sentiment_dict['Verbindung'] <= - 0.05:
string = "Negativ"
anders:
string = "Neutral"
Fügen Sie das Ergebnis in die ein OverallField ab der 10. Stelle:
OverallField.insert(10, Zeichenfolge)
Initialisieren Sie ein grafisches Benutzeroberflächenfenster mit Tkinter. Legen Sie die Hintergrundfarbe, den Titel und die Abmessungen des Fensters fest. Erstellen Sie fünf Etiketten. Eine fordert den Benutzer auf, einen Satz einzugeben, und die anderen vier für die verschiedenen Gefühle. Legen Sie das übergeordnete Element fest, in dem Sie es platzieren möchten, den Text, den es anzeigen soll, die Schriftarten, die es haben soll, sowie die Hintergrundfarbe.
Definieren Sie ein Text-Widget, um den Satz vom Benutzer zu empfangen. Legen Sie das übergeordnete Element fest, in dem Sie es platzieren möchten, seine Höhe, Breite, Schriftarten und die Hintergrundfarbe, die es haben soll. Definieren Sie drei Schaltflächen. Eine zum Durchführen der Stimmungsanalyse, eine zum Löschen des Inhalts nach der Verwendung und eine zum Beenden der Anwendung. Legen Sie das übergeordnete Fenster, den anzuzeigenden Text, die Hintergrundfarbe, die Schriftarten und den Befehl fest, den Sie beim Klicken ausführen möchten.
Wenn __name__ == "__hauptsächlich__":
gui = Tk()
gui.config (Hintergrund=„#A020f0“)
gui.title(„VADER Sentiment-Analysator“)
gui.geometry(„400x700“)
enterText = Label (gui, text=„Geben Sie Ihren Satz ein:“,font=„Arial 15 fett“,bg=„#A020f0“)
negativ = Label (gui, text=„Negativprozentsatz:“, Schriftart=„Arial 15“,bg=„#A020f0“)
neutral = Label (gui, text=„Neutralanteil:“, Schriftart=„Arial 15“,bg=„#A020f0“)
positiv = Label (gui, text=„Positiver Prozentsatz:“, Schriftart=„Arial 15“,bg=„#A020f0“)
Overall = Label (gui, text=„Der Gesamtsatz lautet:“, Schriftart=„Arial 15“,bg=„#A020f0“)
textArea = Text (gui, height=5, Breite=25, Schriftart=„Arial 15“, bg=„#cf9fff“)
check = Button (gui, text=„Sentiment prüfen“, bg=„#e7305b“, Schriftart=(„Arial“, 12, "deutlich"), command=detect_sentiment)
clear = Schaltfläche (gui, text="Klar", bg=„#e7305b“, Schriftart=(„Arial“, 12, "deutlich"), command=clearAll)
Exit = Button (gui, text="Ausfahrt", bg=„#e7305b“, Schriftart=(„Arial“, 12, "deutlich"), Befehl=Beenden)
Definieren Sie vier Eingabefelder für die verschiedenen Stimmungen und legen Sie deren übergeordnetes Fenster und Schriftarten fest.
negativeField = Eintrag (gui, font=„Arial 15“)
neutralField = Eintrag (gui, font=„Arial 15“)
positiveField = Eintrag (gui, font=„Arial 15“)
OverallField = Eintrag (GUI, Schriftart =„Arial 15“)
Verwenden Sie für das Gesamtlayout ein Raster bestehend aus 13 Zeilen und drei Spalten. Platzieren Sie die verschiedenen Elemente wie Beschriftungen, Texteingabefelder und Schaltflächen wie abgebildet in verschiedenen Zeilen und Spalten. Fügen Sie bei Bedarf die erforderliche Polsterung hinzu. Stellen Sie die ein klebrig Option zu „W“ nach links, um die Texte innerhalb der Zelle auszurichten.
enterText.grid (row=0, Spalte=2, pady=15)
textArea.grid (row=1, Spalte=2, padx=60, pady=10, klebrig=W)
check.grid (row=2, Spalte=2, pady=10)
negative.grid (row=3, Spalte=2, pady=10)
neutral.grid (row=5, Spalte=2, pady=10)
positive.grid (row=7, Spalte=2, pady=10)
Overall.grid (row=9, Spalte=2, pady=5)
negativeField.grid (row=4, Spalte=2)
neutralField.grid (row=6, Spalte=2)
positiveField.grid (row=8, Spalte=2)
OverallField.grid (row=10, Spalte=2, pady=10)
clear.grid (row=11, Spalte=2, pady=10)
Exit.grid (row=12, Spalte=2, pady=10)
Der Hauptschleife() Die Funktion weist Python an, die Tkinter-Ereignisschleife auszuführen und auf Ereignisse zu warten, bis Sie das Fenster schließen.
gui.mainloop()
Fügen Sie den gesamten Code zusammen und Sie können das resultierende kurze Programm verwenden, um Stimmungen zu erkennen.
Die Ausgabe der Gefühlserkennung mit Python
Beim Ausführen dieses Programms erscheint das Fenster VADER Sentiment Analyzer. Als wir das Programm anhand eines positiven Satzes testeten, erkannte es ihn mit einer Genauigkeit von 79 %. Beim Versuch einer neutralen und einer negativen Aussage konnte das Programm mit einer Genauigkeit von 100 % bzw. 64,3 % erkennen.
Alternativen zur Stimmungsanalyse mit Python
Sie können Textblob zur Stimmungsanalyse, Sprachkennzeichnung und Textklassifizierung verwenden. Es verfügt über eine konsistente API und einen integrierten Stimmungspolaritätsklassifikator. NLTK ist eine umfassende NLP-Bibliothek, die eine breite Palette an Werkzeugen zur Textanalyse enthält, aber für Anfänger eine steile Lernkurve aufweist.
Eines der beliebtesten Tools ist IBM Watson NLU. Es ist cloudbasiert, unterstützt mehrere Sprachen und verfügt über Funktionen wie Entitätserkennung und Schlüsselextraktion. Mit der Einführung von GPT können Sie die OpenAI-API nutzen und in Ihre Anwendungen integrieren, um genaue und zuverlässige Kundenstimmungen in Echtzeit zu erhalten.