查看原文
其他

独家课程丨社会网络分析

王涛 零壹Lab 2022-10-08

编者语:


本文系王涛老师“数字史学”课程教材《历史学家的新技艺》的第三篇。如初次阅读本系列,欢迎补充阅读系列第一篇 独家课程丨如何做一个数字历史学家 及第二篇 独家课程丨历史研究的新素材(点击标题阅读)了解更多。


本文内含具体软件的详细操作教程及作者提供的软件及相关数据下载地址!欢迎下载!



Frigyes Karinthy(Jószef Rappl-Rónai绘)

上个世纪20年代,匈牙利作家卡林蒂(Frigyes Karinthy)在一部短篇小说里提出了一个非常有趣的假设,只需要通过至多五个人就能把世界上任何人联系起来。卡林蒂是一名人文学者,他无法用科学的方式验证自己的想法,但这个故事成为著名的"六度分离理论"的最初模型。近30年后,哈佛大学的社会心理学家斯坦利·米尔格伦(Stanley Milgram)为了验证这个假设,进行了著名的"连锁信实验"。进入社交媒体井喷的互联网时代后,验证分离理论假说的手段更加方便了,数据也更加丰富。Facebook曾经利用其在社交领域的用户优势,于2016年做了一次实验,"分离度"的数值甚至降至3.5:世界上任何互不相识的两人,只需要通过平均3.5人就能够建立联系。


实际上,"六度分离理论"有数学模型的支持。在我们日常生活体验中,也常常有"世界好小"的感叹。所以,万物相连是一个物理事实。正如邓肯·瓦茨(Duncan Watts)在《小小世界》一书中提出"小世界"理论一样,社会网络是一种普遍的存在。在社会学领域,经过好几代学者的不懈努力,终于让社会网络分析(social network analysis,简称SNA)成为了成熟的理论和方法,是描绘和解释复杂社会现象的重要利器。那么,网络分析与我们的历史研究有什么关联呢?


人物向来是历史研究的重要对象。根据历史唯物主义的教导,人的本质是一切社会关系的总和。换句话说,从某种意义上看,历史研究的核心议题是讨论历史人物的社会关系。不少社会学家很早就指出,作为个体的历史人物,其属性具有多面性,但唯有其社会关系相对稳定。比如,俾斯麦作为德意志第二帝国时期的重要人物,他的思想层面既具有容克贵族的保守性,也有普鲁士传统中的国家主义色彩;但我们把俾斯麦放置在君臣关系、同事关系、以及国与国之间关系的网络中进行研究的时候,俾斯麦作为个体的面目消退了,但他在社会结构中发挥的作用凸显出来,让研究者能够更加客观看待俾斯麦在德意志帝国内政外交方面发挥的作用。


因此,在某些问题域下,历史现象的研究,值得转换为网络分析的研究。在社会网络分析的指导下,历史人物作为行动者,"任何行动都不是孤立的,而是相互联系的。他们之间所形成的关系纽带是信息和资源传递的渠道,网络关系结构也决定着他们的行动机会及其结果。"(林聚任:《社会网络分析:理论、方法和应用》,前言,第3页。)特别值得关注的是,用"关系"属性来描绘历史人物,打破了人物研究的"原子化"倾向,研究者不会再孤立地看待历史人物的性格、思想或者情感,而是聚焦不同人物之间的关系以及关系模式。社会网络分析的方法将能够呈现更加丰富的历史细节。


从另一方面看,社会网络分析并不限于微观层面的个体互动,也可以用于宏观层面的社会现象的分析,比如机构组织、国家关系等。甚至推而广之,任何具有网络特征的结构属性,都能够被纳入网络分析的框架进行研究,比如谣言的传播、商业贸易活动、病毒的流行等。通过揭示社会结构来剖析现象的本质,正是社会网络分析最擅长的内容。基于社会关系的历史研究,也让我们对历史现象的复杂性和纵深感有更直观的认知。



社会网络分析的基本原理


