先上效果

今天在一如既往地划水时,水友给我推了个小说叫《剑来》。下班回到家,准备下载了看一下,结果一看,光txt都要9MB,以我磨蹭的速度,怕不是明年都看不完。正好最近在做一些NLP相关的东西,就想拿这个小说来练个手。

根据小说的内容,建立一个简单的人物关系图

思路大概是:

1. 建立人物列表

2. 计算每个人物在小说里的出现次数

3. 计算每2个人物在小说里共同出现的次数

4. 把1,2,3制作成简单的图表

#! /usr/bin/env python
# -*- coding: utf-8 -*-from pyecharts import Graph#对全文根据句号进行分割
def cut_test():reader = open("jianlai.txt","r",encoding="utf-8").read()sentence_list = reader.split("。")return sentence_list#计算名字在全文中出现的次数
def count_name():reader = open("jianlai.txt", "r", encoding="utf-8").read()output = []for i in name:count = reader.count(i)# 主角出现的次数太多,最终作图效果会受影响,这个小小处理一下if i == "陈平安":count = count/5row = {"name": i, "symbolSize": count/100}output.append(row)return output#计算两个角色一起出现在一句句子里的次数
def get_rel(name1, name2,snetence):counter = 0for i in sentence:if name1 in i and name2 in i:counter +=1row = {"source": name1, "target": name2, "weight": counter/100}return row#根据所有角色列表,计算两两角色一起出现的次数
def count_re():output = []counter = 0for i in name:for m in name[counter:]:if i != m:row = get_rel(i,m,sentence)if row["weight"] >0:output.append(get_rel(i,m,sentence))counter += 1return output#用pyecharts画图
def paint_grapg(nodes=[],links=[]):print(nodes)print(links)nodes = nodeslinks = linksgraph = Graph("《剑来》人物关系热力图", height=800)graph.add("",nodes,links,graph_repulsion=200,graph_edge_length=400,graph_layout="force",is_label_show=True,line_opacity=0.2,line_curve=0.5)graph.use_theme("dark")graph.render()if __name__ == '__main__':name = ['陈平安', '齐静春', '宁姚', '阮秀', '李宝瓶', '宋集薪', '稚圭', '老秀才', '阿良', '左右', '崔瀺', '阮邛', '老杨头', '陆沉', '道老二', '宋长镜','李二', '郑大风', '魏檗', '崔姓老人', '裴杯', '曹慈', '裴钱']sentence = cut_test()name_count = count_name()rel_count = count_re()paint_grapg(name_count,count_re())
复制代码

下一步可以做的优化

1. 现在所有的人物都没有分类,下一步可以根据人物的性别、门派做一个简单的分类

2. 做完才发现这一版连jieba都没用,下一步可以对句子做一些分词和词性标记,看能不能提取点什么好玩的东西出来。

3. 现在人物之间的“共同出现”关系的频次没有表现在图表上,可以下次优化

4. 现在人物之间仅有“共同出现”这一种关系,可以考虑制作更多的人物关系类型,扩展以后,可以考虑使用neo4j或者d3来做呈现。

转载于:https://juejin.im/post/5c0ea550e51d457d8c210a50

用pyecharts制作小说《剑来》的人物关系图(粗)相关推荐

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

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

  2. python实现对小说的文本分析(人物关系图,人物词云等)

    文本分析 0.效果图 这里有些"二人"."不会"等词语没用筛选掉,手动筛选即可. 1.整体思路: 调用的库:jieba,matplotlib,networkx, ...

  3. python代码电影人物关系_Python基于network模块制作电影人物关系图

    Python基于network模块制作电影人物关系图,节点,值为,模块,关系,算法 Python基于network模块制作电影人物关系图 易采站长站,站长之家为您整理了Python基于network模 ...

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

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

  5. Tableau制作人物关系图

    人物关系图可以清晰表示人物之间的关联关系,通过这种关系的呈现给人直观印象,能够达到总览人物故事的全貌,一起看下这个人物关系图是怎样制作的吧. 在绘制人物关系图之前我们需要设计人物关系图,看似杂乱无章的 ...

  6. Python 三国演义文本可视化(词云,人物关系图,主要人物出场次数,章回字数)

    文章目录 效果展示 介绍 软件架构 使用说明 导入需要的库 执行main.py 这里以三国演义为例 三国演义.txt alice_mask.png 效果展示 介绍 Python读取小说文本,绘制词云图 ...

  7. 射雕英雄传人物关系python_《射雕英雄传》人物关系图

    读完一本书,非虚构类的,要画思维导图,串联脉络,找出结构. 而虚构类的如小说,最好就是画出人物关系图,在人与人之间的爱恨情仇中,串联情节,还原整个故事. <射雕英雄传>的人物关系图,在网上 ...

  8. python 课后习题:项目二数据分析之《冰与火之歌》全五卷人物关系图

    其实这种人物关系图网上教程一大堆,我也是照着做的.在这里说一下我出错的地方,以及需要注意的一些东西. 注意: a. 代码缩进,我照着网上抄,网上的缩进不清楚然后我抄错了都没发现,结果出现了人名出现次数 ...

  9. 有哪些思维导图或其他软件适合画人物关系图?

    先说思维导图软件(以MindMaster为例) 诚然,大部分思维导图软件都是有一个中心主题,然后向两边发散.但是也有小部分思维导图软件支持"浮动主题",比如MindMaster.所 ...

最新文章

  1. HTML表格颜色按条件填充,Excel单元格能否根据条件填充颜色?
  2. Day03 - Ruby比一比:Module的include与extend
  3. git pull 默认拉取远端其他分支 问题解决
  4. python处理excel表格大小-如何用python处理excel表格
  5. 【Python基础】python使用openpyxl操作excel
  6. win10前置耳机插孔没声音_音频服务未运行怎么办?win7和win10电脑没声音了恢复方法...
  7. Java自动化邮件中发送图表(一)
  8. Power BI 如何获取数据做可视化
  9. 云服务器文件传输问题
  10. pip/pip3更换国内源
  11. 搭建自己的博客(二十七):增加登录注册以及个人资料按钮
  12. java虚拟机之一内存运行时数据区域解释
  13. php无刷新跳转,用#号实现web页面的无刷新跳转
  14. 角度控制_手机拍剪影,选择拍摄角度,还要控制画面亮度
  15. word2vec实例详解python_在python下实现word2vec词向量训练与加载实例
  16. JAVA设计模式Design Pattern→单例模式Singleton Pattern、工厂模式Factory Pattern、代理模式Proxy Pattern
  17. [转][整理]Linux下找不到共享库(shared object)
  18. 登录服务器的详细步骤
  19. Scrapy爬虫框架详解
  20. RK3568 Android12 长按power键功能设置

热门文章

  1. 计算机基础知识形考 客观题,2015-电大形考-计算机应用基础---Windows-7操作系统---客观题(答案)...
  2. 特斯拉家用电池供不应求 马斯克称以车用为主
  3. iPhone用户干货:袋鼠下载,如何导出已下载的视频到其他播放器?
  4. 1010001b 1101110b怎么用计算机,计算机考试中 求助电脑帝
  5. 【.Net码农】WPF界面设计—撸大师
  6. 松下PLC通过fpwin上传写入MRTC模块方法
  7. Stochastic Gradient Descend和mini batch SGD区别
  8. Test leakage
  9. 外地人员在京补办身份证流程
  10. 朗强:HDMI画面拼接分割器的功能及应用