首页  >  文章  >  后端开发  >  使用Python中的NRC词典进行情感分类

使用Python中的NRC词典进行情感分类

WBOY
WBOY转载
2023-09-12 08:13:02823浏览

使用Python中的NRC词典进行情感分类

情绪识别识别是一个人或一个物体感知环境中表现出的特定情绪并将其放入多种情绪类别之一的能力.

Python 中的

情感分类是传统情感分析技术的可行替代方案,传统情感分析技术将单词或句子标记为积极消极并分配它们相应地具有极性分数

该算法背后的基本思想是模仿人类思维过程,它试图从文本中分割出描绘情感的单词。使用训练数据集执行分析,其中一组预设信息被输入到系统中,作为分类的基础。

这是基于 NLTK 库 中的 WordNet 同义词集和加拿大国家研究委员会 (NRC) 的情感词典的软件包,该词典已超过 27,000 个术语

图书馆使用以下类别来衡量和分类单词的情感效果 -

  • 恐惧

  • 愤怒

  • 期待

  • 信任

  • 惊喜

  • 积极

  • 负面

  • 悲伤

  • 厌恶

  • 喜悦

安装步骤

  • 第 1 步 - 在终端中使用 pip install 命令安装 NRC 模块。

pip install NRCLex
如果您使用的是 Windows,

在 jupyter 中安装

笔记本命令提示符通常遵循相同的步骤。

在 MacO 中安装也遵循相同的命令。直接使用终端。

  • 第 2 步 - 另外安装 textblob 和 nrclex 以避免遇到 MissingCorpusError

  • ul>
    pip install textblob
    
    • 第 3 步 - 从 textblob 下载语料库

    python -m textblob.download_corpora
    

    安装后,我们可以继续导入库并创建文本对象。

    基本方法

    1.原始文本到过滤后的文本(为了获得最佳结果,“文本”应该是 unicode)。

    text_object.load_raw_text(text: str)

    2.将标记化的单词列表转换为标记列表

    text_object.load_token_list(list_of_tokens: list)

    3.返回单词列表。

    text_object.words

    4。返回句子列表。

    text_object.sentences

    5。返回影响列表。

    text_object.affect_list

    6。返回影响字典。

    text_object.affect_dict

    7.返回原始情感计数。

    text_object.raw_emotion_scores

    8。返回最高的情绪。

    text_object.top_emotions

    9。返回频率。

    Text_object.frequencies

    在这里,我们使用 top_emotions 函数根据情感对单词列表进行分类。

    算法

    第 1 步 - 导入 nrclex 导入 nrclex

    步骤 2 - 从 nrclex 导入 NRCLex

    第 3 步 - 初始化您想要分类的字符串单词列表

    步骤 4 - 对于范围 len(text) 内的 i

    第 4 步 -情感 = NRCLex(text[i]) #为每个文本创建一个对象

    第 5 步 -情感.top_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)]
    

    算法

    第 1 步 - 导入 nrclex

    步骤 2 - 从 nrclex 导入 NRCLex

    第 3 步 - 初始化您想要分类的字符串单词列表

    步骤 4 - 对于范围 len(text) 内的 i

    第 4 步 -情感 = NRCLex(text[i]) #为每个文本创建一个对象

    第 5 步 -情感.top_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 情感词典广泛应用于研究和工业领域的情感分析和情感分类任务。这意味着有大量的用户和资源社区可用于支持和进一步开发。 NRCLex 还借助谷歌翻译,为全球 100 多种语言提供稳定的输出,成功打破了语言障碍。这在医疗保健领域有多种应用,可以帮助理解流行病应对措施。实际应用包括心理学和行为科学、假新闻检测和增强人机交互。

以上是使用Python中的NRC词典进行情感分类的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:tutorialspoint.com。如有侵权,请联系admin@php.cn删除