简而言之,社会网络分析是对社会关系的结构、属性加以分析的一套规范和方法。SNA最初从社会学的学科体系中成长发展起来,具有社会学的学科属性,以及非常复杂的理论体系和方法论。在历史研究中借用SNA的方法,需要注意适用范畴,因此我们需要对社会网络分析的基本原理和术语体系有一定的了解。


根据网络是否存在以某一个成员为核心的结构,所有网络可以划分为两大类:自我中心网络(ego-centric network),以及社会中心网络(socio-centric network)。比如,如果我们研究奥古斯丁的通信网络,讨论这位希波主教在北非基督教教会中发挥的作用,获得的支持,就是自我中心网络;如果我们把奥古斯丁放置在整个基督教早期的书信网络中,这里不仅有奥古斯丁,还有哲罗姆、安布罗斯、教宗等神职人员,以及罗马贵族,那么就形成了一张社会中心网络,我们主要去关注相对封闭的基督教徒群体的结构特征。


By The Opte Project 


如果我们用拓扑关系来进行社会网络分析,那么不论是哪一种类型的网络结构,都有一些基本的构成要素,以及一些通用的指标,是我们对网络特征进行提取、描述和理解的依据。


理解SNA的要素:


行动者,如果社会网络分析是一出戏的话,那么在这个舞台上的行动者就是演员。不同的学者用不同的术语来指称它们,node, actor, vertice等,都表达同一个含义。当然,演员不一定是人,社会实体、事件、病毒等,只要用网络分析的眼光看待它们,都将成为节点。在本文,我们统一使用node,翻译为"结点"。


关系,把结点关联在一起的纽带。跟node一样,"关系"也有不同的表述方式,relation, edge, link, tie等,结点之间的所有纽带组合成一个网络结构。在本文,我们统一使用edge,翻译为"边"。


群体(group),研究对象包含的结点与关系构成一个集合,是我们进行网络分析研究对象的整体。


当然,在一个群体之中,还会由于其他纽带的存在而形成"子群"(subgroup),网络结构越复杂,越是容易区分出不同的子群。


理解SNA的指标:


在社会学领域,要描述一个网络结构,也有一些特别的术语,比如规模(size),密度(density),团聚度(cohension),中心度(centrality)。规模和密度比较容易理解,分别表达网络中结点的数量以及关系的紧密程度。团聚度类似于密度,但特指结点之间的关系在有方向性的情况下,结点之间的关系紧密程度。中心度反映结点在网络中位置的重要性。

(以上内容,参见林聚任:《社会网络分析:理论、方法和应用》,第49-51页。)


需要注意的是,尽管"万物相连",任何研究的话题都可以或多或少地转化为"社会关系"的问题,换句话说,SNA的方法具有极强的通用性;但是,这并不意味着,在真实的研究语境中,所有问题都在"学术价值"上能够用SNA来解决。网络分析虽然有其优势,但是否采用此法,也是因问题而异。特别是在各种绘制网络图的软件越来越好用,呈现出来的图越来越漂亮的时候,研究者要抑制住一哄而上的冲动,从真实的需求出发,选择用还是不同网络分析,这个问题。德国学者Marten Düring提出了一套程式化的标准,来判断研究问题是否适用于网络分析。我们在这里将进行判断的流程图翻译并抄录如下:



总体而言,上面的这个流程图稍显复杂。其核心要点在于,采用SNA的方法需要有网络数据,所以在研究展开前,我们应当反问自己几个问题,以满足SNA的必要条件。当然也不排除在一开始,数据结构和数量不尽如人意,但如果我们转变一下思路,或者对传统数据进行转换,逐渐达到使用SNA方法的条件。


要对一个网络结构进行分析,我们有两种处理的方式,一种是只见树木不见森林,一种是只见森林不见树木。前者关注结点的属性,后者关注整体网络的指标。当然,在更多情况下,要对网络结构有更完整的了解,我们需要把两种方式结合起来,要既见森林又见树木。为了便于大家理解,我们暂且分开来看。


