《人民的名义》相信是大家都不是陌生吧,去年可是火遍大江南北,号称史上最大尺度反贪反腐神剧,时隔许久还是看到许多关于该剧的文案;恰好最近在学习NLP相关知识,决定对其进行人物关系进行分析。而对人物关系最直观的表现应该是社交网络图谱或者关系图。
接下来,让我们一起来研究怎样制作人物关系图呢?

1.pyecharts 介绍

pyecharts 相关基础可参考

  • 用python做数据可视化之pyecharts基础
  • pyecharts做数据可视化(二)

pyecharts 官方文档可参考

  • pyecharts中文文档

2.数据准备

因为我们是希望跟贴近于剧情,所以选取剧本以切合大部分人熟悉的剧情。获取数据方式主要有网络数据采集、网络API方式获取、自定义网络爬虫工具等等,我们可以选择适合自己的方式来获取数据,数据文件和代码会在后期更新。

2.1 文本预处理

当我们拿到数据后,首先了解自己的数据包含什么信息。由于我们获取到的数据为文本文件,首先要对文本进行预处理;主要包括分词、去掉一些特殊字符和停用词等。就像我们可能会有外号啊、小名啊等等,所以剧中人物也会有不同名字,所以我们需要进行统一。为保证在分词时能够正确切分一些固定名称,所以需要导入自定义词典来帮助我们进行分词操作。在提取文本特征时需要去掉一些停用词,以提高分析的准确度。经过以上处理基本可以得到较为干净的文本文件。接下来可以在此基础上进行深入分析。

文本预处理可参考

  • 影视评论分析(一)

3.人物出现频次

首先我们可以通过人物在剧中出场次数来初步了解主角是谁?根据参演人员列表,统计该演员在剧中出现的次数,通过pyecharts画出出场次数top10的演员和出场次数,得知侯亮平戏份做多,供480余次;果然是大Boss。其次是我们的老戏骨和行走的表情包达康书记。废话不多说,有图有真相。

from pyecharts import Bar,Line,Overlap
import  pandas as pddf = pd.read_csv("人物出场次数统计.csv")
attr = df.ID[:11]
y_axis = df.Weight[:11]
bar = Bar("人物出场次数")
bar.add("", attr, y_axis,is_stack=False,bar_category_gap='20%')
line = Line()
line.add("",attr,y_axis)
overlap = Overlap()
overlap.add(bar)
overlap.add(line)
overlap.render("line_bar.html")

人物出场次数

4.社交网络关系

开始今天的重头戏哦,首先我们根据参演人员列表生成节点文件;采用句为单位进行分析,标识人物关系。得到参演人员的社交网络关系,通过求得的共现矩阵,借助Gephi画出社交网络关系图。图中边的粗细代表关系的密切程度或在剧中的交集。边越粗则表示两人关系越密切。而名字的大小即节点大小表示该参演人员在剧中的社交强弱或存在感。

4.1 pyecharts 实现

from pyecharts import Graph
import pandas as pddf_node = pd.read_csv("参演人员节点.csv")df_links = pd.read_excel('参演人员边大小.csv')
nodes = [{"name":name1.strip(),"symbolSize":size/10} for name1,size in zip(df_node.ID,df_node.Weight) if size>1 ]
# nodes = []
links = [{"source":name2.strip(),"target":name1.strip(),"value":weight}for name1,name2,weight in zip(df_links.name1,df_links.name2,df_links.frequency)]
graph = Graph("人民的名义关系图",width=1200,height=1000)
graph.add("", nodes, links,graph_layout="circular", repulsion=800, label_pos = "right",
graph_repulsion = 50, is_legend_show = False,
line_curve = 0.2, label_text_color = None)
graph.render()

人民的名义关系图

4.2 Gephi工具实现

  • 1.在https://gephi.org/ 下载windows版的安装包进行安装。打开后如下图所示。

  • 2.新建工程,导入数据
    选择数据资料tab,点击输入数字表格,添加节点和边的csv数据。

  • 3.点击概览调整相关样式。可以通过度,权重等信息修改相关的样式。

  • 4.修改字体,显示相应的标签

  • 5.选择一个自动化布局的方式,预览,再调整相关参数

4.2.1 效果展示

人民的名义人物关系图

人民的名义人物关系图

详细代码和样例html文件后期整理及时更新,也可以私信哦

作者:羽恒
链接:https://www.jianshu.com/p/6f3bbeca8d1c
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

pyecharts之参透神剧人物关系相关推荐

  1. 基于pyecharts的《红楼梦》人物关系可视化

    <红楼梦>人物关系可视化 <红楼梦>是我国四大名著之一,也是高中生必读书目之一.同学们在阅读红楼梦的时候,是否有以下困惑?人物太多?人物关系太复杂? 我们今天尝试着用信息技术中 ...

  2. 谋杀之谜 良辰吉日 人物关系图

    谋杀之谜 良辰吉日人物关系图 良辰吉日人物关系图(涉及剧透) 良辰吉日人物关系图(涉及剧透) 1.本子难度尚可 2.本子体验的好坏完全取决于组织者的能力,组织的好本子体验就会非常好 3.关系图可能涉及 ...

  3. Python来袭,教你用Neo4j构建“复联4”人物关系图谱!没有剧透!【文末赠书】...

    讲技术之前先引个好玩的热点话题,带你与时代接轨~ 漫威系列电影<复仇者联盟4>上映 你去看了吗? 小编就盼着周末去好好享受 谁剧透,跟谁急! 复仇者联盟 之 绝对不剧透 漫威英雄们为了不让 ...

  4. 网页开发 与数据联动的图_零基础学习数据可视化pyecharts人物关系图开发

    Pyecharts人物关系图开发 1. Pyecharts版本说明 Pyecharts的版本最新版本为1.7.0版本,此版本跟0.5版本的使用方法不一样了.很多参数方法配置不一样了.Import的内容 ...

  5. 【用matplotlib,wordcloud和pyecharts分析三国的分词,词频,词性,小说人物出场次数排序小说人物关系】

    前言 为了顺利完成作业,经过几天的网上查阅完成了[根据第1部分自然语言处理教学内容,请选择一本你喜欢的小说,利用上课讲的但不限于授课内容,对该小说进行分析.比如分析该小说的分词,词频,词性,小说人物出 ...

  6. 用pyecharts制作小说《剑来》的人物关系图(粗)

    先上效果 今天在一如既往地划水时,水友给我推了个小说叫<剑来>.下班回到家,准备下载了看一下,结果一看,光txt都要9MB,以我磨蹭的速度,怕不是明年都看不完.正好最近在做一些NLP相关的 ...

  7. 红楼梦人物关系图,一代大师成绝响,下回分解待何人,kindle读书摘要

    人物关系图: https://www.cnblogs.com/images/cnblogs_com/elesos/1120632/o_2033091006.jpg 红楼梦 (古典名著普及文库) (曹雪 ...

  8. 只需 20 行代码,就能读懂复仇者联盟的人物关系!| 技术头条

    作者 | beyondma,CSDN 博客专家 笔者虽不算是漫威迷,不过刚刚在看完了复仇者联盟4以后还是感觉非常非常震撼的,具体情节就不剧透了,可以负责的给出五星推荐指数.现在就让我怀着激动的心情,用 ...

  9. 书籍分析实例:哈利波特的分词及人物关系

    作者:文建华,小文的数据之旅,数据分析爱好者,不想当码农的伪码农.博客:zhihu.com/c_188462686 先简单介绍一下jieba中文分词包,jieba包主要有三种分词模式: 精确模式:默认 ...

  10. python自然语言分析--倚天屠龙记人物关系、词云、柱状图、-词频

    python倚天屠龙记人物关系.词云.柱状图.-词频 # -*- coding = utf-8 -*- # @Time : 2022/3/17 15:45 # @Author : luxiaoguo ...

最新文章

  1. 借助LDA主题分析的短文本相似性计算 - 综述帖
  2. 类似飞秋的局域网软件_内网视频会议软件系统
  3. GVA gin vue从后端接口获取多选下拉框数据
  4. 散列表的设计与实现_散列表:如何实现word编辑器的拼写检查?
  5. dotnet中的counter
  6. JavaSE——Java介绍与环境变量简述
  7. shell 查某个字符串_Shell脚本编程04——Shell编程之sed与awk
  8. PyQt5 实现类似海康的设备搜索工具
  9. Dell EMC Isilon命令行方式添加一个接口到pool
  10. java课程结课论文_Java技术综合课程设计论文
  11. 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
  12. 每天花半小时给孩子讲故事,把他培养成依赖书的人种
  13. IDEA 将项目打包war包
  14. 长安大学微型计算机原理与接口技术答案,长安大学微机原理与接口技术B卷答案...
  15. Android 简易QQ登录页面
  16. 服务器设置header返回信息,http服务器header返回时间问题
  17. Xshel和Xftp免费版下载
  18. 使用视频下载工具 you-get 下载视频
  19. 解决共享打印机引起0x000006d9故障
  20. intel NVME SSD 性能 P5600 P5510 P5520

热门文章

  1. Unable to start embedded Tomcat
  2. toupper在c语言中是什么意思,C语言中toupper 是什么?
  3. 成功解决The type Dog is already defined问题
  4. SPA单页面首屏加载慢怎么解决???
  5. Tableau——制作维恩图(交集图)
  6. python四级是什么水平_四级能过的水平大概什么水平?
  7. Unite 2018展区全曝光,Made with Unity精彩游戏等你来体验
  8. greenplum如何删除segment节点
  9. python实战项目词云生成器(wordcloud+jieba+pyinstaller打包)——词云生成软件【Pyinstaller打包问题解决】
  10. 设置好DNS CAA记录,轻松提高HTTPS站点安全