Python数据分析《黑客帝国》-一切都不是偶然

news/2024/11/30 20:48:29/

目录

  • 1、《黑客帝国》背景介绍
  • 2、数据爬取
  • 3、描述统计分析(评价星级)
  • 4、情感分析
  • 分词关键字统计词云
      • 关键字
      • 分词词云

1、《黑客帝国》背景介绍

每个人的身上都潜藏这完美灵性世界的碎片,他们死后体内的“灵性碎片”便会脱离肉体束缚,重返宇宙之外那个的至善至美的世界,成为永恒。每个人都是身处黑暗宇宙的“异乡人”,他们的家乡在这个宇宙之外。
总体来说反向很不错豆瓣评分8.9分,四星以上评分占了90%以上,具体到每位观众如何呢?接下来就跟着老司机一起来一探究竟。

2、数据爬取

import requests
from lxml import etree
import time
import random
headers = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3','Accept-Encoding': 'gzip','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Cookie': '_ga=GA1.2.557027477.1504366471; _vwo_uuid_v2=938EB395FEDF0DA9E9D90650DE9042F0|e0a43720af285a1e9923074545b60ff1; gr_user_id=d044fe6a-3a16-4f08-ad14-cc71033b6767; __utmv=30149280.16469; douban-fav-remind=1; bid=uZG6zNr6IdM; __yadk_uid=l4ZlS88dSS6QGaomSBmqi5XqNAaUQv5r; viewed="21477429_24703171_24746415_10769749_3288908_5377669_2201479_27055214_30203973_1088812"; acw_tc=2760823015682940060847273e162d65a7cec22e493c6aa10f371b90c5086c; ll="118092"; trc_cookie_storage=taboola%2520global%253Auser-id%3Da1a11787-6229-4357-a25a-b869f8653388-tuctb0db9e; ap_v=0,6.0; __utmc=30149280; __utmc=223695111; dbcl2="164698173:AM/bSYaNPzk"; ck=oih5; push_doumail_num=0; push_noty_num=0; _ck_desktop_mode=; vmode=; _gid=GA1.2.2054464412.1568389839; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1568390107%2C%22https%3A%2F%2Fm.douban.com%2Fmovie%2Fsubject%2F1291843%2Fcomments%3Fsort%3Dnew_score%26start%3D50%22%5D; _pk_ses.100001.4cf6=*; __utma=30149280.557027477.1504366471.1568384207.1568390107.31; __utmb=30149280.0.10.1568390107; __utmz=30149280.1568390107.31.27.utmcsr=m.douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/movie/subject/1291843/comments; __utma=223695111.557027477.1504366471.1568384207.1568390107.30; __utmb=223695111.0.10.1568390107; __utmz=223695111.1568390107.30.27.utmcsr=m.douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/movie/subject/1291843/comments; _pk_id.100001.4cf6=b6270075d3f0f249.1516866774.32.1568391082.1568386453.','Host': 'movie.douban.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'}
if __name__ == '__main__':# 0、20、40、60、……490fp = open('./hacks.csv',mode='w',encoding='utf-8')fp.write('user\tcomment\tstar\tvote\tdate\n')url = 'https://movie.douban.com/subject/1291843/comments?start=%d&limit=20&sort=new_score&status=P'for i in range(0,26):if i == 25:url_comments = url%(490)else:url_comments = url%(i*20)response = requests.get(url=url_comments,headers = headers)response.encoding = 'utf-8'tree = etree.HTML(response.text)comments = tree.xpath('//div[@id="comments"]/div[@class="comment-item"]')for c in comments:user = c.xpath('.//div[@class="avatar"]/a/@title')[0]comment = c.xpath('.//span[@class="short"]/text()')[0].replace('\t', '')try:star = c.xpath('.//span[contains(@class,"allstar")]/@title')[0]except:star = 'none't = c.xpath('.//span[@class="comment-time "]/@title')[0]votes = c.xpath('.//span[@class="votes"]/text()')[0]fp.write('%s\t%s\t%s\t%s\t%s\n'%(user,comment,star,votes,t))print('第%d页数据保成功%d'%(i+1,len(comments)))time.sleep(random.uniform(1,5))fp.close()

3、描述统计分析(评价星级)

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__':data = pd.read_csv('./hacks.csv',sep = '\t')# 将爬虫获取数据评价等级化m = {'none':'0 stars','18':'2 stars','还行':'3 stars','推荐':'4 stars','力荐':'5 stars'}data['star'] = data['star'].map(m)bar_data = data['star'].value_counts()print(bar_data)plt.bar(x = np.arange(0,5),height = bar_data,width=0.5)plt.xticks(np.arange(0,5),labels = [i[1] for i in m.items()][::-1])plt.show()percent = data['star'].value_counts(normalize=True)plt.pie(percent,labels=[i[1] for i in m.items()][::-1],autopct = '%0.2f%%')plt.show()