如前所述,"中心度"是描绘结点所处位置的重要指标。所以,侧重结点属性的网络分析,实质上是对"中心度"的描绘,我们通过各种指标,可以去了解结点在网络中的等级差异,从而去理解附在其上的资本、声望等信息,了解资源传递的情况。


有四种中心度值得我们关注:


degree centrality(结点中心度),反映网络中结点关联的集中程度,可以理解为结点的边数总和。假如在一个社交网络中,结点代表的是人,边代表的是好友关系,那么结点中心度越大,就说明这个人的好友越多。在微博的社交世界里,这样的人往往是"明星",所谓的大V;如果需要传播某个消息的话,让这样的人来发布最适合,因为他的一条状态可以被很多人看到。


在某些SNA分析软件中,还有"加权的中心度"(weighted centrality),会将边关系作为参数加入算法,来体现结点之间关系的深浅程度。


closeness centrality(紧密中心度),反映网络结点之间的密切性,其重要的指标是结点到其他所有结点的距离。一般情况下,紧密中心度是结点距离总和的倒数,也就是说紧密中心度越大,说明该结点到其他结点的距离越近,越小说明越远。在一些定义中不取倒数,而是最短距离的简单相加,这样的话紧密中心度越小说明该点到其他点的距离越近。在社交网络中,紧密中心度越大说明这个结点能快速联系到其他所有结点,正如在人际网络中,可能自己认识的人并不多,但是有很知名的朋友,可以通过他们快速找到其他人。


betweenness centrality(间距中心度),反映网络中某一结点与其他各点相间隔的程度(网络中经过该点最短路径的数量),如果联通两个结点A和B的最短路径一定经过点C,那么C的间距中心度就加一,如果说A和B的最短路径不经过C,那么C的间距中心度不增加。间距中心度刻画了结点所具有的"咽喉要道"的作用,就如同商道上必然经过的港口城市,这样的地点往往控制着大量资源。在社交网络中,一个人的间距中心度越大说明这个人掌握了不可替代的社会资本,信息的传递必须经过他,不存在其他的最短路径。他们就如同房屋中介一样,一边是买房的人一边是卖房的人,买卖双方都需要经过中介完成房屋的交易过程。


eigenvector centrality(特征向量中心度),结点的特征向量中心度取决于与其临近结点的中心度。换句话说,与重要结点发生连接的话,临近结点的重要程度比数量更有价值:与有影响的联系人的结点,其中心度可能超过拥有大量但是平庸的联系人的结点。在社交网络中,有时会存在非常沉默的人,但是他与拥有极大权力的人物有联系。如果用上述三个指标去分析他,在网络中几乎不可见。在SNA中,这样的结点被称戏称为"灰衣主教",这个头衔源自红衣主教黎塞留,红衣主教虽然人前风光(具有极高的中心度),但他有一个要好的神父朋友杜特伦布莱,后者虽然时常隐匿在幕后,但却扮演着不容忽视的顾问或决策者的角色。在这个网络中,杜特伦布莱就具有极高的特征向量中心度。从某种意义上说,PageRank的算法就是特征向量中心度的变种:一个有着高特征向量中心度的网页,与它建立链接的网页数量虽然少,但与重要网页发生链接就足够了。


对于网络分析,我们也可以把关注的重点从具体的结点移开,而去观察网络结构在整体上的状态。相关的指标包括:


模块度(Modularity),反映网络子群的状况,可以理解为在复杂的网络机构中,小团体的存在情况。在社会网络分析的术语中,有一个重要的探索性研究是所谓"社区检测"(community detection),又被称为社区发现,是一种用来揭示网络聚集行为的技术,可以将其理解为寻找结点共性的算法。


平均路径长度(average path length),不论是大网络还是小网络,都有连通性的问题,即信息流在网络的扩散过程。所以,计算结点之间的距离是一个重要的指标,比如物流公司要在不同的快递点之间建一个中转站,就需要基于网络路径的长度。


网络直径(Network Diameter),反映的是任意两点之间的最大路径长度。



相关软件


