天龙八部端游天下第一人多吗(通过Python快速分析出谁是天龙八部的主角)

#创作挑战赛#

小时候夏天最高兴的事,就是一群小伙伴等待着夜幕的降临、围在黑白电视机前等待着《天龙八部》的播出,这是童年最开心的事,还记得萧峰的豪爽、段誉的风流和虚竹的诚实以及神秘莫测的逍遥子,这些都是童年的偶像。

那么,如何快速分析出谁是《天龙八部》的主角呢?要想分析出谁是《天龙八部》的主角,可以采用数据分析三部曲来做?

数据分析三部曲乘风破浪

原数据的准备、原数据可以采用爬虫的方式去抓取《天龙八部的》的全部章节、要不分析的结果会有偏差,或者直接百度一下“天龙八部 txt”点击回车就出来了,懂得都会懂。本文只讲数据分析、不讲爬虫后期会讲如何抓取《天龙八部》并保存成txt文档、或者参考我写的使用golang结合goquery抓取数据的爬虫 只需要修改下就可以用。

只待东风

数据已准备好,接下来就是准备工作了,开发语言我们采用python语言版本是3..系列、还需要安装jieba和pandas这两个库php install pandans和pip install jieba,下载完之后,shell中输入pip list,如果看到

jieba 0.42.1 pandas 1.3.3

那么恭喜你、你可以快乐地造起来了~

傲游太虚
  • 读取数据、通过分词切割出来、主要人物出现的次数,按照次数的大小转换成表格数据。保存到csv文件中,以便图表分析展示使用

import jieba import pandas as pd with open('天龙八部.txt',encoding='utf-8') as file: text = file.read() words = jieba.lcut(text) # 全部 names = ["萧峰","段誉","虚竹","鸠摩智","天山童姥","阿紫", "王语嫣","段正淳","阿朱","慕容复","段延庆","叶二娘", "康敏","南海鳄神","云中鹤","游坦之"] # 主要人物统计,不是这几个人物不需要,主要原因是考虑本地磁盘不足的问题~ counts = {} for word in words: if word not in names: continue counts[word] = counts.get(word,0) 1 dataname=sorted(counts.items(), key=lambda a: a[1], reverse=True) #按高到低顺序,按照列表中第二个元素排序,以字典形式储存 list_log = [] for d in dataname: list_log.append([d[0],d[1]]) # 不要思考太多,简单转换方法 df = pd.DataFrame(list_log,columns=['人物','统计数']) df.to_csv('天龙八部-Data.csv') print("基础分析保存成功~")

基础分析保存成功~

如果出现“基础分析保存成功~”的提示、那恭喜你,你已经走出了万里长征路上的第一步

天龙八部端游天下第一人多吗(通过Python快速分析出谁是天龙八部的主角)(1)

  • 数据有了,我们通过分析数据,来一点一点的证明谁是主角吧~

import pandas as pd from pyecharts.charts import Bar,Grid import pyecharts.options as opts read = pd.read_csv('天龙八部-Data.csv',index_col=[0]) x = [] y = [] for r_name in read["人物"]: x.append(r_name) for r in read["统计数"]: y.append(r)br bar = (Bar() .add_xaxis(x) .add_yaxis("出镜次数:",y) .set_global_opts(title_opts=opts.TitleOpts(title="《天龙八部》出镜最多的人物"))) grid = (Grid(init_opts=opts.InitOpts(width="985px",height="800px")) .add(bar,grid_opts=opts.GridOpts(is_show=False,pos_right="0",pos_left="0"))) grid.render_notebook()

天龙八部端游天下第一人多吗(通过Python快速分析出谁是天龙八部的主角)(2)

通过柱形图可以看出出镜最多的是1881次的段誉、最少的是1次的康敏,很明显《天龙八部》的主角是段誉。

  • 词云图分析出镜最多的角色~

import pandas as pd import pyecharts.options as opts from pyecharts.charts import WordCloud data = pd.read_csv('天龙八部-Data.csv',index_col=[0]) x = [] y = [] for r_name in read["人物"]: x.append(r_name) for r in read["统计数"]: y.append(r) name = x value = y data1 = [z for z in zip(name,value)] chart = WordCloud() chart.add('《天龙八部》谁是主角 ?',data_pair=data1,shape='star',word_size_range=[6,66]) chart.set_global_opts( title_opts=opts.TitleOpts(title='《天龙八部》谁是主角 ?', title_textstyle_opts=opts.TextStyleOpts(font_size=23)), tooltip_opts=opts.TooltipOpts(is_show=True)) chart.render_notebook()

天龙八部端游天下第一人多吗(通过Python快速分析出谁是天龙八部的主角)(3)


通过数据分析三部曲我们可以看出来谁是《天龙八部》的主角了,接下来的章节我们可以通过对人物更加深层次的解读来讲解分析他们的情感分析以及人物关系。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页