最近忙于学术,公众号更新的有点慢了,在这里给大家个歉,希望大家能继续支持我。由于学术需要,未来一段时间,我以后会有一些文本分析的脚本要出现,希望大家喜欢。

目前简单的文本分析已经满足我人物需要,所以还不会去学机器学习,任务导向是最好的学习方法。希望大家也能找点有意思任务,python下。

今天给大家带来我写好的脚本,用来分析社会网络关系。

这个图我没有用到gephi或者其他的工具,是我用python纯脚本运行出来的。简单的实现了封装,大家有兴趣可以下载下脚本,运行下。

原理知识

我就简单说下原理吧,先刻画一个简单的图A

import networkx as nx

import matplotlib.pyplot as plt

#有向图

DG = nx.DiGraph()

#添加一个节点

DG.add_node('A')

#作图,设置节点名显示,节点大小,节点颜色

nx.draw(DG,with_labels=True,node_size=900,node_color = 'green')

plt.show()

双节点,有方向A-->B

双节点,有方向A-->B

#有向图

DG = nx.DiGraph()

#添加一个节点

DG.add_node('A')

DG.add_node('B')

#添加边,有方向,A-->B

DG.add_edge('A','B')

#作图,设置节点名显示,节点大小,节点颜色

nx.draw(DG,with_labels=True,node_size=900,node_color = 'green')

plt.show()

添加更多节点

添加更多节点

import networkx as nx

import matplotlib.pyplot as plt

colors = ['red', 'green', 'blue', 'yellow']

#有向图

DG = nx.DiGraph()

#一次性添加多节点,输入的格式为列表

DG.add_nodes_from(['A', 'B', 'C', 'D'])

#添加边,数据格式为列表

DG.add_edges_from([('A', 'B'), ('A', 'C'), ('A', 'D'), ('D','A')])

#作图,设置节点名显示,节点大小,节点颜色

nx.draw(DG,with_labels=True, node_size=900, node_color = colors)

plt.show()

好了,同样的道理,咱们建立角色词典,插入节点列表,然后遍历插入有向边关系,就能做出这图

好了,同样的道理,咱们建立角色词典,插入节点列表,然后遍历插入有向边关系,就能做出这图

详情大家可以去看看

详情大家可以去看看 实验楼网

《Python基于共现提取《釜山行》人物关系》

这篇文章写的很好(希望不要黑我,我也是觉得真心好)。我基本上借鉴了这篇文章思路写今天这个脚本,实现了自动生成关系网络图。

准备工作

一、安装matplotlib、networkx

二、解决matplotlib无法写中文问题

1、找到pythonX\lib\site-packages\matplotlib\mpl-data\fonts\ttf文件夹

2、matplotlib默认调用的为DejaVuSans.ttf字体文件,网上下载个

微软雅黑.ttf

3、将微软雅黑文件名改为DejaVuSans.ttf粘贴到ttf文件夹下即可。

脚本文件简介

你下载后脚本 文件夹名 为:人民的名义

其中的relationship.py就是大邓写的库(直接能调用的哦)

实现功能:

1、读入小数数据和角色词典后,对数据分词后生成角色关系数据(有向关系数据)

2、无需gephi绘图即可制作绚丽角色关系网络图。

注意:

1、运行脚本前,文件夹中只保留 角色名单.txt 人民的名义.txt 和 relationship.py

2、要想图片好看点,一定要联网啊。里面我写了个爬虫,爬取一个配色网站的配色值。

如果你们想单机也可以画出好看的图,可以修改下代码,将代码爬虫部分改成读取本地颜色数据

使用示例

1、建好小说数据中的角色字典,格式如下

2、在文件夹中放入小说txt文件(人民的名义.txt)

3、在脚本文件夹中新建一个test.py文件

#导入relationship库中的Relationship类

from relationship import Relationship

#自定义节点词典(小说中人物角色)

dictpath = r'/Users/suosuo/Desktop/人民的名义/角色名单.txt'

#小说路径,只能是编码方式为utf-8的txt文件

datapath = r'/Users/suosuo/Desktop/人民的名义/人民的名义.txt'

#程序运行生成的角色关系图保存地址

pic = r'/Users/suosuo/Desktop/人民的名义/人物关系图.png'

Re = Relationship(dictpath, datapath)

relation = Re.relationship()

graph = Re.network_digraph(relation, pic)

4、运行

文件夹中生成了 人物关系图.png、node_edge.txt和node_freq.txt文件。

node_edge.txt 有向图关系数据,可以后续导入gephi软件自定义制图

node_freq.txt 节点出现频率

注意: 每次运行前请把人物关系图.png、node_edge.txt和node_freq.txt文件删除掉,再运行

关注公众号:大邓带你玩python

文中末尾附有脚本文件下载地址

更多内容

文本分析

爬虫

神奇的python

