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

分类: 学术 |
首先要打开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