📜  在Python中使用 NRC Lexicon 进行情感分类

📅  最后修改于: 2022-05-13 01:54:52.027000             🧑  作者: Mango

在Python中使用 NRC Lexicon 进行情感分类

很多时候,对于现实世界的项目,情感识别往往只是项目的开始。那个时候在上面写一个完整的代码,不仅会增加时间,而且会阻碍效率。

NRCLexicon是 MIT 批准的pypi项目,由 Mark M. Bailey 设计,可预测给定文本的情绪和情感。该软件包包含大约 27,000 个单词,基于加拿大国家研究委员会 (NRC) 影响词典和NLTK库的WordNet同义词集。

安装:

要安装此模块,请在终端中键入以下命令。

pip install NRCLex

即使安装了这个模块,在运行程序时也可能会出现MissingCorpusError 。因此,建议在命令提示符下使用以下命令也安装textblob.download_corpora

python -m textblob.download_corpora

方法:

  • 导入模块
Python3
# Import required modules
from nrclex import NRCLex


Python3
# Assigning list of words
text = ['hate', 'lovely', 'person', 'worst']


Python3
for i in range(len(text)):
   
    # creating objects
    emotion = NRCLex(text[i])


Python3
# Import module
from nrclex import NRCLex
 
# Assign list of strings
text = ['hate', 'lovely', 'person', 'worst']
 
# 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)


Python3
# Import module
from nrclex import NRCLex
 
# Assign emotion
text = 'love'
 
# Create object
emotion = NRCLex(text)
 
# Using methods to classigy emotion
print('\n', emotion.words)
print('\n', emotion.sentences)
print('\n', emotion.affect_list)
print('\n', emotion.affect_dict)
print('\n', emotion.raw_emotion_scores)
print('\n', emotion.top_emotions)
print('\n', emotion.affect_frequencies)


  • 分配输入文本

蟒蛇3

# Assigning list of words
text = ['hate', 'lovely', 'person', 'worst']
  • 为每个输入文本创建NRCLex对象。

蟒蛇3

for i in range(len(text)):
   
    # creating objects
    emotion = NRCLex(text[i])
  • 应用方法对情绪进行分类。
Sr.MethodDescription
1emotion.words Return words list.
2emotion.sentencesReturn sentences list.
3emotion.affect_listReturn affect list.
4emotion.affect_dictReturn affect dictionary.
5emotion.raw_emotion_scoresReturn raw emotional counts.
6emotion.top_emotionsReturn highest emotions.
7emotion.affect_frequenciesReturn affect frequencies.
  • 测量的情绪影响包括以下内容:
  1. 害怕
  2. 愤怒
  3. 预期
  4. 相信
  5. 惊喜
  6. 积极的
  7. 消极的
  8. 悲伤
  9. 厌恶
  10. 喜悦

下面是实现。

示例 1:

基于上述方法,下面的示例使用top_emotions 对各种情绪进行分类。

蟒蛇3

# Import module
from nrclex import NRCLex
 
# Assign list of strings
text = ['hate', 'lovely', 'person', 'worst']
 
# 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)

输出:

示例 2:

这里使用NCRLex模块的所有方法对单一情感进行分类。

蟒蛇3

# Import module
from nrclex import NRCLex
 
# Assign emotion
text = 'love'
 
# Create object
emotion = NRCLex(text)
 
# Using methods to classigy emotion
print('\n', emotion.words)
print('\n', emotion.sentences)
print('\n', emotion.affect_list)
print('\n', emotion.affect_dict)
print('\n', emotion.raw_emotion_scores)
print('\n', emotion.top_emotions)
print('\n', emotion.affect_frequencies)

输出: