Maison > Article > développement back-end > Classification des sentiments à l'aide du dictionnaire NRC en Python
Reconnaissance d'émotion ou Reconnaissance est la capacité d'une personne ou d'un objet à percevoir une émotion spécifique affichée dans l'environnement et à la placer dans l'une des multiples catégories d'émotions.
LaClassification des sentiments en Python est une alternative viable aux techniques traditionnelles d'analyse des sentiments qui marquent les mots ou les phrases comme positifs ou négatifs et les attribuent en conséquence avec des scores de polarité.
L'idée de base derrière cet algorithme est d'imiter le processus de pensée humain, qui tente de segmenter les mots décrivant les émotions du texte. L'analyse est effectuée à l'aide d'un ensemble de données de formation, dans lequel un ensemble prédéfini d'informations est introduit dans le système comme base de classification.
Il s'agit d'un package basé sur le thésaurus WordNet de la bibliothèque NLTK et le lexique des sentiments du Conseil national de recherches du Canada (CNRC), qui compte plus de 27 000 termes .
La bibliothèque utilise les catégories suivantes pour mesurer et classer l'impact émotionnel des mots -
Étape 1 - Installez le module NRC à l'aide de la commande pip install dans le terminal.
pip install NRCLexSi vous utilisez Windows, l'Installation de Notebook et de Invite de commandesdans jupyter suit généralement les mêmes étapes.
L'installation sous MacO suit également la même commande. Utilisez directement le terminal.
Étape 2 - Installez également textblob et nrclex pour éviter de rencontrer MissingCorpusError
pip install textblobul>
Étape 3 - Télécharger le corpus depuis textblob
python -m textblob.download_corporaAprès l'installation, nous pouvons procéder à l'importation de la bibliothèque et créer des objets texte.
Méthode de base
1. Texte original en texte filtré (pour de meilleurs résultats, "texte" doit être unicode).
text_object.load_raw_text(text: str)
2. Convertissez la liste de mots tokenisée en liste de jetons
text_object.load_token_list(list_of_tokens: list)
3. Revenir à la liste de mots.
text_object.words
4. Renvoie une liste de phrases.
text_object.sentences
5. Renvoie la liste des impacts.
text_object.affect_list
6. Renvoie un dictionnaire d'effets.
text_object.affect_dict
7. Renvoyez le nombre d’émotions brutes.
text_object.raw_emotion_scores
8. Retour aux émotions les plus élevées.
text_object.top_emotions
9. Fréquence de retour.
Text_object.frequenciesIci, nous utilisons la fonction top_emotions pour classer une liste de mots en fonction des émotions.
Algorithme
Étape 1 - Importer nrclex Importer nrclex
Étape 2 - Importer NRCLex depuis nrclex
Étape 3 - Initialisez la liste des mots-chaînes que vous souhaitez classer
Étape 4 - pour i dans la plage len(texte)
Étape 4 - Sentiment = NRCLex(text[i]) #Créez un objet pour chaque texte
Étape 5 - emotion.top_emotions #Classifier les émotions
Exemple# 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)]
Étape 1 - Importer nrclex
Étape 2 - Importer NRCLex depuis nrclex
Étape 3 - Initialisez la liste des mots-chaînes que vous souhaitez classer
Étape 4 - pour moi à portée len(texte)
Étape 4 - Sentiment = NRCLex(text[i]) #Créez un objet pour chaque texte
Étape 5 - emotion.top_emotions #Classifier les émotions
Exempleimport 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)]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!