最近一直在追一部电视剧——破冰行动


今天晚上大结局,我是看完后,来写这篇文章的...


全剧一共48集,虽说有些地方感觉不是那么的合理(弹幕疯狂吐槽编剧)。


比如「赵嘉良」作为香港大佬,还和扛把子罗绍洪是生死之交,居然被「林耀东」一个小小的村主任给暴揍。


还有「李飞」作为一名人民警察,咋天天我行我素的。


这服从命令又从何说起呢?


不过于我而言,这部剧还是不错的,毕竟什么事都没有完美的结局


就像我天天码字一样,也不例外,总有毛病...


剧中蔡永强的金句,堪称经典。



不是每个人都能看见真相,但每个人一定能成为真相。



我讲证据,有证据他就有问题,没有证据他就没有问题。



把脾气拿出来,是本能。


把脾气压下去,是本事。



处理不好,有时候优点,就会变成缺点。


与此同时我也发现了爱奇艺对电视剧进行数据分析的一个网站——爱奇艺指数。



受众观点这里出问题了,没有显示出来(昨天还好好的)。


所以接下来就通过网站上的数据来复现一次。



/ 01 / 播放地域


数据就是从网站上拿的,然后通过pyecharts生成地图。


爬取代码就不放了,也比较简单,给大家展示一下数据就好。



这里感觉数据应该是各地区的播放量。


import pandas as pd

# 读取数据
df = pd.read_csv('map.csv', header=None, names=['name''value'], encoding='gbk')

