《爱情公寓》电影,让我十年的情怀,一瞬间都喂了狗

百家 作者:程序人生 2018-08-13 06:47:35

点击上方“程序人生”,选择“置顶公众号”

第一时间关注程序猿(媛)身边的故事


作者

丁彦军

来源

恋习Python

如需转载,请联系原作者授权。



深陷抄袭之名、诉讼纠纷的《爱情公寓》终于上映了。


情怀粉们的力量不容小觑,截止到撰稿,《爱情公寓》票房已经突破3.72亿大关,稳坐票房冠军的宝座,院线排片占比高达40.0%。



和超高票房背道而驰的,是各大社交平台上一边倒的差评。豆瓣万人打分,九成观众果断打了一星,只无奈豆瓣没有零星选项。


不知道有多少像我这样的情怀粉丝们,满怀期待地买了电影票,走进电影院,却发现是交了智商税。


豆瓣短评区里,观众们的状态已经出离愤怒,近乎暴走的状态。有人揭露电影挂羊头卖狗肉,电影内容和《爱情公寓》故事主线毫无关系。是山寨电影、诈骗电影、电影中的拼多多。


为了燃解我心头之恨,恋习Python将会跟你一起用猫眼上万条评论数据来分析,网友对这部电影的反响是否烂到刷新国产片不要脸的下限?


还是老规矩,整体思路将会从数据获取、数据清洗、数据可视化三部曲来进行:


1.数据获取清洗


整体思路与之前获取《邪不压正》评论一样,详情见《邪不压正》评分持续走低,上万条网友评论揭秘,是救救姜文还是救救观众?


具体代码如下:


import requests
import time 
import random
import json

#获取每一页数据
def get_one_page(url):

    response = requests.get(url=url)
    if response.status_code == 200:
        return response.text
    return None

#解析每一页数据
def parse_one_page(html):

    data = json.loads(html)['cmts']#获取评论内容
    for item in data:
        yield{
        'date':item['time'].split(' ')[0],
        'nickname':item['nickName'],
        'city':item['cityName'],
        'rate':item['score'],
        'conment':item['content']
        }

#保存到文本文档中
def save_to_txt():
    for i in range(1,1001):

        print("开始保存第%d页" % i)
        url = 'http://m.maoyan.com/mmdb/comments/movie/1175253.json?_v_=yes&offset=' + str(i)

        html = get_one_page(url)
        for item in parse_one_page(html):
            with open('爱情公寓.txt','a',encoding='utf-8'as f:
                f.write(item['date'] + ','+item['nickname'] +','+item['city'] +','
                    +str(item['rate']) +',' +item['conment']+'n')
                #time.sleep(random.randint(1,100)/20)
                time.sleep(2)

#去重重复的评论内容
def delete_repeat(old,new):
    oldfile = open(old,'r',encoding='utf-8')
    newfile = open(new,'w',encoding='utf-8')
    content_list = oldfile.readlines() #获取所有评论数据集
    content_alread = [] #存储去重后的评论数据集

    for line in content_list:
        if line not in content_alread:
            newfile.write(line+'n')
            content_alread.append(line)

if __name__ == '__main__':
    save_to_txt()
    delete_repeat(r'爱情公寓_old.txt',r'爱情公寓_new.txt')


2.数据分析可视化


我们将用Python的两个模块pddas与pyecharts:


pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。(详情请看:http://pyecharts.org/)


Pandas 是基于 NumPy 的一个非常好用的库,正如名字一样,人见人爱。之所以如此,就在于不论是读取、处理数据,用它都非常简单。Pandas 有两种自己独有的基本数据结构。要使用pandas,首先就得熟悉它的两个主要数据结构:Series和DataFrame。其中Series的性质和Python中原生的dict差不多,一个key对应一个vaule,而且key必须是唯一的;DataFrame(以下简称df)的性质则和SQL中的table差不多(详情请看:http://pandas.pydata.org/)。


真可谓电影界的”拼多多“


我们把城市打分情况投射到地图中,可以看出:


在热力图中,白银、绵阳、遵义等三四线城市热度相对高点,也可看出随着人们消费水平的升级,去电影院看电影是娱乐首选。在满足普通人民精神娱乐需求方面,但也不能挂羊头卖狗肉,电影内容和《爱情公寓》故事主线毫无关系。这难道不是电影界的拼多多么?


评分清一色,均为3星级


图为主要城市的评论数量与打分情况:

由图中可看出,各大城市观众打分均为3星级左右,这与猫眼评分6.6基本吻合;打出最高分与最低分分别是哈尔滨与中山。同时也能看出,一二线城市观众对此很失望。


有些人的良心被狗吃了?


看过了评分,我们看一下评论生成的词云图:


由词云图可以看出,爱情公寓、盗墓电影二词显目在列,整部电影就30秒和《爱情公寓》有关,所谓的集齐原班人马回归也只是个幌子,《爱情公寓》大电影完全是一部盗墓笔记,真正毁了《爱情公寓》这个ip,也毁了《盗墓笔记》这个ip。


但即便是在这样观众一致认为彻底失望的情况之下,依然有一波忠实的『粉丝们』坚守阵地。他们的手中依然紧握着情怀牌,打分也是一水的五星。



对于这些水军以及说《爱情公寓》好看的人,大家可以绝交了;作为观众,任何的关注都是助长《爱情公寓》的嚣张气焰,我们也有责任自发抵制烂片,决不让诈骗电影多赚一分钱。


以上信息具体代码为:

from wordcloud import WordCloud,STOPWORDS
import pandas as pd 
import jieba
import matplotlib.pyplot as plt 
#import seaborn as sns
from pyecharts import Geo,Style,Line,Bar,Overlap

f = open('爱情公寓_new.txt',encoding='utf-8')
data = pd.read_csv(f,sep=',',header=None,encoding='utf-8',names=['date','nickname','city','rate','comment'])

city = data.groupby(['city'])
rate_group = city['rate']
city_com = city['rate'].agg(['mean','count'])
#print(city_com)
city_com.reset_index(inplace=True)
city_com['mean'] = round(city_com['mean'],2)

#热力图分析
data_map = [(city_com['city'][i],city_com['count'][i]) for i in range(0,city_com.shape[0])]
#print(data_map)
style = Style(title_color="#fff",title_pos = "center",
            width = 1200,height = 600,background_color = "#404a59")

geo = Geo("《爱情公墓》粉丝人群地理位置","数据来源:恋习Python",**style.init_style)

while True:
    try:
        attr,val = geo.cast(data_map)
        geo.add("",attr,val,visual_range=[0,20],
                visual_text_color="#fff",symbol_size=20,
                is_visualmap=True,is_piecewise=True
                visual_split_number=4)
    except ValueError as e:
        e = str(e)
        e = e.split("No coordinate is specified for ")[1]#获取不支持的城市名
        for i in range(0,len(data_map)):
            if e in data_map[i]:
                data_map.pop[i]
                break

    else:
        break
geo.render('爱情公墓.html')

#折线+柱图分析
city_main = city_com.sort_values('count',ascending=False)[0:20]
#print(city_main)
attr = city_main['city']
v1 = city_main['count']
v2 = city_main['mean']
#print(attr,v1,v2)
line = Line("主要城市评分")
line.add("城市",attr,v2,is_stack=True,xaxis_rotate=30,yaxix_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,yaxix_min=4.2,
    xaxis_interval=0,is_splitline_show=False)

overlap = Overlap()
overlap.add(bar)
overlap.add(line,yaxis_index=1,is_add_yaxis=True)
overlap.render('主要城市评论数_平均分.html')


#词云分析
#分词
comment = jieba.cut(str(data['comment']),cut_all=False)
wl_space_split = " ".join(comment)

#导入背景图
backgroud_Image = plt.imread('lan.jpg'
stopwords = STOPWORDS.copy()
#print("STOPWORDS.copy()",help(STOPWORDS.copy()))


wc = WordCloud(width=1024,height=768,background_color='white',
    mask=backgroud_Image,font_path="C:simhei.ttf",
    stopwords=stopwords,max_font_size=400,
    random_state=50)

wc.generate_from_text(wl_space_split)
plt.imshow(wc)
plt.axis('off')#不显示坐标轴  
plt.show()
wc.to_file(r'laji.jpg')

最后,作为《爱情公寓》之前的铁粉,只想评价一个字:


烂在哪里?并不是烂在盗墓剧情,也不烂在演员特效。烂在它消费粉丝热情和爱戴,玩弄观众。


2.4分我想更多是对韦正和汪远的评价。为了赚钱,上映前吹嘘夸大,不设点映;为了赚钱,宣传片预告片MV大量回忆杀,关谷展博无限出镜;为了赚钱,藏着掖着不见光不露脸,以9.9分的保票“催”着粉丝买预售票。上映第一天3亿。赚的盆满钵满。


反过来看观众,哭着脸走出影院的,多数是被结尾彩蛋感动,彩蛋才真正传达了“爱情公寓精神”。主演们对着镜头的自白,说出了我们最想听到的几段话,才真正唤起了我们脑海里对爱情公寓的美好回忆。


电影结尾的彩蛋,小姨妈呼唤关谷的那一段,算是爱情公寓最感人的地方了吧。


但是,一个彩蛋真的配3亿票房吗?


用近乎做作的犹抱琵琶半遮面的营销手段,让大家对它憧憬,希望它能给我们的记忆画上一个圆满的句号,可却用一部近乎玩笑的垃圾影片嘲笑我们对它的喜爱。


打着情怀的旗号,将一个个剧版粉丝骗进电影院,将电影票钱装进自己的腰包。


这就是它最烂的地方。


- The End -

「若你有原创文章想与大家分享,欢迎投稿。」

加编辑微信ID,备注#投稿#:

程序 丨 druidlost  

小七 丨 duoshangshuang

上期精彩内容

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接