Maison  >  Article  >  développement back-end  >  Classification des sentiments à l'aide du dictionnaire NRC en Python

Classification des sentiments à l'aide du dictionnaire NRC en Python

WBOY
WBOYavant
2023-09-12 08:13:02895parcourir

Classification des sentiments à laide 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.

La

Classification 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 -

  • Peur

  • En colère

  • J'ai hâte d'y être

  • Confiance

  • Surprise

  • Positif

  • Négatif

  • Triste

  • dégoûté

  • joie

Étapes d'installation

  • Étape 1 - Installez le module NRC à l'aide de la commande pip install dans le terminal.

  • pip install NRCLex
    
    Si 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 textblob
    
    ul>
    • Étape 3 - Télécharger le corpus depuis textblob

    • python -m textblob.download_corpora
      
    Aprè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.frequencies

    Ici, 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) 
    

    Sortie

    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)]
    

    Algorithme

    É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

    Exemple

    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) 
    

    Sortie

    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)] 
    

    Conclusion

    Le dictionnaire des sentiments du CNRC est largement utilisé dans les tâches d'analyse et de classification des sentiments dans la recherche et l'industrie. Cela signifie qu'il existe une vaste communauté d'utilisateurs et de ressources disponibles pour l'assistance et le développement ultérieur. NRCLex utilise également Google Translate pour fournir une sortie stable dans plus de 100 langues à travers le monde, éliminant ainsi les barrières linguistiques. Cela a de multiples applications dans le domaine des soins de santé et peut aider à comprendre les réponses à la pandémie. Les applications pratiques incluent la psychologie et les sciences du comportement, la détection des fausses nouvelles et l'amélioration de l'interaction homme-machine.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer