Home  >  Article  >  Backend Development  >  Sentiment classification using NRC dictionary in Python

Sentiment classification using NRC dictionary in Python

WBOY
WBOYforward
2023-09-12 08:13:02889browse

Sentiment classification using NRC dictionary in Python

Emotion Recognition or Recognition is when a person or an object perceives a specific emotion displayed in the environment and puts it into a variety of emotions Ability of one of the categories.

Sentiment Classification in Python is a viable alternative to traditional sentiment analysis techniques that label words or sentences as positive or negative and Assign them accordingly to have polarity scores.

The basic idea behind this algorithm is to imitate human thinking process, which attempts to segment words that depict emotions from text. The analysis is performed using a training data set, where a preset set of information is fed into the system as the basis for classification.

This is a package based on the WordNet thesaurus in the NLTK library and the National Research Council of Canada (NRC) 's Sentiment Dictionary, which has over 27,000 terms .

The library uses the following categories to measure and classify the emotional impact of words -

  • fear

  • anger

  • expect

  • trust

  • surprise

  • positive

  • negative

  • sad

  • disgust

  • joy

installation steps

  • Step 1 - Install the NRC module using the pip install command in the terminal.

pip install NRCLex
If you are using Windows,

Installing

Notebooks and Command Prompt in jupyter generally follows the same steps.

Installation in MacO also follows the same command. Use the terminal directly.

  • Step 2 - Also install textblob and nrclex to avoid encountering MissingCorpusError

  • ul>
    pip install textblob
    
    • Step 3 - Download the corpus from textblob

    python -m textblob.download_corpora
    

    After installation, we can proceed to import the library and create text objects.

    basic method

    1. Original text to filtered text (for best results, "text" should be unicode).

    text_object.load_raw_text(text: str)

    2. Convert the tokenized word list into a token list

    text_object.load_token_list(list_of_tokens: list)

    3. Return the word list.

    text_object.words

    4. Returns a list of sentences.

    text_object.sentences

    5. Returns the impact list.

    text_object.affect_list

    6. Returns a dictionary of effects.

    text_object.affect_dict

    7. Return the raw emotion count.

    text_object.raw_emotion_scores

    8. Return to the highest emotions.

    text_object.top_emotions

    9. Return frequency.

    Text_object.frequencies

    Here, we use the top_emotions function to classify a list of words based on emotions.

    algorithm

    Step 1 - Import nrclex Import nrclex

    Step 2 - Import NRCLex from nrclex

    Step 3 - Initialize the list of string words you want to classify

    Step 4 - For i

    in the range len(text)

    Step 4 -Emotion = NRCLex(text[i]) #Create an object for each text

    Step 5 -Emotion.top_emotions #Classify emotions

    Example

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

    Output

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

    algorithm

    Step 1 - Import nrclex

    Step 2 - Import NRCLex from nrclex

    Step 3 - Initialize the list of string words you want to classify

    Step 4 - For i in the range len(text)

    Step 4 -Emotion = NRCLex(text[i]) #Create an object for each text

    Step 5 -Emotion.top_emotions #Classify emotions

    Example

    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) 
    

    Output

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

    in conclusion

    NRC sentiment lexicon is widely used in sentiment analysis and sentiment classification tasks in research and industry. This means there is a large community of users and resources available for support and further development. NRCLex also uses Google Translate to provide stable output for more than 100 languages ​​​​around the world, successfully breaking down language barriers. This has multiple applications in healthcare and can help understand pandemic responses. Practical applications include psychology and behavioral science, fake news detection, and enhanced human-computer interaction.

The above is the detailed content of Sentiment classification using NRC dictionary in Python. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete