Heim > Artikel > Backend-Entwicklung > Stimmungsklassifizierung mithilfe des NRC-Wörterbuchs in Python
Emotionserkennung oder Erkennung ist die Fähigkeit einer Person oder eines Objekts, eine bestimmte in der Umgebung angezeigte Emotion wahrzunehmen und sie in eine von mehreren Emotionskategorien einzuordnen.
DieStimmungsklassifizierung in Python ist eine praktikable Alternative zu herkömmlichen Stimmungsanalysetechniken, die Wörter oder Sätze als positiv oder negativ markieren und ihnen entsprechend Polaritätswerte zuweisen.
Die Grundidee dieses Algorithmus besteht darin, den menschlichen Denkprozess nachzuahmen, der versucht, Wörter, die Emotionen darstellen, aus dem Text zu segmentieren. Die Analyse erfolgt mithilfe eines Trainingsdatensatzes, bei dem ein voreingestellter Satz an Informationen als Grundlage für die Klassifizierung in das System eingespeist wird.
Dies ist ein Paket, das auf dem WordNet-Thesaurus in der NLTK-Bibliothek und dem Sentiment-Lexikon des National Research Council of Canada (NRC) basiert, das über 27.000 Begriffe enthält.
Die Bibliothek verwendet die folgenden Kategorien, um die emotionale Wirkung von Wörtern zu messen und zu klassifizieren –
Angst
Wütend
Ich freue mich darauf
Vertrauen
Überraschung
Positiv
Negativ
Traurig
angewidert
Freude
Schritt 1 – Installieren Sie das NRC-Modul mit dem Befehl „pip install“ im Terminal.
pip install NRCLexWenn Sie Windows verwenden, erfolgt die
Installation von
Notebook und Eingabeaufforderungin Jupyter im Allgemeinen nach denselben Schritten.Die Installation in MacO folgt ebenfalls dem gleichen Befehl. Nutzen Sie direkt das Terminal.
Schritt 2 – Installieren Sie außerdem Textblob und nrclex, um zu vermeiden, dass MissingCorpusError
pip install textblob
Schritt 3 – Korpus vom Textblob herunterladen
python -m textblob.download_corpora
Nach der Installation können wir mit dem Importieren der Bibliothek fortfahren und Textobjekte erstellen.
1. Originaltext in gefilterten Text (für beste Ergebnisse sollte „Text“ Unicode sein).
text_object.load_raw_text(text: str)
2. Konvertieren Sie eine tokenisierte Wortliste in eine Token-Liste
text_object.load_token_list(list_of_tokens: list)
3. Zurück zur Wortliste.
text_object.words
4. Gibt eine Liste von Sätzen zurück.
text_object.sentences
5. Gibt die Auswirkungsliste zurück.
text_object.affect_list
6. Gibt ein Wörterbuch mit Effekten zurück.
text_object.affect_dict
7. Geben Sie die Anzahl der rohen Emotionen zurück.
text_object.raw_emotion_scores
8. Kehren Sie zu den höchsten Emotionen zurück.
text_object.top_emotions
9. Rücklauffrequenz.
Text_object.frequencies
Hier verwenden wir die Funktion top_emotions, um eine Liste von Wörtern basierend auf Emotionen zu klassifizieren.
Schritt 1 – nrclex importieren nrclex importieren
Schritt 2 – NRCEx aus nrclex importieren
Schritt 3 – Initialisieren Sie die Liste der Zeichenfolgenwörter, die Sie klassifizieren möchten
Schritt 4 - für i
im Bereich len(text)Schritt 4 – Sentiment = NRCLex(text[i]) #Erstellen Sie für jeden Text ein Objekt
Schritt 5 - emotions.top_emotions #Emotionen klassifizieren
# Import module import nrclex from nrclex import NRCLex text = ['happy', 'beautiful', 'exciting', 'depressed'] # Iterate through list for i in range(len(text)): # call by object creation emotion = NRCLex(text[i]) # Classify emotion print('\n', text[i], ': ', emotion.top_emotions)
innocent : [('trust', 0.5), ('positive', 0.5)] hate : [('fear', 0.2), ('anger', 0.2), ('negative', 0.2), ('sadness', 0.2), ('disgust', 0.2)] irritating : [('anger', 0.3333333333333333), ('negative', 0.3333333333333333), ('disgust', 0.3333333333333333)] annoying : [('anger', 0.5), ('negative', 0.5)]
Schritt 1 – nrclex importieren
Schritt 2 – NRCEx aus nrclex importieren
Schritt 3 – Initialisieren Sie die Liste der Zeichenfolgenwörter, die Sie klassifizieren möchten
Schritt 4 – für mich im Bereich len(text)
Schritt 4 – Sentiment = NRCLex(text[i]) #Erstellen Sie für jeden Text ein Objekt
Schritt 5 - emotions.top_emotions #Emotionen klassifizieren
import nrclex from nrclex import NRCLex # Assign list of strings text = ['innocent','hate', 'irritating','annoying'] # Iterate through list for i in range(len(text)): # Create object emotion = NRCLex(text[i]) # Classify emotion print('\n\n', text[i], ': ', emotion.top_emotions)
innocent : [('trust', 0.5), ('positive', 0.5)] hate : [('fear', 0.2), ('anger', 0.2), ('negative', 0.2), ('sadness', 0.2), ('disgust', 0.2)] irritating : [('anger', 0.3333333333333333), ('negative', 0.3333333333333333), ('disgust', 0.3333333333333333)] annoying : [('anger', 0.5), ('negative', 0.5)]
Das NRC-Stimmungswörterbuch wird häufig bei Stimmungsanalysen und Stimmungsklassifizierungsaufgaben in Forschung und Industrie verwendet. Dies bedeutet, dass eine große Benutzergemeinschaft und Ressourcen für Support und Weiterentwicklung zur Verfügung stehen. NRCEx nutzt außerdem Google Translate, um eine stabile Ausgabe für mehr als 100 Sprachen auf der ganzen Welt bereitzustellen und so Sprachbarrieren erfolgreich abzubauen. Dies hat vielfältige Anwendungsmöglichkeiten im Gesundheitswesen und kann helfen, die Reaktionen auf Pandemien zu verstehen. Zu den praktischen Anwendungen gehören Psychologie und Verhaltenswissenschaften, die Erkennung gefälschter Nachrichten und eine verbesserte Mensch-Computer-Interaktion.
Das obige ist der detaillierte Inhalt vonStimmungsklassifizierung mithilfe des NRC-Wörterbuchs in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!