人文学者可能会感觉上述概念过于抽象。实际上,各种指标背后都有一套算法在支持。幸运的是,现在有许多帮助学者进行社会网络分析的软件,已经内置了各种算法,不需要我们亲自动手演算。下面,我们将使用具体的数据,在Gephi中实现各种网络分析指标的生成。


能够进行网络分析的软件其实非常多,比如UCINET、Pajek、Cytoscape等。但有些软件只支持Windows平台,有些软件是收费的,有些软件虽然免费,但是操作复杂,入门较难,有些软件只擅长处理小型的网络结构。所以,综合各种因素,我们强烈推荐使用Gephi,它是一款跨平台的免费软件,易操作,基本能够实现所见即所得,可视化的效果极好,能够绘制出吸引人眼球的网络结构图。


Gephi使用指南


Gephi的安装极其简单,只需要在官网下载相应系统的安装包,就能够安装完毕。唯一需要注意的是,Gephi的运行依赖Java环境。现在的Windows和MacOS系统都自带了Java,一般不会有问题。实在出现了问题,可以自行去java官网下载相应的java包。如果网路条件不好,从Gephi的官网下载安装包速度很慢,可以点击这里用网盘下载。


Gephi支持多语种,初次安装的话,它会根据本地操作系统自动切换为系统语言。大家在自己的电脑里安装,可能直接使用中文界面。但我不得不说,Gephi的中文汉化有一些小Bug,而且我们在之前原理介绍中,也专门保留了各种术语的英文表述,所以我还是建议大家使用英文界面。调整语言设置的路径如下:[工具]→[语言]→选择自己中意的语言。


我们先来熟悉一下Gephi的界面:


图1:Gephi的界面


中间一大片空白就是对网络结构进行可视化的结果呈现,左右两边是对可视化图进行参数调整的窗口。


需要注意的是左上角有三个标签,分别为[Overview]、[Data Laboratory]、[Preview],反映的刚好是三个工作流的环节:从[Data Laboratory] (数据资料)中导入数据,在[Overview](概览)中对各种网络指标进行计算和调整,最后在[Preview](预览)中查看最终结果,并对可视化图片进行微调和输出。


所以,制作一张漂亮的可视化图片,从[Data Laboratory]开始。


在Gephi的话语体系中,网络就是从Source到Target,所以我们需要用Gephi能够读入的数据结构,对我们的社交网络信息进行处理。我们在这里使用的案例是北非主教奥古斯丁(Augustine)的书信联系。书信是非常简单的网络结构,发件人写一封信,收件人读到这封信,一个网络就组建起来了,这个网络具有方向性,即是directed。更多的书信联络组合在一起,就形成了奥古斯丁的"书信空间",在这个网络体系中,所有的收件人和发件人都属于"结点"(node),每一次的通信联系就形成了一个"边"(edge)。


因此,"边文件"和"结点文件"是两个最基础的数据文件。比较好的是,Gephi可以根据边文件自动生成结点文件,但我仍然强烈建议大家自己整理结点文件,因为涉及到"Label"等参数的时候,电脑有时候靠不住。


现实的文本中,我们往往读到的信息是Volusian给Augustine写了一封信,发件人是Volusian,收件人是Augustine。Gephi的世界里没有发件人、收件人,它把所有的网络连接简化为从Source(发件人)到Target(收件人)的流动过程,书信是有方向性的流动。所以,简化的格式如下:


图2:Gephi的文件格式


这就形成了第一条边文件的信息。剩下的通信联系以此类推,我们用Excel制作一个完整的CSV格式文件,在百度网盘里下载。


图3:Gephi的边文件


边文件准备就绪。我们还可以制作一个结点文件。在本案例中,我们的结点文件主要是为了给每个结点赋予标签(Label),所以,完整的文件如下,也是CSV的文件格式:


图4:Gephi的结点文件


数据准备就绪,我们可以将它们导入Gephi。我们一般先导入边文件。在[File]→[New Project]新建一个project,然后点击[Data Laboratory],我们会看到一个类似下面的界面:


图5:Gephi的数据界面


