python对excel的操作,对中文的情感分析(openpyxl+snownlp),内附详细教学链接 记一次社会计算作业 (二)

写在前面: 首次写csdn的博客, 记录一次涉及爬虫, 中文词句情感分析, 数据可视化的社会计算作业, 不过仅涉及非常粗浅的介绍和本次作业中用到的内容, 会在每个板块最后附上相应内容学习的其他博客链接.

分析题意

对于2019年度的电影评分数据,电影描述以及标签信息等数据进行获取和分析,作一份电影分析报告。
要求内容:
1.	正面,负面,中性评价比率
2.	粉丝分布属性
3.	票房属性

完成作业大概分为三个板块:

  • 获取豆瓣上的电影数据
    1.爬虫的基础知识
    2.BeautifulSoup库的使用
  • 分析数据(情感分析)
    1.python对excel的操作
    2.中文情感分析snowNLP库的使用
  • 可视化表示数据
    1.excel的图表操作
    2.python的matplotlib库画三维散点图

本篇博客只涉及到第二板块的内容,其他内容在专栏中

基础知识


1.python对excel的操作

python对excel操作的库有很多,xlrd/xlwt库,openpyxl等,笔者在这里使用的是openpyxl库

在此处只需要会用以下几个操作就行

  • 引用openpyxl库

    建议同时使用

import openpywl
from openpyxl import Workbook
  • 读取一个excel文件
wb = load_workbook('./myfile.xlsx')
#此处可以指定参数read_only为true即只读,write_only为true为只写,默认为可读可写
  • 确定工作表
    圈住的这个就是我所说的工作表 , 有的excel文件有多个工作表 , 不过哪怕你只有一个工作表,也是需要确认的
ws = wb.get_sheet_by_name('Sheet1')
#此处的参数就是你要的工作表的名字,大小写敏感

在这里插入图片描述

  • 读写一个单元
    确定了sheet以后可以对每个单元格进行处理

      方法一:
      a = ws.cell(row,column).value
      不要忘了.value,此时a就是第row行第column单元格的数值.
      也可以直接进行写
      ws.cell(row,column).value = a
      就把a写入了对应单元格
      方法二:
      a = ws['A1']
      ws['A1'] = a
      但是在这次作业中似乎是用row和column更方便一些
    
  • 创建一个xlsx文件

wb2 = Workbook() #创建一个workbook(工作簿)
ws2 = wb2.active  #这个active是取正在工作的sheet,默认是第一个sheet  

然后可以按照之前的读写操作进行读写

  • 写入一整行数据
ws.append(["director","rate","title","actor","url"])

这样可以直接写入整行数据
不过只能写到空白的行中哦

	from openpyxl import Workbook
	import openpyxl

	wb = Workbook()	
	ws = wb.active

	ws.append(["director","rate","title","actor","url"])
	ws.cell(2,3).value = 2131
	ws.append(["director","rate","title","actor","url"])

	wb.save("test.xlsx")

执行以上代码得到
在这里插入图片描述

点击openpyxl详解了解更多有关内容


2.中文情感分析snowNLP库的使用

SnowNLP是一个python写的类库,可以方便的处理中文文本内容. 简单介绍一些简单的操作

  • snow库的引用
    这边建议使用下面两个
from snownlp import SnowNLP
from snownlp import sentiment
  • 把文本snowNLP化
text = '戴上口罩我最帅,我是网安小可爱'
s = SnowNLP(text)
#或者
s2 = SnowNLP(u'戴上口罩我最帅,我是网安小可爱')
  • 对文本进行分词
a  = s.words
print(a)

在这里插入图片描述

  • 对文本的情感极性进行分析
b = s.sentiments
print(b)

在这里插入图片描述
这里输出的是一个[0,1]的数据 , 表示这句话可能是积极的概率 , 不过snownlp库只能对简单的词句进行分析 , 在这个阴阳怪气的时代 , 分辨出不准确的数据也很正常(但是你可以自己训练这个库), 越靠近0则是积极的概率越小.

点击snownlp教程了解更多内容
点击snownlp训练了解训练snownlp的方法


以上知识只是基础知识,并不能直接帮你完成作业hhh,但是了解知识以后敲代码时或许思路更加开阔了

数据的处理和分析要用到的知识就是这些,数据可视化会在下一篇文章中介绍

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值