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

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

#有向图

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关系图谱_文本分析之制作网络关系图相关推荐

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

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

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

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

  3. tableau如何生成HTML文件,用Tableau快速制作网络关系图

    我以前写过一篇文章 <用Tableau制作网络关系图>,里面提到了Tableau本身不支持自动生成网络关系图,需要借助其他软件.提供Voronoi Treemap制作方法的Tristan ...

  4. 从知识图谱到文本:结合局部和全局图信息生成更高质量的文本

    论文标题: Modeling Global and Local Node Contexts for Text Generation from Knowledge Graphs 论文作者: Leonar ...

  5. tableau应用实战案例(三)-如何用Tableau制作网络关系图

    前言 唯一的一点点难度就在数据集的制作上,需要自己制作JSON文件,我用最简单的例子介绍: 数据生成网站: https://observablehq.com/@ladataviz/network-da ...

  6. mysql学生选课系统的关系模型_数据库系统原理ER模型与关系模型

    数据库系统是软件的一种,数据库系统自然而然也有他自己的生命周期生存期.它的生存期从规划开始,一直到将它卸载不用了.它的中间过程很复杂,为了实现用户的想法,数据库有关人员将现实生活中的数据进行抽象,然后 ...

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

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

  8. python分类流程_文本分类指南:你真的要错过 Python 吗?

    雷锋网按:本文为雷锋字幕组编译的技术博客,原标题 A Comprehensive Guide to Understand and Implement Text Classification in Py ...

  9. echarts做企业关系图谱_使用Echarts呈现天善用户的关系图

    前一个博客:"<Python网络数据采集>读后总结 --第3章及天善用户关系分析实例"提到了怎么获取天善用户的关系数据,但没有说如何更好呈现关系图,这次介绍一下使用Ec ...

最新文章

  1. linux 定时重启mysql_Linux下定时自动重启apache及mysql
  2. 一段时间以来的SEO优化结果
  3. 一个人生活可以多痛快
  4. 为什么90%的人都抓不住暴富的机会?
  5. 项目出现 The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path 解决方法
  6. SELinux 案例 1
  7. 水晶报表中的主从表结构
  8. PLSQL中的RECORD小例子
  9. Android进程管理
  10. adb手机无法识别 vivo_vivo安卓adb工具
  11. 西门子S7-200 SMART编程软件下载
  12. 流量卡之家:5G手机价格没那么“邪性” 门槛降低一半
  13. 锐捷服务器虚拟化技术_锐捷RG-RCD6000 V2云课堂云主机
  14. 【igraph实例】Commmunity 识别
  15. [OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=)
  16. 与鲨共舞:当AI遇见海洋杀手
  17. 手机玩exe游戏的模拟器_如何在手机上玩全面战争模拟器等电脑付费游戏?
  18. 【更新】全新的数据填报,更强的BI分析,Wyn Enterprise V3.0 Update 2 发布
  19. city.json 城市区域数据
  20. 分布式事务解决方案「手写代码」

热门文章

  1. 使用windows命令行查看mySQL应用的安装路径
  2. Angular框架里两个模块的互相依赖
  3. test of ui5 duplicate control id
  4. 使用async,await关键字进行API Access Token的获取
  5. 为什么有的S4系统看不到Adapt UI按钮
  6. WordPress Kyma plugin检测kyma连接状态的逻辑
  7. 得到application server上所有的logon user
  8. 如何快速找到settype被assign的product category
  9. when is One Order gt_plan_exets filled
  10. 关于错误Resource interpreted as Script but transferred with MIME type text_html