点击[Import Spreadsheet],会弹出一个对话框,指引我们把本地硬盘的边文件导入,如果一切顺利的话,就会有这个界面出现:


图6:Gephi导入文件


此时,我们会看到,显示了部分刚才制作的奥古斯丁通信关系文件信息。需要留意的是,在[Import as:]的栏位下,一定要是[Edges table],表明该文件是边文件,如果恰好是[Nodes table]的话,说明我们弄混淆了,要调整过来。其他的参数我们都维持默认状态。然后点击[Next],系统将会对边文件的信息做一些基础的统计工作。


在原始边文件中,我们忠实记录了每一次通信联系,但是并没有区分通信的时间,比如Jerome多次给Augustine写信,跨越了不同的时间段。所以,在Gephi看来,Jerome和Augustine的多次通信,属于"Parallel edges",需要使用一种方式将它们合并。我们在[Edges merge strategy]栏位下选择[Sum],边的权重信息就统计出来了。


图7:Gephi导入文件


当我们在[Data Laboratory]界面,看到这样的表格时,表明成功导入了边文件:


图8:Gephi的数据界面


如法炮制,导入结点文件。这个过程要相对简单,唯一需要留意的是,在出现类似图7界面的时候,一定要选择[Append to existing workspace],否则系统将重新生成一个工作表。


此时,我们已经可以看到奥古斯丁通信网络的一些特质了。由于系统自动计算了边的权重,我们在多出来的[Weight]栏位,就能够看到通信最为密集的人物。


有了这些基础的数据后,我们就可以开始制作通信关系图谱。此时,我们点击[Overview],回到了我们最初看到的工作界面,不过,有一些变化,在最中间的空白处多出了许多黑点、黑线以及箭头。这就是Gephi自动生成的社会网络图。


图9:初始网络图


这并不是我们需要的,因为它既不美观,也不能说明任何问题。不用着急,我们还没有对它进行计算和美化。


还记得我们此前说到的网络分析的各种指标吗?什么间距中心度、特征向量中心度,令人头大。所有这些参数,都可以由Gephi自动计算。它的入口位于屏幕的右侧。


右侧有两组工具。右上是对待分析网络数据的统计,在本案中,我们看到一共有结点187个,边关系218个。这是一个非常小型的网络结构。右下有两个标签[Filters]以及[Statistics]。我们先关心[Statistics],就会看到一些我们之前提到的描述网络结构的指标,包括[Degree]、[Eigenvector Centrality]等。如果我们对某个指标感兴趣,比如[Average Degree],只需要点击[Run],系统就可以进行自动计算。毫无疑问,很多指标都是一些数字,人文学者看到这些数字可能有本能的厌恶感,没有关系,我们在后面将换一种友好的方式来呈现计算的结果。


当各种网络指标计算出来后,数值将自动保存在系统,我们可以用一种方式将它们召唤出来。点击标签栏上的[Data Laboratory],将会惊讶地发现,之前我们导入的结点文件发生了变化,多出来许多参数。这些数值就是我们刚才在[Statistics]进行计算后的结果。当我们选择计算更多的指标后,这里的表格栏位将越来越丰富。


图10:数据界面


至于各种"中心度"的参数,隐藏在[Avg. Path Length]的算法之下,点击它后面的[Run],就会有一个对话框出现:


图11:网络参数


这里出现了一个新的概念"偏心率"(Eccentricity),反映的是一个给定结点到离它最远结点的距离。


拿到各种指标后,我们可以在[Data Laboratory]里操控它们,对结点根据各种指标进行排序等。如果你对数字更敏感的话,在这里就能够完成对网络结构的分析。当然,我们也可以在Gephi里,用更直观的可视化方式,将这些参数呈现出来。


回到[Overview]的界面,左侧有两个重要的工具组[Appearance]以及[Layout],我们都会用到它们。


先试用[Appearance],本质上是用刚才得到的各种网络指标对网络图进行美化。Gephi提供了不同的美化方案,对于结点而言,可以通过颜色(color)、大小(Size)进行处理,标签的颜色、大小也可以改变。


