加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用Python分析EXCEL中一列评论文字的情感

(2018-05-06 13:04:12)
分类: 学术

首先要打开Anaconda Navigator

然后打开命令行,指定文件夹目录,如

cd demo

将要分析的excel文件信息放在demo文件夹,这个excel文件有一列存放的是评论文本(本例子中是战狼2的评论),这列第一行命名为comments

在运行命令行中安装snownlp工具包,SnowNLP用于中文评论分析

http://s4/mw690/002Y6oBpzy7kfsU21IT93&690

运行jupyter notebook
http://s16/mw690/002Y6oBpzy7kfsW3Gvt0f&690

jupyter notebook的浏览器页面新建一个pyth3

http://s7/mw690/002Y6oBpzy7kfsY19kO26&690

~~~~~~以上为前期准备工作,以下开始在pyth3中输入python程序~~~~~~~

引入数据框分析工具Pandas,简写成pd以方便调用。

import pandas as pd

接着,读入Excel数据文件

df = pd.read_excel("zhanlang2.xlsx")

我们看看读入内容是否完整,显示前10

df.head()

通过循环方式进行情感分析

hangshu=len(df)

counter = 0

while counter <</span> hangshu:

text = df.comments.iloc[counter]

from snownlp import SnowNLP

s = SnowNLP(str(text))

df.sen.iloc[counter]=s.sentiments

counter += 1

其中,comments是评论列的标题

sen是原excel表中的空列(需要提前在这列上方键入sen),用来保存情感分值

http://s8/mw690/002Y6oBpzy7kft3bWir57&690

因为有些评论可能是非字符格式,需要str(text)进行转换

一定要注意缩进,python需要通过缩进来判断这个循环语句

页面上显示沙漏符号http://s12/mw690/002Y6oBpzy7kftcSRxF2b&690,则表示正在计算,请等待

经过一段时间,情感值虽然计算出来了,但其实并未保存,因此需要保存为另一个excel,如zhanlang2sen.xlsx

df.to_excel("zhanlang2.xlsx", index=False)

print(df.head(10))

column = df.ix[:, :]    

column.to_excel("zhanlang2sen.xlsx", index=False)

其中:loc——通过行标签索引行数据

iloc——通过行号索引行数据

ix——通过行标签或者行号索引行数据

而后就会生成一个具有情感值列的excel文件"zhanlang2sen.xlsx"

http://s1/mw690/002Y6oBpzy7kftfE2Sk00&690


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有