用Python可视化多条影评,翱翔蓝空的鹰猎长空
很多时候从猫眼电影官网可以看到一些大热电影的高评论数和高评分,这些人到底在评论些啥?哪些地方的人评论最多?针对不同演员角色的评论内容有什么不同?面对即将问世的《鹰猎长空》,整理基本的数据获取技巧如下。
数据获取
猫眼电影是简单的动态网页,数据格式为json,通过解析接口的方式即可轻松获取。仅提供核心代码:
def parse_page(html):
try:
data = json.loads(html)[‘cmts’] # 将str转换为json
#print(data)
comments = []
for item in data:
comment = {
‘id’: item[‘id’],
‘nickName’: item[‘nickName’],
‘cityName’: item[‘cityName’] if ‘cityName’ in item else ‘’, # 处理cityName不存在的情况
‘content’: item[‘content’].replace(’\n’, ’ ', 10), # 处理评论内容换行的情况
‘score’: item[‘score’],
‘startTime’: item[‘startTime’]
}
comments.append(comment)
return comments
except Exception as e:
pass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
数据清洗
读取影评数据
import pandas as pd
import numpy as np
data=[]
with open(‘comments.txt’, ‘r’,encoding=‘utf-8-sig’) as f_input:
for line in f_input:
data.append(list(line.strip().split(’,’)))
data
1
2
3
4
5
6
7
转为DataFrame并添加列名
df = pd.DataFrame(data).iloc[:, 0:6]
df.columns = [‘观众ID’,‘观众昵称’,‘城市’,‘评论内容’,‘评分’,‘评论时间’]
1
2
删除重复记录和缺失值
df = df.drop_duplicates()
df = df.dropna()
1
2
预览并保存
df.sample(5)
df.to_csv(“鹰猎长空.csv”,index=False,encoding=“utf_8_sig”)
1
2
数据可视化
导入相关库
import jieba
import re
import matplotlib.pyplot as plt
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import stylecloud
from IPython.display import Image
1
2
3
4
5
6
7
8
整体评论词云
data = pd.read_csv(“鹰猎长空.csv”)
data[‘评论内容’] = data[‘评论内容’].astype(‘str’)
定义分词函数
def get_cut_words(content_series):
# 读入停用词表
stop_words = []
with open("stop_words.txt", 'r', encoding='utf-8') as f:lines = f.readlines()for line in lines:stop_words.append(line.strip())# 添加关键词
my_words = ['', '']for i in my_words:jieba.add_word(i)# 自定义停用词
my_stop_words = ['电影', '中国','一部']
stop_words.extend(my_stop_words)# 分词
word_num = jieba.lcut(content_series.str.cat(sep='。'), cut_all=False)# 条件筛选
word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]return word_num_selected
绘制词云图
text1 = get_cut_words(content_series=data[‘评论内容’])
stylecloud.gen_stylecloud(text=’ ‘.join(text1), max_words=500,
collocations=False,
font_path=‘字酷堂清楷体.ttf’,
icon_name=‘fas fa-square’,
size=653,
#palette=‘matplotlib.Inferno_9’,
output_name=’./1.png’)
Image(filename=’./1.png’)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
评论类型分布
data[‘评论类型’] = pd.cut(data[‘评分’],[0,3,4,6],labels=[‘差评’,‘中评’,‘好评’],right=False)
df1 = data.groupby(‘评论类型’)[‘评论内容’].count()
df1 = df1.sort_values(ascending=False)
regions = df1.index.to_list()
values = df1.to_list()
c = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK))
.add("", zip(regions,values),radius=[“40%”, “70%”])
.set_global_opts(title_opts=opts.TitleOpts(title=“评论类型占比”,subtitle=“数据来源:猫眼电影”,pos_top=“0.5%”,pos_left = ‘center’))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%",font_size=18))
)
c.render_notebook()
df2 = data.groupby(‘城市’)[‘评分’].count() #按菜系分组,对评分求平均
df2 = df2.sort_values(ascending=False)[:10]
print(df2)
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK))
bar.add_xaxis(df2.index.to_list())
bar.add_yaxis("",df2.to_list()) #X轴与y轴调换顺序
bar.set_global_opts(title_opts=opts.TitleOpts(title=“城市影评数量TOP10”,subtitle=“数据来源:猫眼电影”,pos_top=“2%”,pos_left = ‘center’),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=16)), #更改横坐标字体大小
yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=16)), #更改纵坐标字体大小
)
bar.set_series_opts(label_opts=opts.LabelOpts(font_size=16,position=‘top’))
bar.render_notebook()
用Python可视化多条影评,翱翔蓝空的鹰猎长空相关推荐
- 爬取影评来分析电影《鹰猎长空》评论是如何的
很多时候从猫眼电影官网可以看到一些大热电影的高评论数和高评分,这些人到底在评论些啥?哪些地方的人评论最多?针对不同演员角色的评论内容有什么不同?面对即将问世的<鹰猎长空>,整理基本的数据获 ...
- 爬取影评来分析电影《鹰猎长空》
很多时候从猫眼电影官网可以看到一些大热电影的高评论数和高评分,这些人到底在评论些啥?哪些地方的人评论最多?针对不同演员角色的评论内容有什么不同?面对即将问世的<鹰猎长空>,整理基本的数据获 ...
- 运用Python看看对于《鹰猎长空》的知乎 vs 豆瓣的战斗
作为明年会上映国产电影<鹰猎长空>,看完概略之后觉得大体还可以,中规中矩的国产战争片.摄影.调度应该算得上是国内一流,要我评价的话会先给个基础分.不过自己打完分,都会习惯性去看看别人的评价 ...
- python使用matplotlib中的errorbar函数可视化误差条、并自定义数据点标记、数据点大小、数据点颜色、数据点边缘颜色、误差棒颜色、误差棒线条宽度、误差棒边界线长度、误差棒边界线厚度等
python使用matplotlib中的errorbar函数可视化误差条.并自定义数据点标记.数据点大小.数据点颜色.数据点边缘颜色.误差棒颜色.误差棒线条宽度.误差棒边界线长度.误差棒边界线厚度等 ...
- 使用python Tqdm 进度条库让你的python进度可视化
使用python Tqdm进度条库让你的python进度可视化 Tqdm在阿拉伯语表示进步,在西班牙语中表示我非常爱你.是一个快速,可扩展的Python进度条,可以在Python长循环中添加一个进度提 ...
- 爬虫项目十四:Python爬下豆瓣《我的姐姐》两千条影评,看看大家对其评价如何
文章目录 前言 一.分析URL 二.获取影评 三.代码实现 四.词云 前言 爬取豆瓣影评,爬虫代码已经封装好,修改请求头 和url即可采集你想要采集的电影影评 提示:以下是本篇文章正文内容,下面案例可 ...
- Python可视化——3D绘图解决方案pyecharts、matplotlib、openpyxl
Python可视化--3D绘图解决方案pyecharts.matplotlib.openpyxl 1. pyecharts 2. matplotlib 3. openpyxl 这篇博客将介绍pytho ...
- 10 个案例分享几个 Python 可视化小技巧,助你绘制高质量图表
作者 | 俊欣 来源 | 关于数据分析与可视化 一般在Python当中,我们用于绘制图表的模块最基础的可能就是matplotlib了,今天小编分享几个用该模块进行可视化制作的技巧,帮助你绘制出更加高质 ...
- 强烈推荐一款Python可视化神器!
参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 翻译 | Lemon 来源 | Plotly 出品 | Python数据之道 (ID:PyDataRoad) Plotly Express 入 ...
最新文章
- 追溯XLNet的前世今生:从Transformer到XLNet
- CCS中各个项目文件的作用
- 诵经嘴巴机器人入驻蓬皮杜艺术中心,MIT艺术家出品,网友:看到的第一眼我就想歪了...
- HTML、HTML5、XML、XHMTL区别
- spring整合问题集合1
- 关于ping命令的工作原理
- mysql 组合查询_MySQL组合查询教程
- 考勤管理系统需求文档
- 解决Appium-windows安装时无法自动下载Appium-Desktop
- 【干货】github上十二款最著名的Android播放器开源项目
- JavaScript数组filter方法
- Matlab 之meshgrid interp griddata interp2
- CSAPP ArchitectureLab
- cesium 移除实体方法
- python画矢量图_使用基于matplotlib的SciencePlots绘制精美图表
- C++ 在控件上使用科学记数法输出数据
- 帝国CMSH5小游戏模板帝国CMS内核游戏整站源码
- python的字节码(ByteCode)
- 用html将竖的图片打横,【收藏】让竖版图片变横版不变形的两种方法
- 通过cmd命令,使Scite在windows下构建,并安装lua环境与中文乱码问题