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

WBOY
发布: 2023-09-12 08:13:02
转载
914 人浏览过

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

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

Python 中的

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

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

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

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

  • 恐惧

  • 愤怒

  • 期待

  • 信任

  • 惊喜

  • 积极

  • 负面

  • 悲伤

  • 厌恶

  • 喜悦

安装步骤

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

pip install NRCLex
登录后复制
如果您使用的是 Windows,

在 jupyter 中安装

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

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

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

  • 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板