前段时间找到了Cemotion这个NLP第三方库,发现它准确率高的惊人,Cemotion算法的优点在于准确率高、调用方便,缺点是运行较慢(相比其他NPL算法)、环境配置(自动安装TensorFlow环境,对python版本有要求)

目录

前言

一、Cemotion库的安装

1.Pycharm安装法

2.pip安装方法

二、验证Cemotion情感分析准确率

1.加载库并实例化

2.读取评论文本数据

3.进行Cemotion情感值预测

4.验证准确率

三、Cemotion实际情感分析

1.加载库&设置开始计时器&读取数据

2.定义函数&批量处理所有的评论信息

3.输出excel&计时输出

总结
​​​​


前言

介绍一下,Cemotion同Snownlp等NLP算法一样可以在Python中实现,主要拿来用于中文情感倾向分析,可以说是很专注了。Cemotion的模型原理是基于循环神经网络训练,会为中文文本返回 0~1之间的情感倾向置信度,当我们调用Cemotion库的时候会自动安装TensorFlow环境,是Google的开源深度学习框架,里边有大量的中文训练集-big_Chinese_Words_Map.dict。

在本文中,将重点介绍Cemotion中的情感分析,python版本:3.68,Cemotion版本:0.3.3,供大家参考。


一、Cemotion库的安装

1.Pycharm安装法

文件菜单栏中点击设置,然后选择项目中的解释器,点击“+”号按钮输入Cemotion即可查询下载,现在最新版本应该是0.3.3。

2.pip安装方法

也可在终端pip下载:

pip install snownlp

二、验证Cemotion情感分析准确率

首先还是准备一下测试数据,这次我从京东采集了130条赣南脐橙的在线评论文本,然后人工标注每条评论的情感正负性,情感正负性就是指该条评论代表了评论者的何种态度,其中-1表示贬义,1表示褒义。以下是样例:

​​​

1.加载库并实例化

第一步先设置软件的默认编码为utf-8;然后将Cemotion实例化;代码如下:

# -*- codeing = utf-8 -*-
import pandas as pd
from cemotion import Cemotion
c = Cemotion()

2.读取评论文本数据

通过pd(pandas)读取训练集excel表,第一列也就是comments列,是我们需要的评论数据

text = pd.read_excel(r'C:\Users\Desktop\Cemotion训练集.xlsx')
#text0读取text数据框的第一列的所有数据
text0=text.iloc[:,0]

3.进行Cemotion情感值预测

由于Cemotion本身的配置环境带有大量的中文训练集,因此一般不需要训练语料库,本文也就不准备训练集了;

对每条评论进行情感分析,并存入senti列表,以备后续准确率检验

senti = [] #遍历每条评论进行预测,依次存入senti列表
for i in text0:senti.append(c.predict(i))

4.验证准确率

预测结果为positive的概率,positive的概率大于等于0.6,我认为可以判断为积极情感,小于0.6的判断为消极情感。所以以下将概率大于等于0.6的评论标签赋为1,小于0.6的评论标签赋为-1,方便后面与实际标签进行比较:

newsenti=[]
for i in senti:if (i>=0.6):newsenti.append(1)else:newsenti.append(-1)
text['predict']=newsenti #将新的预测标签增加为text的某一列,所以现在text的第0列为评论文本,第1列为实际标签,第2列为预测标签
counts=0
for j in range(len(text.iloc[:,0])): #遍历所有标签,将预测标签和实际标签进行比较,相同则判断正确。if text.iloc[j,2]==text.iloc[j,1]:counts+=1
print(u"准确率为:%f"%(float(counts)/float(len(text))))#输出本次预测的准确率

运行结果为:

可以看到上述语料的情感分析准确率达到了96%,可以说是NLP算法中的第一梯队了,当然也与购物评论好评居多有关,而且比我之前检验的SnowNLP算法准确率(88%)要高出一截,大家也可以拿来检验自己的语料!

三、Cemotion实际情感分析

这部分是对在线评论数据(语料)进行实际情感分析,然后将情感分析后的结果输出excel结果,因为Cemotion算法基于循环神经网络方法,运行较慢,所以在代码中加了简单的计时脚本。

语料还是那个语料,不过删了人工标注的情感正负性

1.加载库&设置开始计时器&读取数据

import pandas as pd
from cemotion import Cemotion
c = Cemotion()
import time
start = time.clock()#程序运行前的当前时刻df = pd.read_excel(r'C:\Users\Desktop\Cemotion训练集.xlsx')

2.定义函数&批量处理所有的评论信息

#定义函数,批量处理所有的评论信息
def get_sentiment_cn(text):return c.predict(text)
#根据df里的“comments”列,将读取文本后的情感分析结果添加到新的一列,命名为“sentiment”
df["sentiment"] = df['comments'].apply(get_sentiment_cn)
print(df)

3.输出excel&计时输出

#储存为表格。
data1=df.to_excel(r'C:/Users/Desktop/CemotionSentiments.xlsx')
#输出程序运行时间
elapsed = (time.clock() - start)#结束后计时-开始前计时
print("Time used:%s 秒"%elapsed)