现在,我们想完成一个任务,用结点的大小,来反映中心度的指标。


图12:选择可视化指标


在[Appearance]面板依次选择[Nodes]→[Size]→[Ranking],然后我们在[Choose an attribute]中再次召回了我们非常熟悉的网络指标。选择[Weighted Degree],然后对[Min size]和[Max size]进行自定义,这个数值可以在多次调整后选择最佳的显示效果。点击[Apply]之后,我们能够立刻发现中央的工作界面发生了变化。


图13:加入参数的网络图


Gephi将各个结点中心度数值的不同,用点的大小表达出来了。不同结点大小的变化遵循曲线函数,这个曲线可以在[spline]中进行调节,让结点的变化更加平滑,或者更加具有对比度。


这个结果虽然有改进,但还不完美。很多结点都是密密麻麻地排在一起,还有相互重叠的状况,更重要的是,黑乎乎一片,毫无美感可言。


先解决重叠的问题。这里需要用到[Layout],所谓布局,就是对网络图的结点和边进行重新排列。在点击[Choose a layout]之后,我们会发现有很多种布局的算法。如何选择呢?实际上,每种布局的算法并不会对网络结构本身有改变,我们只需要考虑,选择哪种方式能让我们更直观地看出网络的属性。在Gephi官方文档的介绍中,比较了几种布局格式的特点,值得我们关注。


图14:各种布局的侧重点


更多关于布局的信息,可以参考Gephi官网上的介绍。

需要提前说明的是,我们通过默认安装的Gephi,只有可选的几种布局算法,如果要尝试更多布局,就要以插件的形式安装。路径为[Tools]→[Plugins],会弹出一个对话框,在这里我们就可以管理各种插件,包括升级、安装或者删除。


图15:管理插件


在[Available Plugins]的标签下,可以找到供我们安装的各种插件。这里是按照插件的类型进行分类的,我们在[Layout]的类别里,找到需要添加的布局插件,包括[GeoLayout]、[Circular Layout]。选定后点击[Install],安装完毕后,需要重新启动Gephi,新加入的插件才会生效。


我们可以选择[ForceAtlas 2]试试看。这个布局有很多参数可以调整,如果想了解每个参数的含义,我们只需要用鼠标点击这些参数,会有说明文字。如果你不懂也没有关系,可以变换不同的参数值进行尝试,选择一个更直观的结果。选定之后,点击[Run],就会看到中央的工作平台,网络图在发生改变。在这个过程中,你可以随时点击[Stop]停止布局的过程。


图16:使用ForceAtlas 2布局


布局完成后,每个点的位置还可以通过鼠标进行移动,调整到你认为最合适的方位。[ForceAtlas 2]的布局让我们清晰看到了奥古斯丁书信空间最直观的特征:以奥古斯丁为核心的通信网络。


现在,我们可以给结点或者边进行上色处理,让网络图更加形象美观。颜色也是一种对网络属性进行描述的方式,所以我们需要选定一种指标来对结点或者边进行颜色的优化,而这个过程跟我们试图探索网络的特性紧密相连。比如,如果我们想了解奥古斯丁通信网络中的"紧密中心度",在[Appearance]面板依次选择[Nodes]→[Color]→[Ranking]→[Closeness Centrality],使用渐变颜色来体现"紧密中心度"的落差,颜色越深,数值越高。现在的这张图,要美观不少。


图17:为网络图着色


此时,我们有了另外一个需求。这么多结点,我怎么知道谁是谁呢?要解决这个问题,我们需要调出"结点文件"中一个重要的参数:"标签"(Label)。观察工作界面的下部有一个菜单栏,点击有"T"符号的按钮,就会自动给结点添加标签,我们就能够知道各个结点的名称了。


图18:添加标签


菜单栏的其他按钮还可以调节标签字符的字体、颜色、大小等。不过,这种方式在结点很多的情况下,对于可视化结果而言无异于一场灾难,标签会喧宾夺主,妨碍对结点属性的探索。有两种方式来改善这种状况:


