精华内容
下载资源
问答
  • gephi生成网络关系图
    2020-11-23 03:15:51

    7983fb02c0eeec6943622df4e45e489a.png

    1、工具介绍

    jieba

    jieba分词,最好用的开源中文分词工具。他最主要的两个功能是分词和关键词的抽取。在这里,我们需要用他的分词功能来提取文本中的人名。

    gephi

    gephi是一个开源的复杂网络数据可视化软件,可用于探索数据分析、链路分析、社交网络分析、生物网络分析等。我们需要把数据处理成gephi可接受的csv格式,然后再进行绘制。感兴趣的可以查看使用教程

    Gephi 入门使用_网络_飞羽的博客-CSDN博客​blog.csdn.net
    1357b327e68bb1d1c97bcb2aaaed857f.png

    2、背景

    数据处理方式

    在词云中,我们只能通过词的大小来了解该词对于文本集是否起关键作用,无法探究人物之间的关系;在关系网图中,不仅可以了解词的关键程度,还能发现人物之间的联系,更能说明问题。由此可见,绘制词云时,我们只需要提取两列数据,一列人名,一列为频率。而绘制网络图时,就需要两组数据。网络图,顾名思义,就是一张图。所有的图都是由节点和边构成的。节点数据也就是节点值+权重,边数据就是出度+入度+权重。

    具体处理方式如下:

    1. 对文本进行针对性分词,统计人物在本文中的出场次数。
    2. 以段落为单位进行划分,统计每段中的人物,两两配对后计数,形成粗略的人物关系统计。
    3. 数据为gephi特定的csv格式,人物出场次数输出为格式为(Id,Label,Weight),人物关系输出格式为(Source,Target,Weigh)。这也就是之前所说的,用来绘制图的节点和边数据。

    可能存在的问题

    根据上文描述的统计方法来进行统计显然是粗略的,有很多问题需要进一步考量。

    1. 以自然段为单位统计人物关系是否合理?真实情况中有很多跨段落的人物关系。
    2. 显然利用笛卡尔积来统计人物之间的关系也是有问题的。
    3. 人物之前的称呼仅仅是直呼姓名的吗?显然还有多种代词。

    结果虽然是粗略的,但是通过对文本的理解,绘制的图依然有一定的参考意义。

    实现流程

    代码实现分为三步,1. 人物出场次数统计。2. 人物关系统计。3. 格式化输出。

    一、准备工作

    准备两份字典、用于分词:

    文本人物字典

    文本人物字典包含了文本中的大部分人名,或者说是我们关心的人物的人名。

    • 人物别称映射字典
      民国时期的散文,势必每个人会有多个称呼,在文化人中甚多。蕊生、我、兰成、胡先生指代的都是胡兰成。因此需要一个映射字典,将不同的称呼都映射到同一个人名当中。

    gephi的安装和使用

    gephi和之前使用的wordcloud不同,wordcloud仅仅是一个python的库,直接通过函数调用就可以绘制图片。gephi是一个可视化的应用程序。

    需要在https://gephi.org/ 下载windows版的安装包进行安装。

    be3c8c15ab042780ae68dc9a5d2da380.png

    c5bb2e3702847eddc8a1b9939f8afd7a.png

    这里我们复制下载链接,用迅雷下载会更快

    3672012639a6daf2e42474f015ff2908.png

    安装完成后如上图所示

    新建工程、导入数据就能得到一个人物关系图谱啦!

    下一篇将以《今生今世》实战讲解图谱生成的具体流程

    d1e7731376ee70406ccb44b146a5489c.png
    更多相关内容
  • Gephi - The Open Graph Viz Platform Gephi is an award-winning open-source platform for visualizing and manipulating large graphs. It runs on Windows, Mac OS X and Linux. Localization is available ...
  • Gephi - The Open Graph Viz Platform Gephi is an award-winning open-source platform for visualizing and manipulating large graphs. It runs on Windows, Mac OS X and Linux. Localization is available ...
  • 【绘制关系网络图Gephi 入门使用

    千次阅读 2021-01-19 22:44:32
    Gephi是基于Java的制作关系网络图的工具。安装Gephi的同时,也需要安装Java。 下载链接 win10 环境下 Gephi 安装教程 官网: Gephi:https://gephi.org/ JDK:...

    Gephi是基于Java的制作关系网络图的工具。安装Gephi的同时,也需要安装Java。

    下载链接

    win10 环境下 Gephi 安装教程

    • 官网:

    Gephi:https://gephi.org/
    JDK:https://www.oracle.com/java/technologies/javase-downloads.html

    • 百度云:

    链接:https://pan.baidu.com/s/1tkkBkt-h0KWXX9-tBDfB2A
    密码:52ea

    学习过程

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    刷新

    在这里插入图片描述

    Gephi | 预览模式下无法显示节点标签怎么办?

    最后一步就是导出图片

    在这里插入图片描述
    在这里插入图片描述
    最终效果

    在这里插入图片描述

    接着绘制《釜山行》数据网络图

    基于共现发现人物关系的python实现

    数据准备
    在这里插入图片描述
    在这里插入图片描述
    导入数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    选择左下角布局中的Force Atlas,斥力强度填写20000.0,吸引强度填写 1.0。点击运行,稍后点击停止。

    在这里插入图片描述
    在这里插入图片描述
    最终效果

    在这里插入图片描述

    展开全文
  • 利用Python和Gephi制作人物关系网络图

    千次阅读 2020-12-09 13:52:45
    我用这种方法制作了《龙族3·黑月之潮(下)》的人物关系网络图,如下所示:这个是用Gephi生成的,关于Gephi使用的教程有很多,大家去这里学习。图形可以由软件自动生成,但是数据得需要我们自己准备。要画出这种...

    写在前面:本文是学习实验楼《Python 基于共现提取人物关系》这一课后的总结,博主仅做了一些微小的改动,大家可以点击这里跳转学习。

    开门见山,先亮结果。我用这种方法制作了《龙族3·黑月之潮(下)》的人物关系网络图,如下图所示:

    这个图是用Gephi生成的,关于Gephi使用的教程有很多,大家去这里学习。

    图形可以由软件自动生成,但是数据得需要我们自己准备。要画出这种关系图,我们需要给Gephi输入两种格式的文件,即节点文件和边文件。

    节点文件(node.txt),有Id, Label, Weight(节点出现的次数)三个变量,如图所示:

    边文件(edge.txt),有Source(起点),Target(终端),Weight(该起点-终点的出现次数)三个变量,如图所示:

    因此,实现这个需求需要两步:

    第一步:用Python对文本中的关系进行提取,生成这两个格式的文件。

    第二步:将这两个文件输入Gephi,生成图片。

    下面我们逐步讲讲解。

    第一步:Python提取

    准备

    1、安装jieba库,可以在命令行输入以下命令:1pip install jieba

    2、准备待处理的文本,这里以《龙族3·黑月之潮(下)》为例,点击下载。

    3、准备姓名字典,可以直接从百度百科上复制粘贴,以下是《龙族》主要角色的姓名字典:

    导入相关库1import jieba, codecs

    为什么要用codecs打开文件,而不直接用open打开文件,请看这里。

    创建字典使用字典类型names保存人物,该字典的键为人物名称,值为该人物在全文中出现的次数;

    使用字典类型relationships保存人物关系的有向边,该字典的键为有向边的起点,值为一个字典edge,edge的键是有向边的终点,值是有向边的权值,代表两个人物之间联系的紧密程度。

    lineNames是一个缓存变量,保存对每一段分词得到当前段中出现的人物名称,lineName[i]是一个列表,列表中存储第i段中出现过的人物。

    1

    2

    3names = {}

    relationships = {} # 关系字典

    lineNames = [] # 每段内人物关系

    生成节点文件(node.txt)1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15jieba.load_userdict("resource\dict.txt") # 加载字典

    with open("resource\dict.txt","r",encoding="utf8") as f:

    nameList = f.readlines() # 将角色姓名存入列表nameList

    with codecs.open("resource\龙族3·黑月之潮·下.txt", "r", "utf8") as f:

    for line in f.readlines():

    wordList = jieba.lcut(line) # 分词并返回一个列表

    lineNames.append([]) # 为新读入的一段添加该段的人物名称列表

    for w in wordList: # 遍历列表

    if w+"rn" not in nameList:

    continue # 当分词不在姓名列表nameList时认为该词不是人名

    lineNames[-1].append(w) # 为当前段的环境增加一个人物

    if names.get(w) is None: # 如果该人名在姓名字典中对应的权值为空(还没有这个键值对)

    names[w] = 0 # 则创建该键值对,参考实例test1.py

    relationships[w] = {}

    names[w] += 1 # 该人物出现次数加 1

    生成边文件(edge.txt)1

    2

    3

    4

    5

    6

    7

    8

    9for line in lineNames: # 对于每一段

    for name1 in line:

    for name2 in line: # 每段中的任意两个人

    if name1 == name2:

    continue

    if relationships[name1].get(name2) is None: # 若两人尚未同时出现则新建项

    relationships[name1][name2]= 1

    else: # 两人共同出现次数加 1

    relationships[name1][name2] = relationships[name1][name2]+ 1

    存储节点文件(node.txt)1

    2

    3

    4with codecs.open("longzu_node.txt", "w", "utf8") as f:

    f.write("Id Label Weightrn")

    for name, times in names.items():

    f.write(name + " " + name + " " + str(times) + "rn")

    存储边文件(edge.txt)1

    2

    3

    4

    5

    6with codecs.open("longzu_edge.txt", "w", "utf8") as f:

    f.write("Source Target Weightrn")

    for name, edges in relationships.items():

    for v, w in edges.items():

    if w > 3:

    f.write(name + " " + v + " " + str(w) + "rn")

    运行代码

    最后,运行代码,就可以在工作目录生成节点文件(longzu_node.txt)和边文件(longzu_edge.txt)了,程序运行时间长短跟文本长度相关。

    最后,你可以访问我的GitHub直接下载源代码和相关文本。

    第二步:Gephi生成

    安装软件

    安装Gephi,可以点击这里下载Gephi-0.9.1-windows。

    导入数据

    1、打开软件-新建工程-文件-import spreadsheet

    2、上传节点文件(longzu_node.txt)

    3、上传边文件(longzu_edge.txt)

    导入后 gephi 将显示所有节点。此时节点没有合适的布局,可以在最上方的数据资料选项卡中查看图中所有的边和节点,对于分词不准确导致的噪音,可以手动删除。

    设置参数

    1、分别点击右侧统计栏中平均度和模块化运行计算。模块化运算时Resolution值填写0.5 。

    2、击左上角外观中节点第一个选项卡,选择数值设定,选择Modularity Class。

    3、选中第二个选项卡,选择数值设定,选择连入度,最小尺寸填10,最大尺寸填40,点击应用为节点染色、放大。

    4、选择左下角布局中的Force Atlas,斥力强度填写20000.0,吸引强度填写1.0。点击运行,稍后点击停止。

    5、点击最上方的预览按钮,选中左侧节点标签中显示标签选项,并选择一种字体和字号,这里选择7号楷体,点击刷新即可看到最终的网络图。

    导出图片

    点击文件-输出,即可输出图片。png格式的图片较小,放大后不清晰,建议存储为PDF格式,再转为图片格式。

    最终图片

    展开全文
  • gephi+echarts实现可视化的网络关系图

    千次阅读 2019-04-08 15:52:18
    gephi+echarts实现可视化的网络关系图 最近工作中需要展示客户合作关系图。感觉是一个比较有意思的事情,就花了些时间研究了一下。 原始数据:是一个xlsx文件,保存着客户的合作关系,每一行记录表示一次合作,合作...

    gephi+echarts实现可视化的网络关系图

    最近工作中需要展示客户合作关系图。感觉是一个比较有意思的事情,就花了些时间研究了一下。

    原始数据:是一个xlsx文件,保存着客户的合作关系,每一行记录表示一次合作,合作的人员用分号分割。如下图的“作者”列。

    目标:是生成与“Zhong Lin Wang”直接合作或间接合作的作者的关系图。

    加粗样式
    实施过程
    (1)第一步,首先将作者处理成“图”的“节点”和“边”。结果如下图。
    在这里插入图片描述
    在这里,我使用的是java和mysql数据库,用java将作者列解析出来导入mysql数据库,使用mysql数据库的表连接,可以生成合作关系。然后从数据库中导出xlsx就行。具体代码就不赘述了。这一步比较简单,不同的人可能有不同的做法。我们的目标是生成“图”的“节点”和“边”,以便后续导入gephi生成可视化图。
    (2)第二步,使用bfs算法,生成“Zhong Lin Wang”的直接关系节点和间接关系节点。同样还是以“图”的“节点”和“边”形式导出(与第一步格式一样)。

    bfs算法比较简单,在此就不赘述了。

    (3)第三步,将excel文件导入到gephi生成可视化的关系图。
    首先需要格式化一下excel文件,生成下图格式的结果。
    在这里插入图片描述
    其中:

    source表示“边”的开始“节点”。
    target表示“边”的目标“节点”。
    type表示有向图还是无向图。
    label是可视化图中“节点”对应的名称。

    然后打开gephi导入数据并生成可视化关系图。结果如下图。
    在这里插入图片描述

    通过区域1刻意调整节点的大小,我使用的是按照节点的度来确定节点的大小(通过ranking标签设置)。
    通过区域2可以选择可视化图形的布局形式。我选择的是force模式。
    通过区域3可以设置是否展示之前导入的lebal标签,以及展示的文字的大小。
    通过区域4可以设置字体的相关配置。
    区域5是展示区域,可以通过鼠标中键的滚动来放大和缩小。

    (4)第四步,其实到第三步,已经能够展示出可视化结果了。但是gephi毕竟是个工具,不太适合放到线上展示。想省懒截个静态图,奈何笔记本屏幕太小,无法清晰展示所有节点的信息。就想到使用百度的echarts图(地址是:https://echarts.baidu.com/examples/editor.html?c=graph-force)。

    百度的产品还是比较好用的,里面的实例和文档都比较详细。就不赘述了哈。

    将下图中的ajax地址换成你从gephi导出的gexf的地址就可以了。
    在这里插入图片描述
    生成效果图如下:
    在这里插入图片描述
    (5)最后,剩下的就是根据个人审美水平调整echarts配置了。本人程序员一枚,审美水平实在有限,期望有更美的展示,但是“臣妾做不到啊啊 啊 啊”。

    附上我的线上的展示样例地址,请各位大神批评指正。http://114.251.8.243:8890/upload/hch/graph-force.html

    展开全文
  • 利用Gephi软件绘制网络图

    万次阅读 多人点赞 2018-09-18 10:50:37
    Gephi生成点、边文件3. 点、边文件注释4. 网络点、边美化5. 网络属性、预览和标签参考文献猜你喜欢写在后面 作者:中国科学院天津工业生物技术研究所 王敬敬 博士 利用Gephi软件绘制网络图 1. 生成物种相关性矩阵 ...
  • Gephi绘制网络图初步探索

    千次阅读 2019-10-14 11:17:52
    文章目录1. Gephi 基本功能简介1.1 数据输入格式1.2 Gephi界面初探1.3 数据导入2. 设置节点的属性2.1 设置节点...近期因为要绘制特效基因网络图,所以开始学习GephiGephi是一款功能很强大的网络绘制软件,对于...
  • 本次是社会网络分析专辑的第四篇文章,往期文章请查阅—— 社会网络分析(一) | python的Networkx库基础...Gephi 是一款转为网络分析为目的设计的一款数据可视化处理软件,立志Like Photoshop™ for graphs.,向Ph..
  • Gephi可视化人物关系图

    千次阅读 2020-04-10 19:49:37
      大家好,昨天跟大家介绍了一下在文本中抽取出人物关系,今天将利用gephi来绘制人物关系图。 背景知识介绍 图相关的概念和术语 图的度量 实现网络图绘制 一、背景知识   图是一种数据结构   图结构:是研究...
  • Gephi作图数据如何获得
  • 本人所使用的Gephi版本为...你可以想象一下你的朋友关系网络,随着时间的推移,你认识的人越来越多,与这些人的关系也会发生变化,对应到中,你的朋友节点数和连接数随着时间的在增长,属性值也在随着时间改变...
  • 本文用Python抓取QQ群论坛中的发贴、留言数据,以此构成社交关系数据,再进行数据处理,最后用Gephi绘制社交关系网络图。数据源选取的是QQ群论坛(一个收费的成长学习论坛,论坛沉淀了一年的数据)。步骤:1)分析人物...
  • python与gephi结合,批量化生成关系图,实现图中节点位置固定。
  • 使用networkx导出关系网络并用gephi进行简单分析

    万次阅读 多人点赞 2016-02-28 11:21:21
    现在,需要利用这些节点和节点间的关系网来进行社区探测(community detection),以进行进一步分析。不过在此之前,需要攫取一些小样本进行简单的可视化。 使用networkx(python)导出gexf格式文件这边使用gephi来进行...
  • 目前,做社会化网络分析的,除了一些在学校里看到过的学术派软件之外,我所接触过得用途比较广的,一是PROCESSING(奥莱利的可视化数据就是以这个软件作为讲课工具的),二就是09年googlecode大赛的冠军GEPHI。...
  • python gephi可视化 金庸人物关系图

    千次阅读 2021-02-20 19:26:33
    使用python+gephi分析金庸小说人物关系 参考文章:https://blog.csdn.net/weixin_39768541/article/details/84958298 1.模型构建 当两个人物在相邻段落出现时,视为两者存在关系 (该方法可以表示一定的人物关系...
  • 今天给大家带来我一个脚本,用来分析社会网络关系。这个我没有用到gephi或者其他的工具,是我用python纯脚本运行出来的。简单的实现了封装,大家有兴趣可以下载下脚本,运行下。原理知识我就简单说下原理吧,先...
  • 该系列文章主要讲解知识图谱或关系图谱的构建方法,前文介绍了Neo4j数据库和Jieba、PyLTP的基本用法。本篇文章主要采用Python和Gephi构建中国知网某个领域的作者合作关系和主题词共现的知识图谱,重点阐述了一种可...
  • 使用Gephi绘制动态网络的三种方法

    万次阅读 2016-04-12 16:46:28
    你可以想象一下关你的朋友关系网络;节点数和连接数随着时间的增长而增长,属性值也随之变化。如果每个人都有一个"孩子数"属性,这个属性也是可能会增长的《o(* ̄︶ ̄*)o, 还不去生孩子》。我们称之为动态属性,...
  • 故改为Gephi软件,发现其非常好看,特分享几篇文章供大家交流学习,希望对您有所帮助,尤其是引文分析、社交网络、主题分布等方向的同学。后续的文章将尽可能的使用Markdown语法撰写了。 参考文章:【python数据...
  • 文章目录Python - 基于共现提取绘制《流浪地球》人物关系(Gephi) Python - 基于共现提取绘制《流浪地球》人物关系(Gephi)  前不久看了一部令我为之震撼的电影《流浪地球》,这部电影让我看到了国产科幻影视的曙光...
  • 爬虫数据爬取2. 分词保存对于作者的信息来说对标题的信息来说3. 生成词云4. 生成作者关系矩阵与Gephi所需的两个CSV文件5. 在Gephi调整出关系网6. Gephi的一个BUG 预览空白 没有反应7. 总结 1.爬虫数据爬取 目标网站...
  • sigma.js可以在web上展示交互式网络结构,使用gephi的插件可以导出sigma.js可以识别的格式 先安装gephi软件之后安装集成sigma.js的插件,之后导出得到了一个network文件夹 打开报错:cannot find java1.8 or heigher...
  • Gephi 入门使用

    万次阅读 多人点赞 2018-04-08 18:13:28
    第一部分: Gephi 的安装与基本使用 1.安装 Gephi 下载地址: https://gephi.github.io/users/download/,下载后安装即可,如果能够正常打开 Gephi,跳过下面提示。 提示:如果安装完后出现“cannot find java...
  • 最近忙于学术,公众号更新的有点慢了,在这里给大家个歉,希望大家能继续支持我。...今天给大家带来我写好的脚本,用来分析社会网络关系。 这个我没有用到gephi或者其他的工具,是我用python纯...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 919
精华内容 367
关键字:

gephi生成网络关系图

友情链接: dsp.rar