运行结果为:

如图,sentiment列即为Cemotion情感分析后的值,基本上带好评的评论的情感值趋近于1,130条语料的程序运行了10秒,时间花费较多,不过准确率很高!


总结

Cemotion情感分析准确率验证这方面内容不多,因此是按照SnowNLP模板来写的,有不足之处请大家批评指正,希望能多结识这方面的朋友,共同学习、共同进步。

基于Cemotion的在线评论情感分析及准确率验证(准确率:96%)相关推荐

  1. Python实现基于LSTM的中文评论情感分析

    资源下载地址:https://download.csdn.net/download/sheziqiong/85949420 资源下载地址:https://download.csdn.net/downl ...

  2. 【python数据挖掘课程】二十六.基于SnowNLP的豆瓣评论情感分析

    这是<Python数据挖掘课程>系列文章,前面很多文章都讲解了分类.聚类算法,而这篇文章主要讲解如何调用SnowNLP库实现情感分析,处理的对象是豆瓣<肖申克救赎>的评论文本. ...

  3. 基于LSTM电商评论情感分析-多评价指标可视化版(内附源码)【自然语言处理NLP-100例】

  4. 基于双向LSTM的影评情感分析算法设计学习记录

    引言 需求分析,技术可行性(目前的研究进度),主流怎么做?我要如何做? 随着互联网技术的飞速发展及联网的便捷,越来越多的人在网上表达自己的意见.其中,电影评论受到广泛关注.很多人选择在闲暇时间观看电影 ...

  5. 商品评论情感分析——基于商品评论建立的产品综合评价模型(1)

    商品评论情感分析--基于用户评论建立的产品综合评价模型(1) 1.背景 1.1问题分析 2.数据预处理 2.1删除无关数据 2.2文本去重 3.情感分析 4.LDA主题模型 4.1评论文本分词 4.2 ...

  6. 自然语言处理NLP-100例 | 第二篇:在线课程评论情感分析-本科毕设实战案例

    大家好,我是K同学啊~ 春去秋来,时间就这样嘀嗒嘀嗒的过去,不知道大家的毕设做得怎么样了呢 K同学就今天和大家分享一篇关于在线课程评论情感分析的实战案例,帮助大家找找灵感. 数据用的是一份公开的在线课 ...

  7. 【自然语言处理(NLP)】基于FNN网络的电影评论情感分析

    [自然语言处理(NLP)]基于FNN网络的电影评论情感分析 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建 ...

  8. 【人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩】 https://b23.tv/QU56eTl

    [人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩] https://b23.tv/QU56eTl https://b23.tv/QU56eTl

  9. 基于用户评论情感分析详细设计与技术实现

    基于用户评论情感分析详细设计与技术实现 文章目录 基于用户评论情感分析详细设计与技术实现 前言 一.技术架构 二.分析服务器构建 1.1 创建flask项目 1.2 编写数据库连接脚本,获取用户评论数 ...

最新文章

  1. python cursor游标重置位置scroll_MySQL的游标
  2. Linux 蓝牙读写,实战Linux Bluetooth编程(三) HCI层编程
  3. 申请加入了sharepoint团队
  4. Win7批量压缩照片
  5. 实用的 Python —— os.system() 在 python 语句中执行 dos 命令
  6. python项目开发实例-Python小项目:快速开发出一个简单的学生管理系统
  7. elasticsearch的keyword与text的区别
  8. codepush 微软服务器,ionic3 code-push 搭建自己服务器的问题
  9. python gui设计_[原创]使用VB设计Python的GUI界面(Tkinter Designer) 附源码,[更新V1.5.1]...
  10. Visual C++ 2010 Express 下载及详细安装教程(VC2010)
  11. 题解 luogu P6002 【[USACO20JAN]Berry Picking S】
  12. java生成对称矩阵_JAVA 对称矩阵的压缩存储
  13. python找不到解释器_为什么pycharm找不到python解释器
  14. HTML短信测压引流源码
  15. Ubuntu 开机自动运行命令
  16. Nebula Graph|信息图谱在携程酒店的应用
  17. linux su自动输入密码 使用socat
  18. tomcat问题——判断tomcat是否安装成功
  19. [前端基础] CSS3 篇
  20. 备库ORA-00313 ORA-00312 ORA-27037

热门文章

  1. 互联网产品的帮助中心页面制作方法?
  2. Unknown system variable ‘tx_isolation‘ 解决方案
  3. 安东尼罗宾--激发你的无限潜能[连载]--7 8章
  4. spring中load-time-weaver静态aop处理,基于aspectJ的静态aop处理
  5. 最“笨”的方法—蛮力法
  6. Python学习笔记:7.5.8 Django快速建站 - Web开发实战 微信公众号开发3
  7. 【网络安全】网站为什么需要安装SSL安全证书?
  8. 自然灾害数据:中国台风数据集(更新至2022.3)
  9. 计算机中语言的log与数学中的log的区别
  10. linux常见服务器端口