第一:我们可以选择让标签文本的字体大小与结点的权重数值成正比例关系,也就是说结点越重要,标签字体越大。


选择最右侧的向上箭头,会有一个面板弹出来,点击标签[Labels],我们在这里可以对标签文本做进一步的微调。


图19:改善标签字体


在[Size]下拉式菜单中,我们可以定义标签字体的大小模式,有三种方式可供选择:[Fixed]、[Scaled]、[Node size]。大家可以尝试一下有什么不同,我们如果在这里选择[Node size],就会实现中心度越大的结点,标签字体越大。


但是,一次性把所有标签文本都标识出来,还是特别杂乱。此时,我们可以勾选[Hide non-selected],然后我们就会看到图21这样的效果,只有当鼠标悬停在结点上时,标签文本才会自动呈现。


图20:调整标签参数


这样一来,整个画面清爽了许多。我们在对结点的网络属性进行探索时,就能够把握把握结点的归属。


图21:使用动态标签


对于网络分析的实践而言,奥古斯丁的通信网络其实并不完美。它有一个重大缺陷,边的属性太过简单,还存在许多只发生了一次的通信联系。这个属性我们可以在(图:ge181)中大量散落的小结点感受出来,也可以透过[Data Laboratory]中许多赋值为零的结点直观地看到。我们希望集中于通信更频繁的结点,想把那些不太重要的结点"过滤掉",如何实现呢?


Gephi允许用户自定义"过滤器",能够屏蔽掉涉及到的结点和边。这时,我们使用右边的标签页[Filters]。这里呈现了好几种过滤数据的方式,可以依据属性,也可以依据边或者结点的参数,可以基于固定的某个参数,也可以设置一个变化的范围。在本案中,我们想把中心度权重为1的结点屏蔽掉,选择[Attributes]→[Range]→[Weighted Degree],然后把这个过滤器拖动到下面的[Queries],或者双击[Weighted Degree],系统自动把过滤器放置好。


然后,我们在[Range Settings]的标尺上,设置最小值和最大值,我们想屏蔽的是中心度权重小于2的结点,所以把最小值设置为2即可,点击右下角的[Filter],这样就过滤掉了不太重要的结点,方便我们把研究聚焦于剩下的结点本身。从[Content]面板上的统计数据也可以看到,近70%的结点已经被设置为"不可见"了。


图22:过滤掉部分结点


为了最终的网络图更加美观,我们可以对过滤后的数据再进行一次"布局"。如果这个就是我们最终想呈现出来的结果,我们需要对此进行输出。但在输出之前,我们可以通过[Preview]预览一下效果。


图23:Gephi的预览参数


点击[Preview],进入"预览"的界面。这里又有很多参数可以设置,结点的大小、颜色;结点的标签文本;边的颜色、粗细、箭头的大小等,都可以进行调整。但在很多情况下,使用默认值就可以。每项参数会如何影响最终结果的呈现,可以不断去尝试,只需要记住在参数都调整好之后,别忘了点击[Refresh],让新的参数生效。现在,让我们来欣赏一下最终的成品。


图24:奥古斯丁的书信空间


如果要分享这个网络图,可以选择将其输出。输出的格式包括SVG、PDF或者PNG。点击左下角的[Export:SVG/PDF/PNG],选择要保存的位置,就能够完成输出操作。


上述就是一个完整的网络分析以及可视化的过程。Gephi的优势在于,它允许使用者将网络分析的各种算法用可视化的方式呈现出来,基本上能够实现"所见即所得",让我们在对网络数据进行分析的时候既能关注直观的意向,又能回归数据。


如果我们处理的网络数据具备地理空间信息的话,还可以使用GeoLayout这个布局算法将社会网络的关系展现在地图上。比如,在奥古斯丁的通信网络中,我们知道发件人与收件人都对应地理位置,位于北非希波的奥古斯丁,从这里向罗马世界发布了大量书信。这样的"书信空间",完全可以映射到真实的地理空间。