# 地图参数
value = [int(i) for i in df['value']]
attr = [i.replace('省''').replace('特别行政区''').replace('自治区''').replace('回族''').replace('壮族''').replace('市''').replace('维吾尔'''for i in df['name']]

# 绘制地图
map = Map("破冰行动播放地域分布", title_pos='center', title_top=0)
map.add("", attr, value, maptype="china", is_visualmap=True, visual_text_color="#000", is_map_symbol_show=False, visual_range=[060000000], is_piecewise=True, visual_split_number=5, visual_range_color=['#C5F1D8''#99E6BB''#6EDC9E''#42D1A9''#16C664'], visual_range_text=['低''高'])
map.render('破冰行动播放地域分布.html')


生成分布图如下。



这里调整了一下地图颜色,所以和网站的地图看起来就差不多了。


可以发现沿海省份观看的人数相对较多。



/ 02 / 明星看点


明星看点是一张河流图,是面积图的一种形式。


数据是基于智能图像识别技术,自动分析出特定明星出场的片段,反映视频的角色出场比重


同样,数据来自于网站,爬取不做分析,仅展示数据。



这里发现12集黄景瑜」没有出场,没有飞飞」的日子,弹幕应该会很开心。


from pyecharts import ThemeRiver
import pandas as pd
import numpy as np

# 读取数据
df = pd.read_csv('people.csv', header=None, names=['num''value''name'], encoding='gbk')

# 将DataFrame转为List
data = np.array(df)
result = data.tolist()

# 绘制河流图
tr = ThemeRiver("破冰行动明星看点", title_pos='center', title_top='0', width=800, height=400)
tr.add(['黄景瑜''吴刚''王劲松''任达华''李墨之''张晞临''公磊'], result, is_label_show=False, legend_top='7%')
tr.render("破冰行动明星看点.html")


生成河流图如下。



这里pyecharts没法对集数生成时间序列,所以横坐标看着有点尴尬,实际上就是1到48集。


下面就是最后一集的数据图,「公磊」饰演的「林宗辉」在上一集领盒饭了,所以数据显示为0。



黑色圆圈处,为吴刚老师饰演的李维民」被省纪委调查。


最后剧情表明那只是一个局而已(不愧是达康书记)~



/ 03 /  人物词云


获取网站上2万多条评论数据,对人物进行词云展示



就是不知道第一列的数字是什么意思...


from wordcloud import WordCloud
import matplotlib.pyplot as plt
import pandas as pd
import random
import jieba

# 读取数据
df = pd.read_csv('iqiyi.csv', header=None, names=['num''comment''key''emotion''type'], encoding='utf-8-sig')

# 设置文本随机颜色
def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
    h, s, l = random.choice([(1887253), (2536356), (127869)])
    return "hsl({}, {}%, {}%)".format(h, s, l)


def create_wordcloud(df, picture):
    """
    生成标题以及摘要词云
    """

    words = pd.read_csv('chineseStopWords.txt', encoding='gbk', sep='\t', names=['stopword'])
    # 分词
    text = ''
    for line in df['comment']:
        text += ' '.join(jieba.cut(str(line), cut_all=False))
    # 停用词
    stopwords = set('')
    stopwords.update(words['stopword'])
    backgroud_Image = plt.imread('iqiyi.jpg')
    wc = WordCloud(
        background_color='white',
        mask=backgroud_Image,
        font_path='C:\Windows\Fonts\华康俪金黑W8.TTF',
        max_words=2000,
        max_font_size=150,
        min_font_size=15,
        prefer_horizontal=1,
        color_func=random_color_func,
        random_state=50,
        stopwords=stopwords
    )
    wc.generate_from_text(text)
    # 看看词频高的有哪些
    process_word = WordCloud.process_text(wc, text)
    sort = sorted(process_word.items(), key=lambda e: e[1], reverse=True)
    print(sort[:50])
    plt.imshow(wc)
    plt.axis('off')
    wc.to_file(picture)
    print('生成词云成功!')

全部评论
create_wordcloud(df, '全部.jpg')

# 包含李飞的评论
# df = df[df['comment'].str.contains('李飞|景瑜|飞|飞飞')]
# create_wordcloud(df, '李飞.jpg')

# 包含李维民的评论
# df = df[df['comment'].str.contains('李维民|书记|达康|李局|吴刚')]
# create_wordcloud(df, '李维民.jpg')

# 包含林耀东的评论
# df = df[df['comment'].str.contains('林耀东|东叔|吴劲松')]
# create_wordcloud(df, '林耀东.jpg')

# 包含赵嘉良的评论
# df = df[df['comment'].str.contains('赵嘉良|良叔|任达华')]
# create_wordcloud(df, '赵嘉良.jpg')

# df = df[df['comment'].str.contains('编剧|导演')]
# create_wordcloud(df, '编剧_导演.jpg')


先看一下全部评论的词云图。



口碑很不错,所以也推荐大家去看看哈。


先来看一下「黄景瑜」饰演的「李飞」,该剧的男主角。



有夸的,也有贬的,就我观察弹幕来看,贬大于夸。


「快进」「败笔」「讨厌」「没脑子」,看剧的时候我是有感觉的...


「吴刚老师」饰演的「李维民」,「达康书记」相信大家不会忘吧!



满满的都是赞扬,不愧是演技派。


「王劲松」饰演的「林耀东」,琅琊榜的言侯爷,又一位演技派!



总之一个字「狠」。


「任达华」饰演的「赵嘉良」,在剧中极为可爱...



老戏骨就是不一样,大家都很喜欢。


最后来看一下备受吐槽的编剧和导演们。



有褒有贬,也能说明一些问题。



/ 04 / 总结


相关数据已上传网盘,公众号回复「破冰」即可获取。


在此强烈推荐大家去看这部电视剧。


一方面这部电视剧是以真实案件为例,很真实。


另一方面也可以学一学蔡永强的说话之道,咋就有点蔡永康的感觉...



万水千山总是情,点个「在看」行不行。





···  END  ···



©著作权归作者所有:来自51CTO博客作者mb5fe18ec4a4df8的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 为什么你不应该成为一个“数据科学“通才?
  2. Python数据科学:神经网络
  3. 用数据分析大家最喜欢什么类型的抖音视频。
  4. 【知识星球】:Python数据科学学习社区
  5. JavaScript加密逻辑分析与Python模拟执行实现数据爬取
  6. Python数据科学:决策树
  7. 数据整合与数据清洗。
  8. Python数据科学:Logistic回归
  9. Python数据可视化:网易云音乐歌单

随机推荐

  1. 1.1 创建android工程
  2. 初识Android系统平台
  3. Android View系列 - 坐标系
  4. Android(安卓)SDK 源码下载,eclipse关联
  5. 视频专辑: 善知堂android 4.0.3 就业视频
  6. 给Activity切换加入动画
  7. 知识储备:Android系统架构
  8. android 1.5 NDK发布
  9. qpython3:安卓上运行Python
  10. Android(安卓)View Attributes