Home > Article > Backend Development > 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
Step 1 - Install the NRC module using the pip install command in the terminal.
pip install NRCLexIf 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
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.
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.
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
# 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)]
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
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)]
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!