在这里插入图片描述
在这里插入图片描述
整体来看,四星五星评价巨多,说明大家对于《黑客帝国》整体评价非常好!

4、情感分析

from snownlp import SnowNLP
import pandas as pd
def sentiment(content):s = SnowNLP(str(content))return s.sentiments
if __name__ == '__main__':data = pd.read_csv('./hacks.csv',sep = '\t')data['sentiment'] = data.comment.apply(sentiment)data.sort_values('sentiment',ascending=False,inplace=True)data.to_csv('./hacks2.csv',sep='\t',index=False)# 正面评价,在jupyter中显示效果会好print(data.iloc[:10])# 负面评价print(data.iloc[-10:])

先来看看正面评价,sentiment表示情感得分
在这里插入图片描述
看上去正面评价基本都是高星级评分的观众给出的,有理有据,令人信服。再来看看负面评价
在这里插入图片描述
这里的负面评价,言语偏少,但是像《黑客帝国》这样的电影,纵使我们认为给了负面评价,发现负面评价,也是比较‘正面的’,这就是大片的魅力。

分词关键字统计词云

通过jieba进行分词,根基TF-IDF算法提取关键词,代码及部分关键词如下

import pandas as pd
import jieba
from jieba import analyse
import wordcloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
if __name__ == '__main__':data = pd.read_csv('./hacks.csv',sep = '\t')texts = ';'.join([str(c) for c in data.comment.tolist()])cut_text = ' '.join(jieba.cut(texts))keywords = jieba.analyse.extract_tags(cut_text,topK=500,withWeight=True,allowPOS=['ns', 'n', 'vn', 'v','nr','a','e'])words = pd.DataFrame(keywords,columns = ['词语','重要性'])# 关键字plt.barh(range(0,20),width = words['重要性'][:20][::-1])plt.ylabel('Importance')plt.yticks(range(0,20),labels=words['词语'][:20][::-1],fontproperties = 'KaiTi')plt.show()# 词云hack_mask = np.array(Image.open('./hack.jpg'))text_cloud = dict(keywords)cloud = wordcloud.WordCloud(width=500,font_path='./simkai.ttf',height=333,background_color='white',mask = hack_mask,max_words=500,max_font_size=150)plt.figure(figsize=(12,12))word_cloud = cloud.generate_from_frequencies(text_cloud)plt.imshow(word_cloud)plt.show()

关键字

在这里插入图片描述

分词词云

在这里插入图片描述
在这里插入图片描述
百度网盘代码下载百度网盘
提取码:0qag


http://www.ppmy.cn/news/412687.html

相关文章

22部漫威电影大合集和观影顺序

【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。 由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。 欢迎访问我的个人网站:https://www.tecchen.xyz 。 北美上映时间先…

第一天学习弹片鸡

/*软件安装包、开发板资料、课件及程序源码百度网盘链接:https://pan.baidu.com/s/1vDTN2o8ffvczzNQGfyjHng 提取码:gdzf,链接里压缩包的解压密码:51 ,如果打不开请复制链接到浏览器再打开*/ #1.有些杀毒软件会删文件…

lsl

https://www.neurobs.com/pres_docs/html/03_presentation/06_hardware_interfacing/02_lab_streaming_layer.htm https://github.com/sccn/labstreaminglayer/wiki https://github.com/sccn/labstreaminglayer https://sccn.ucsd.edu/wiki/EEGLAB_and_python

LSP

LSP(分层服务提供程序) LSP就是TCP/IP等协议的接口. LSP一般用于浏览器劫持 修复可以以管理员身份运行cmd 输入netsh winsock reset

关于LSS指令

在书上看到: lss init_stack, %esp 网上对于lss指令的解释是: lss reg16, mem32 即mem32位数的低16位传入reg,高16位传入ss. 但这显然与书上的代码不符.因为init_stack是一个常量 后来意识到书上的代码是AT&T汇编,所以应理解为init_stack的低16位传入esp,高16位传入s…

Linux 中 ll与ls -l 区别

linux下命令“ll”是“ls -l"的别名。别名相当于windows里的快捷方式。 但是 ll会列出该文件下的所有文件信息,包括隐藏的文件,而ls-l只列出显式文件。 如图 : . 本级 …上一级

ls与ls -l区别

ls与ls -l区别 ls //文件列表 ls -l //文件详细信息列表 ll //等价于ls -l ,不是命令,不同电脑有时会不识别示例:

编程实现ls -l

使用指令ls -l 编译ll.c 并运行 需要的头文件&#xff0c;通过man命令查阅即可 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <pwd.h&g…