微博评论破亿3天破9亿!上万条评论解读《西虹市首富》是否值得一看

点击上面图片,查看Python教学方法 作者介绍:徐麟,目前就职于上海唯品会产品技术中心,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据 个人公众号:数据森麟(ID:shujusenlin),知乎同名专
原标题:3天破9亿!上万条评论解读《西虹市首富》是否值得一看点击上面图片,查看Python教学方法作者介绍:徐麟,目前就职于上海唯品会产品技术中心,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据个人公众号:数据森麟(ID:shujusenlin),知乎同名专栏作者。前言:纵观近几年的国产电影市场,“开心麻花“似乎已经成为了票房的保证。从《夏洛特烦恼》、《羞羞的铁拳》到最新上映的《西虹市首富》都引爆了票房。本期我们会根据从猫眼电影网爬取到的上万条评论为你解读《西虹市首富》是否值得一看。数据爬取:此次数据爬取我们参考了之前其他文章中对于猫眼数据的爬取方法,调用其接口,每次取出部分数据并进行去重,最终得到上万条评论,代码如下:tomato=pd.DataFrame(columns=[\'date\',\'score\',\'city\',\'comment\',\'nick\'])foriinrange(0,1000):j=random.randint(1,1000)print(str(i)+\'\'+str(j))try:time.sleep(2)url=\'http://m.maoyan.com/mmdb/comments/movie/1212592.json?_v_=yes&offset=\'+str(j)html=requests.get(url=url).contentdata=json.loads(html.decode(\'utf-8\'))[\'cmts\']foritemindata:tomato=tomato.append({\'date\':item[\'time\'].split(\'\')[0],\'city\':item[\'cityName\'],\'score\':item[\'score\'],\'comment\':item[\'content\'],\'nick\':item[\'nick\']},ignore_index=True)tomato.to_csv(\'西虹市首富4.csv\',index=False)except:continue数据分析:我们看一下所得到的数据:数据中我们可以得到用户的昵称,方便后面进行去重。后面的部分主要围绕评分、城市、评论展开。首先看一下,评论分布热力图:京津翼、江浙沪、珠三角等在各种榜单长期霸榜单的区域,在热力图中,依然占据着重要地位。同时,我们看到东三省和四川、重庆所在区域也有着十分高的热度,这也与沈腾自身东北人&四川女婿的身份不谋而合(以上纯属巧合,切勿较真)。下面我们要看的是主要城市的评论数量与打分情况:打出最高分4.77分的正是沈腾家乡的省会城市哈尔滨(沈腾出生于黑龙江齐齐哈尔),看来沈腾在黑龙江还是被广大父老乡亲所认可的。最低分和次低分来自于合肥和郑州,今后的开心麻花可以考虑引入加强在中部地区的宣传。我们按照打分从高到底对城市进行排序:在评论数量最多的二十个城市中,评分前七名的城市中东北独占四席,而分数相对较低的城市中武汉、合肥、郑州都属于中部地区,可见不同地区的观众对影评的认可程度有着一定差异。我们把城市打分情况投射到地图中:(红色表示打分较高,蓝色表示较低)进一步,我们把城市划分为评分较高和较低两部分较高区域:较低区域:可以看到对于“西红柿”,南北方观众的评价存在一定差异,这与每年春晚各个地区收视率似乎有一些吻合知乎。沈腾本身也是春晚的常客,电影中自然会带一些“春晚小品味”,这似乎可以一定程度上解释我们得到的结果。看过了评分,我们看一下评论生成的词云图,以下分别是原图和据此绘制的词云图:不知道大家的想法如何,至少在我看到了这样的词云,搞笑、笑点、值得、开心、不错,甚至是哈哈都会激起我强烈的看片欲望。同时,沈腾也被大家反复提起多次,可以预见其在片中有着非常不错的表演,也会一定程度上激发大家看片的欲望。部分代码展示:热力图:tomato_com=pd.read_excel(\'西虹市首富.xlsx\')grouped=tomato_com.groupby([\'city\'])grouped_pct=grouped[\'score\']#tip_pct列city_com=grouped_pct.agg([\'mean\',\'count\'])city_com.reset_index(inplace=True)city_com[\'mean\']=round(city_com[\'mean\'],2)data=[(city_com[\'city\'][i],city_com[\'count\'][i])foriinrange(0,city_com.shape[0])]geo=Geo(\'《西虹市首富》全国热力图\',title_color=\"#fff\",title_pos=\"center\",width=1200,height=600,background_color=\'#404a59\')attr,value=geo.cast(data)geo.add(\"\",attr,value,type=\"heatmap\",visual_range=[0,200],visual_text_color=\"#fff\",symbol_size=10,is_visualmap=True,is_roam=False)geo.render(\'西虹市首富全国热力图.html\')折线图+柱形图组合:city_main=city_com.sort_values(\'count\',ascending=False)[0:20]attr=city_main[\'city\']v1=city_main[\'count\']v2=city_main[\'mean\']line=Line(\"主要城市评分\")line.add(\"城市\",attr,v2,is_stack=True,xaxis_rotate=30,yaxis_min=4.2,mark_point=[\'min\',\'max\'],xaxis_interval=0,line_color=\'lightblue\',line_width=4,mark_point_textcolor=\'black\',mark_point_color=\'lightblue\',is_splitline_show=False)bar=Bar(\"主要城市评论数\")bar.add(\"城市\",attr,v1,is_stack=True,xaxis_rotate=30,yaxis_min=4.2,xaxis_interval=0,is_splitline_show=False)overlap=Overlap()#默认不新增xy轴,并且xy轴的索引都为0overlap.add(bar)overlap.add(line,yaxis_index=1,is_add_yaxis=True)overlap.render(\'主要城市评论数_平均分.html\')词云:tomato_str=\'\'.join(tomato_com[\'comment\'])words_list=[]word_generator=jieba.cut_for_search(tomato_str)forwordinword_generator:words_list.append(word)words_list=[kforkinwords_listiflen(k)>1]back_color=imread(\'西红柿.jpg\')#解析该图片wc=WordCloud(background_color=\'white\',#背景颜色max_words=200,#最大词数mask=back_color,#以该参数值作图绘制词云,这个参数不为空时,width和height会被忽略max_font_size=300,#显示字体的最大值stopwords=STOPWORDS.add(\'苟利国\'),#使用内置的屏蔽词,再添加\'苟利国\'font_path=\"C:/Windows/Fonts/STFANGSO.ttf\",random_state=42,#为每个词返回一个PIL颜色#width=1000,#图片的宽#height=860#图片的长)tomato_count=Counter(words_list)wc.generate_from_frequencies(tomato_count)#基于彩色图像生成相应彩色image_colors=ImageColorGenerator(back_color)#绘制词云plt.figure()plt.imshow(wc.recolor(color_func=image_colors))plt.axis(\'off\')票房预估:最后我们来大胆预估下《西虹市首富》的票房,我们日常在工作中会选取标杆来对一些即将发生的事情进行预估。这次我们选择的标杆就是《羞羞的铁拳》:基于以下几点我们选择《羞羞的铁拳》作为标杆:均是开心麻花出品、题材相似演员阵容重合度高豆瓣粉丝认可程度相似(评分均为6.9,处于喜剧片中位数水平)猫眼粉丝认可程度相似(铁拳评分9.1,西红柿评分9.3)我们看一下两部影片前三天的走势:前三天两部片子的票房走势十分相似,基于之前我们的平均,我们可以尝试性(比随机准一点)预测一下“西红柿”最终的票房。“西红柿”票房预测值≈“铁拳”总票房/“铁拳”前三天票房*“西红柿”前三天票房=22.13/5.25*8.62≈36,考虑到铁拳上映是在国庆假期,西红柿的票房预估需要相应的下调。综上所述,我们给出30亿票房的预估。大家来和我们一起见证本公众号“章鱼保罗”般神奇的预测的or“球王贝利”般被啪啪打脸的预测。需要数据集的朋友,在后台回复【西红柿数据集下载】,期待大家更多的发现!本文详细代码如下:\"\"\"CreatedonSunJul2909:35:032018@author:dell\"\"\"##调用要使用的包importjsonimportrandomimportrequestsimporttimeimportpandasaspdimportosfrompyechartsimportBar,Geo,Line,Overlapimportjiebafromscipy.miscimportimread#这是一个处理图像的函数fromwordcloudimportWordCloud,ImageColorGeneratorimportmatplotlib.pyplotaspltfromcollectionsimportCounteros.chdir(\'D:/爬虫/西红柿\')##设置headers和cookieheader={\'User-Agent\':\'Mozilla/5.0(WindowsNT10.0;Win32;x32;rv:54.0)Gecko/20100101Firefox/54.0\',\'Connection\':\'keep-alive\'}cookies=\'v=3;iuuid=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03;webp=true;ci=1%2C%E5%8C%97%E4%BA%AC;__guid=26581345.3954606544145667000.1530879049181.8303;_lxsdk_cuid=1646f808301c8-0a4e19f5421593-5d4e211f-100200-1646f808302c8;_lxsdk=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03;monitor_count=1;_lxsdk_s=16472ee89ec-de2-f91-ed0%7C%7C5;__mta=189118996.1530879050545.1530936763555.1530937843742.18\'cookie={}forlineincookies.split(\';\'):name,value=cookies.strip().split(\'=\',1)cookie[name]=value##爬取数据,每次理论上可以爬取1.5W调数据,存在大量重复数据,需要多次执行,最后统一去重tomato=pd.DataFrame(columns=[\'date\',\'score\',\'city\',\'comment\',\'nick\'])foriinrange(0,1000):j=random.randint(1,1000)print(str(i)+\'\'+str(j))try:time.sleep(2)url=\'http://m.maoyan.com/mmdb/comments/movie/1212592.json?_v_=yes&offset=\'+str(j)html=requests.get(url=url,cookies=cookie,headers=header).contentdata=json.loads(html.decode(\'utf-8\'))[\'cmts\']foritemindata:tomato=tomato.append({\'date\':item[\'time\'].split(\'\')[0],\'city\':item[\'cityName\'],\'score\':item[\'score\'],\'comment\':item[\'content\'],\'nick\':item[\'nick\']},ignore_index=True)tomato.to_excel(\'西虹市首富.xlsx\',index=False)except:continue##可以直接读取我们已经爬到的数据进行分析tomato_com=pd.read_excel(\'西虹市首富.xlsx\')grouped=tomato_com.groupby([\'city\'])grouped_pct=grouped[\'score\']##全国热力图city_com=grouped_pct.agg([\'mean\',\'count\'])city_com.reset_index(inplace=True)city_com[\'mean\']=round(city_com[\'mean\'],2)data=[(city_com[\'city\'][i],city_com[\'count\'][i])foriinrange(0,city_com.shape[0])]geo=Geo(\'《西虹市首富》全国热力图\',title_color=\"#fff\",title_pos=\"center\",width=1200,height=600,background_color=\'#404a59\')attr,value=geo.cast(data)geo.add(\"\",attr,value,type=\"heatmap\",visual_range=[0,200],visual_text_color=\"#fff\",symbol_size=10,is_visualmap=True,is_roam=False)geo.render(\'西虹市首富全国热力图.html\')##主要城市评论数与评分city_main=city_com.sort_values(\'count\',ascending=False)[0:20]attr=city_main[\'city\']v1=city_main[\'count\']v2=city_main[\'mean\']line=Line(\"主要城市评分\")line.add(\"城市\",attr,v2,is_stack=True,xaxis_rotate=30,yaxis_min=4.2,mark_point=[\'min\',\'max\'],xaxis_interval=0,line_color=\'lightblue\',line_width=4,mark_point_textcolor=\'black\',mark_point_color=\'lightblue\',is_splitline_show=False)bar=Bar(\"主要城市评论数\")bar.add(\"城市\",attr,v1,is_stack=True,xaxis_rotate=30,yaxis_min=4.2,xaxis_interval=0,is_splitline_show=False)overlap=Overlap()#默认不新增xy轴,并且xy轴的索引都为0overlap.add(bar)overlap.add(line,yaxis_index=1,is_add_yaxis=True)overlap.render(\'主要城市评论数_平均分.html\')##主要城市评分降序city_score=city_main.sort_values(\'mean\',ascending=False)[0:20]attr=city_score[\'city\']v1=city_score[\'mean\']line=Line(\"主要城市评分\")line.add(\"城市\",attr,v1,is_stack=True,xaxis_rotate=30,yaxis_min=4.2,mark_point=[\'min\',\'max\'],xaxis_interval=0,line_color=\'lightblue\',line_width=4,mark_point_textcolor=\'black\',mark_point_color=\'lightblue\',is_splitline_show=False)line.render(\'主要城市评分.html\')##主要城市评分全国分布city_score_area=city_com.sort_values(\'count\',ascending=False)[0:30]city_score_area.reset_index(inplace=True)data=[(city_score_area[\'city\'][i],city_score_area[\'mean\'][i])foriinrange(0,city_score_area.shape[0])]geo=Geo(\'《西虹市首富》全国主要城市打分图\',title_color=\"#fff\",title_pos=\"center\",width=1200,height=600,background_color=\'#404a59\')attr,value=geo.cast(data)geo.add(\"\",attr,value,visual_range=[4.4,4.8],visual_text_color=\"#fff\",symbol_size=15,is_visualmap=True,is_roam=False)geo.render(\'西虹市首富全国主要城市打分图.html\')##前三天票房对比piaofang=pd.read_excel(\'票房.xlsx\')attr1=piaofang[piaofang[\'film\']==\'西虹市首富\'][\'day\']v1=piaofang[piaofang[\'film\']==\'西虹市首富\'][\'money\']attr2=piaofang[piaofang[\'film\']==\'羞羞的铁拳\'][\'day\']v2=piaofang[piaofang[\'film\']==\'羞羞的铁拳\'][\'money\']line=Line(\"前三天票房对比\")line.add(\"西红柿首富\",attr1,v1,is_stack=True)line.add(\"羞羞的铁拳\",attr2,v2,is_stack=True)line.render(\'前三天票房对比.html\')##绘制词云tomato_str=\'\'.join(tomato_com[\'comment\'])words_list=[]word_generator=jieba.cut_for_search(tomato_str)forwordinword_generator:words_list.append(word)words_list=[kforkinwords_listiflen(k)>1]back_color=imread(\'西红柿.jpg\')#解析该图片wc=WordCloud(background_color=\'white\',#背景颜色max_words=200,#最大词数mask=back_color,#以该参数值作图绘制词云,这个参数不为空时,width和height会被忽略max_font_size=300,#显示字体的最大值font_path=\"C:/Windows/Fonts/STFANGSO.ttf\",#解决显示口字型乱码问题,可进入C:/Windows/Fonts/目录更换字体random_state=42,#为每个词返回一个PIL颜色)tomato_count=Counter(words_list)wc.generate_from_frequencies(tomato_count)#基于彩色图像生成相应彩色image_colors=ImageColorGenerator(back_color)#绘制结果plt.figure()plt.imshow(wc.recolor(color_func=image_colors))plt.axis(\'off\')-END-开讲了!全国高校Python数据分析课程高级研修班(11月3-4日武汉)课程目标掌握Python语言基础和编程方法,以及Python与其他语言的异同。以Web新闻页面的采集、内容提取、处理及分析为应用案例和主线,掌握互联网大数据处理的关键技术和整个处理流程,使得参加培训的教师具备互联网大数据处理技术的知识体系。学习掌握Web页面采集的爬虫技术架构及其Python实现方法,学习Web信息提取的技术原理,并掌握利用若干开源框架进行Web提取的方法。使参加培训的教师可以开设Web大数据采集的专业核心课程,并具备互联网大数据处理技术相关课程的实验设计能力。责任编辑:

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/PVdL4OE9dQ.html

(0)

相关推荐