情绪识别或识别是一个人或一个物体感知环境中表现出的特定情绪并将其放入多种情绪类别之一的能力.
Python 中的情感分类是传统情感分析技术的可行替代方案,传统情感分析技术将单词或句子标记为积极或消极并分配它们相应地具有极性分数。
该算法背后的基本思想是模仿人类思维过程,它试图从文本中分割出描绘情感的单词。使用训练数据集执行分析,其中一组预设信息被输入到系统中,作为分类的基础。
这是基于 NLTK 库 中的 WordNet 同义词集和加拿大国家研究委员会 (NRC) 的情感词典的软件包,该词典已超过 27,000 个术语。
图书馆使用以下类别来衡量和分类单词的情感效果 -
恐惧
愤怒
期待
信任
惊喜
积极
负面
悲伤
厌恶
喜悦
第 1 步 - 在终端中使用 pip install 命令安装 NRC 模块。
pip install NRCLex
在 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中文网其他相关文章!