需要强调的是,我们在这里演示的例子具有天然不足,奥古斯丁的书信往来本来就相对简单;同时,一些历史人物的地理位置已经无从考证,不得不在数据清洗的时候剔除,让社会网路愈加简单。


为了使用GeoLayout布局算法,需要对"边文件"和"结点文件"做一些格式转换,以便算法能够读懂。因为我们想看收件人和发件人的地理位置形成的网络,所以"边文件"以地名为主。


图25:地名的边文件


比较麻烦的是"结点文件",因为要将地点对应地理位置,所以需要将地点的经纬度数据加入结点的属性。


图26:带地理坐标的结点文件


完整的"边文件"和"结点文件"可以从百度网盘下载。


文件准备好后,后续的工作就容易多了。导入数据的方法如前所述。在做了必要的社会网络分析指标计算后,我们在这里使用[GeoLayout]来呈现网络图,两个参数需要说明:


图27:使用GeoLayout布局的参数


[Scale],可以理解为地图的大小,如果地名比较集中的话,为了让展示更加精确,可以把数值调高,我们在这里使用10000;


[Projection],选择投影模式,比较流行的投影格式就是Mercator。


如果地理信息数据不是特别多的话,我们保持默认值就可以了。


一切就绪,我们在[Preview]里,就能够看到各个地点与地理位置对应的网络呈现。


图28:效果图


为了让这种包含了空间信息的网络结构图更形象,我们可以把网络图叠加到信息更加丰富的其他地图上,更直观地反映地理信息。具体做法是,在[Preview]的页面,将网络图导出为SVG格式,然后在可以编辑SVG文件的软件中,比如Adobe Illustrator等,进行图层的叠加。我们在这里就不展示了。


彩蛋时间!


Gephi比我们想象得要强大。我们之前提到,要在Gephi中进行网络分析,需要将网络结构刻画成source→target的格式。我们还提到,网络分析的适用范围很广,包括但不限于人与人之间的关系。实际上,在进行文本分析的任务中,研究者通常适用"共现"来对文本进行特征描绘。词汇的共现关系形成了一种网络状态,并且可以用矩阵表达网络关系,而不必拘泥于source→target的格式,矩阵表格可以直接导入Gephi,进行可视化处理后,供研究者研读。


笔者进行了一项研究,试图对马克斯·韦伯的名著《新教伦理与资本主义精神》一书中词汇的共现状况进行可视化处理。由于涉及的词汇很多,提取出共现关系后,用矩阵进行存储,似乎更加方便。我们当然可以将矩阵表格转换为"source→target"的格式,但Gephi的宽容性帮我们省去了中间环节。我们可以直接将矩阵导入,然后根据上文介绍的各种美化网络结构的处理方法,得到下面这张反映关键概念的共现关系网络图。


图29:关键词的共现网络


    参考书目     


林聚任:《社会网络分析:理论、方法和应用》,北京:北京师范大学出版社,2010年版。

杨松:《社会网络分析:方法与应用》,北京:社会科学文献出版社,2019年版。

网站:Historical Network Research,关于历史研究领域使用网络分析的信息汇总,包括各类教程、工具推荐、会议信息、研究成果、学术交流等,其网址为:http://historicalnetworkresearch.org/


    案例研究     


严程,顾太清交游网络分析视野下"秋红吟社"变迁考,《山东社会科学》2018年第7期,第64-69页。

赵薇,社会网络分析与"《大波》三部曲" 的人物功能,《山东社会科学》2018年第9期,第50-64页。

Marten Düring, Verdeckte soziale Netzwerke im Nationalsozialismus, Berlin: De Gruyter Oldenbourg, 2015.

严承希、王军,数字人文视角:基于符号分析法的宋代政治网络可视化研究,《中国图书馆学报》2018年第5期,第87-103页。


相关软件与数据百度网盘下载链接


https://pan.baidu.com/s/1YspNttLDNYYPVdkTLNzYKw 

提取码: 5adf



END

主编 / 陈静、徐力恒

责编 / 李瑞芳

美编 / 李瑞芳


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存