基于NRC词典的情感分析(含多种离散情绪)——python
NRC词典简介:
NRC词典由加拿大国家研究委员会(简称NRC)的专家创建,目前已有多种语言版本,我们可以用其中文版本来进行情感分析。使用一系列单词来帮助识别情绪,情感,并分析标签,表情符号和单词颜色的关联。
词典中包含情绪的类别主要有以下几种:
我们可以用以下代码看词典中情感相关内容:
import pandas as pd
lexion_df = pd.read_excel('E:/JupyterProject/mybook-main/mybook-main/data/Textmining/NRC-Emotion-Lexicon-v0.92-In105Languages-Nov2017Translations.xlsx')
lexion_df.head()
lexion_df.columns.tolist()
chinese_df = lexion_df[['Chinese (Simplified) (zh-CN)','Positive','Negative','Anger','Anticipation','Disgust','Fear','Joy','Sadness','Surprise','Trust']]
chinese_df.head()
前几行数据如下:
用如下代码构建词语列表:
Positive, Negative, Anger, Anticipation, Disgust, Fear, Joy, Sadness, Surprise, Trust= [[] for i in range(10)]
for idx, row in chinese_df.iterrows():if row['Positive']==1:Positive.append(row['Chinese (Simplified) (zh-CN)'])if row['Negative']==1:Negative.append(row['Chinese (Simplified) (zh-CN)'])if row['Anger']==1:Anger.append(row['Chinese (Simplified) (zh-CN)'])if row['Anticipation']==1:Anticipation.append(row['Chinese (Simplified) (zh-CN)'])if row['Disgust']==1:Disgust.append(row['Chinese (Simplified) (zh-CN)'])if row['Fear']==1:Fear.append(row['Chinese (Simplified) (zh-CN)'])if row['Joy']==1:Joy.append(row['Chinese (Simplified) (zh-CN)'])if row['Sadness']==1:Sadness.append(row['Chinese (Simplified) (zh-CN)'])if row['Surprise']==1:Surprise.append(row['Chinese (Simplified) (zh-CN)'])if row['Trust']==1:Trust.append(row['Chinese (Simplified) (zh-CN)'])print('词语列表构建完成')
用下面的代码计算句子各种情感的词汇数量:
import jieba
import timedef emotion_caculate(text):positive, negative, anger, anticipation, disgust, fear, joy, sadness, surprise, trust = [0 for i in range(10)]line = processing(text) #数据清洗wordlist = seg_depart(line) #将句子分词并去除停用词(分词函数之前的文章有介绍)wordset = set(wordlist) #将列表转化为集合(去重)wordfreq = []for word in wordset:freq = wordlist.count(word)if word in Positive:positive+=freqif word in Negative:negative+=freqif word in Anger:anger+=freq if word in Anticipation:anticipation+=freqif word in Disgust:disgust+=freqif word in Fear:fear+=freqif word in Joy:joy+=freqif word in Sadness:sadness+=freqif word in Surprise:surprise+=freqif word in Trust:trust+=freqemotion_info = {'positive': positive,'negative': negative,'anger': anger,'anticipation': anticipation,'disgust': disgust,'fear':fear,'joy':joy,'sadness':sadness,'surprise':surprise,'trust':trust,'length':len(wordlist)}score_list = list(emotion_info.values())return score_list
计算文档中各个句子包含的情感强度(用词汇数量表示)并存到另一个文件中:
def emotion_analyse():filename = r'C:\test.csv'senti_count = []with open(filename, 'r', encoding='UTF-8') as csvfile:next(csvfile)reader = csv.reader(csvfile)for row in reader:score = emotion_caculate(row[1])senti_count.append(score)print(senti_count)name = [ 'positive', 'negative', 'anger', 'anticipation','disgust','fear','joy','sadness','surprise','trust','length']test = pd.DataFrame(columns=name, data=senti_count)test.to_csv(r"C:\test_result.csv")
基于NRC词典的情感分析(含多种离散情绪)——python相关推荐
- [Python人工智能] 二十二.基于大连理工情感词典的情感分析和情绪计算
从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了CNN实现中文文本分类的过程,并与贝叶斯.决策树.逻辑回归.随机森林.KNN.SVM等分类算法进行对比.这篇 ...
- 实体词典 情感词典_基于词典的情感分析——简单实例
基于词典的情感分析方法非常容易被理解,主要利用情感词判断一句话或者一篇文章的情感倾向,下面的程序利用BosonNLP情感词典(从https://bosonnlp.com/dev/resource 下载 ...
- yes or no?基于词典的情感分析法
自更博以来第一次断更,现在先把文本分析的坑补上,这篇文章着重介绍情感分析的两种基本方法之一:基于词典的情感分析(下篇讲基于监督的情感分析),建模环境为R. 目录 1 背景与目的 1.1 情感分析的应用 ...
- 基于情感词典的情感分析
思路以及代码都来源于下面两篇文章: 一个不知死活的胖子:Python做文本情感分析之情感极性分析 Ran Fengzheng 的博客:基于情感词典的文本情感极性分析相关代码 基于情感词典的情感分析应该 ...
- 基于AdaBoost算法的情感分析研究
源码下载 http://www.byamd.xyz/hui-zong-1/ 基于AdaBoost算法的情感分析研究 摘 要 随着互联网的快速发展,各类社交媒体平台如微信.QQ等也与日俱增,而微博更是集 ...
- 基于Transformer的文本情感分析编程实践(Encoder编码器-Decoder解码器框架 + Attention注意力机制 + Positional Encoding位置编码)
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...
- 综述:基于深度学习的情感分析
近年来,深度学习有了突破性发展,NLP 领域里的情感分析任务逐渐引入了这种方法,并形成了很多业内最佳结果.本文中,来自领英与伊利诺伊大学芝加哥分校的研究人员对基于深度学习的情感分析研究进行了详细论述. ...
- 机器学习基于语义特征的情感分析
基于语义特征的情感分析先人已有研究,可以通过情感词典匹配来做,但是应用机器学习在这方面会使精确度更高些. 以本人参与的一个项目为主,总结下相关技术点. 背景是:分析用户评论感情色彩是积极还是消极,即是 ...
- 基于itchat的个人情感分析
基于itchat的个人情感分析 昝道广 概述 前言 思考 性别分析 好友签名情感分析 地区分布 爬虫技术分析 代码解析(部分) 后记 前言 本文以迅雷不及掩耳盗铃儿响叮当机立断章取义无反顾,雄姿英发, ...
最新文章
- Anaconda环境管理
- php,http_build_query,乱码
- 反编译linux内核_Linux 后台开发常用调试工具
- php查询mysql表里的数据_php查询mysql数据表记录实现代码
- linux网络编程之多路I/o转接服务器select
- 【转】使用 F#、MapReduce 和 Windows Azure 分析日志文件
- struts2文件下载及文件名中文问题
- 用javascript操作xml
- 深度可分离卷积及其代码实现
- Win10 AMD610显卡驱动安装出现错误206安装失败
- OpenLayers 6 如何优雅的使用天地图WMTS服务“经纬度投影(CGCS2000)”和“球面墨卡托投影(EPSG:3857)”
- CentOS 7安装图形化界面
- Python计算机视觉编程第三章——图像到图像的映射
- 让程序员跳槽的非钱原因
- php获取之前五天的工作日
- PROTEL99画异形焊盘
- 使用colab训练faster-rcnn pytorch版(代码来源:霹雳吧啦Wz)
- Vue实现swiper轮播
- [经验总结]我的Doxygen配置文件
- 寻找三角形 (海伦公式)
热门文章
- 电压测试软件中文,System Information Viewer(SIV主板电压温度测试)
- ios css动画残影,CSS 过渡动画在IOS中表现异常
- 大数据处理技术导论(7) | Datawhale组队学习46期
- Google的中文名竟然取名“谷歌”
- 爬取公共交通的线路和站点
- Python中的爱因斯坦阶梯
- 排队叫号系统方案_财务处关于启用大厅排队叫号系统及自助报账投递机的通知...
- 「双焦面」技术升级,华阳突破AR-HUD大规模量产难题
- 苏嵌实训——day9
- 《Deep Active Learning for Axon-Myelin Segmentation on Histology Data》--阅读笔记-Arxiv