python绘制社会关系网络图_文本分析之制作网络关系图(Python)相关推荐

  1. python绘制社会关系网络图_文本分析之制作网络关系图——Python

    今天给大家带来我一个脚本,用来分析社会网络关系. 这个图我没有用到gephi或者其他的工具,是我用python纯脚本运行出来的.简单的实现了封装,大家有兴趣可以下载下脚本,运行下. 原理知识 我就简单 ...

  2. python词汇网络分析_文本分析之制作网络关系图——Python

    今天给大年夜家带来我一个脚本,用来分析社会收集关系. 这个图我没有效到gephi或者其他的对象,是我用python纯脚本运行出来的.简单的实现了封装,大年夜家有兴趣可以下载下脚本,运行下. 1.建好小 ...

  3. python关系图谱_文本分析之制作网络关系图

    最近忙于学术,公众号更新的有点慢了,在这里给大家个歉,希望大家能继续支持我.由于学术需要,未来一段时间,我以后会有一些文本分析的脚本要出现,希望大家喜欢. 目前简单的文本分析已经满足我人物需要,所以还 ...

  4. python绘制社会关系网络图_python networkx 包绘制复杂网络关系图的实现

    1. 创建一个图 import networkx as nx g = nx.Graph() g.clear() #将图上元素清空 所有的构建复杂网络图的操作基本都围绕这个g来执行. 2. 节点 节点的 ...

  5. 学校作业5_1字符串_文本分析与加密(头哥作业[Python])

    本系列文章为同学困扰的python做出作业答案汇总,答案皆为本学生自己边学边做汇总上传的,编排不易,希望大家喜欢. 本作业所有内容均在github上有留存,每次作业github上会最先发布,CSDN上 ...

  6. python绘制社会关系网络图_Python networkx 网络图绘制

    简单演示 import networkx as nx import matplotlib.pyplot as plt # 定义空图 g = nx.Graph() # 增加节点 g.add_node(1 ...

  7. python绘制网络关系图

    import networkx as nx# 数据准备 G = nx.DiGraph() # 单边有向图G.add_edges_from([(1,2), ('x','y'), (2,3)...]) # ...

  8. 数据可视化—复杂网络关系图的绘制

    数据可视化的含义 将抽象概念进行形象性表达,将抽象语言进行具象图形可视的过程. 以数据为工具,以可视化为手段,去达到描述真实,探索世界的目的. 以数据的视角,去看待世界. 数据可视化其实是一个处于不断 ...

  9. python 使用文本注解绘制树节点_实用篇 | 34 个最火的 Python 开源框架

    阅读文本大概需要 5 分钟. 我们从近 10000 个 Python 开源框架中评价整理的 34 个最为好用的开源框架,它们细分可以分为 Python Toolkit.Web.Terminal.Cod ...

  10. python使用jieba模块进行文本分析和搜索引擎推广“旅行青蛙”数据分析实战

    目录 1 需要导入的模块 2 中文分词基础步骤 2.1 载入数据 2.2 分词 2.3 分词后的数据转回文本 2.4 保存分词后的文本为文本文件 3 添加自定义词典 3.1 方法1:直接定义词典列表 ...

最新文章

  1. 11.菜单界面、详情界面
  2. Python 语法错误:“SyntaxError: invalid character in identifier“,原因及解决方法
  3. 报表测试用例设计方法总结
  4. pythonui教学视频_分享软件开发相关视频教程(Java、C++、Python、UI设计、HTML5、iOS)...
  5. 基于JAVA+Swing+MYSQL的进销存管理系统
  6. B/S应用中的ActiveX数字签名相关问题杂谈
  7. NPOI自定义单元格背景颜色
  8. LeetCode解题思路—区间合并
  9. 计算机毕业设计ssm汽车租赁系统42876系统+程序+源码+lw+远程部署
  10. 【JY】力荐佳作《结构地震分析编程与应用》
  11. JAVA随机抽取一名幸运观众(手动输入观众)小实例
  12. w7文件加密提示没启用服务器,win7文件夹设置密码没有密钥提示该怎么解决
  13. BJT转UTC世界协调时
  14. python批量压缩图片_Python图片批量压缩到指定大小并将JPG转为PNG格式
  15. iOS 设置tableview组头组尾的背景色
  16. plotly 坐标轴(axes)设置
  17. 用Java求出所有水花仙花数
  18. C++输入0结束循环
  19. Postman:通过CSV文件实现接口自动化测试,实际结果预期结果对比,断言判断用例是否通过(上)
  20. CSS--网页样式布局(一)

热门文章

  1. 大学计算机专业的同学是怎么学习的?
  2. 什么是飞书机器人?如何定时发送飞书机器人消息?
  3. 第一章-第六题(帮人抢票,帮人选课这些软件是否合法 你怎么看?)--By梁旭晖...
  4. 数据库SQL 某字段按首字母排序
  5. win10点一个程序要很久才响应解决方法
  6. 短信网关平台选型推荐
  7. 会说话的汤姆猫2 Talking Tom 2(含数据包) v2.0.3
  8. STM32绝对地址赋值
  9. Google Analytics SEO 实时 网站 访问量 统计
  10. PHP开发基础(一)