可视化开源软件Gephi(附网上直播回放“手把手带你再现一项完整的数字人文研究”)

前几天听南京大学历史学院数字人文研究中心主任王涛老师的网上直播“手把手带你再现一项完整的数字人文研究”(目前仍提供回放),其中用Gephi图示社会网络关系,很感兴趣。于是在网上查找相关资料,找到了很好的中文在线教程。

Gephi官网:https://gephi.org/
软件下载(最新版0.9.2),教程,插件……
Gephi

Gephi 中文教程:https://www.udemy.com/gephi/
MOOC平台Udemy上的Gephi 中文教程,由Ooof liu(刘勇)在2012年录制,可免费学习(需要注册Udemy)。看介绍Ooof liu也是当年Web2.0的积极参与者。
本教程为入门课,讲解简明清晰。主要内容有17课、视频合计2.5小时。花了4个晚上,手机看视频+电脑用Gephi,基本掌握Gephi操作。
本课程第20-23课提供练习或课程中用到的例示数据(如第7课《西游记》爱慕关系图等),可先期下载,学习时根据课程内容导入相应数据(注意:视频讲解时没有提示,应该是后来根据课程反馈补充在后面课程中的)。
课程基于Gehi 0.8.1版录屏制作,在界面和功能上与目前的0.9.2版略有差别。如输出图形前预览Preview,没有节标签栏选择,在课程问答部分看到网友说只能在Data Laboratory中把需要显示的标签列内容复制到相应的label列解决。
Gephi可以对数据做统计计算,根据计算结果对关系进行排序、分组,生成不同大小、颜色的节点,使生成的图更具有说明性。但本课程基本没有涉及统计功能的含义及应用。
2017年作者在本课程基础上出版了图书《网络数据可视化与分析利器:Gephi 中文教程》。图书基于 Gephi 0.9.1版,增加了一些进阶内容,包括前述统计方法的基本运行原理等。(该书本馆馆藏已出借,预约中尚未看到实物)

—– 广告:网上直播回放“手把手带你再现一项完整的数字人文研究”—–
5月21日晚,网上听王涛老师的直播,3小时。一边用手机看视频,一边在电脑上操作。不是完全跟得上,但可了解其所采用的方法。虽然直播已经结束,但目前提供直播回放,到6月30日为止。
直播/回放网址(2018.5.21-6.30):http://shipin.nanboone.cn/watch/1955752
调查问卷:“521直播”信息反馈 https://www.wjx.cn/jq/24041689.aspx

直播介绍见“人文社科新方法”微信公众号:直播预告|手把手带你再现一项完整的数字人文研究(2018-05-04)
课程大纲
跟着我们的步骤,你将完整的重现这样一个研究的全过程:
1. 用Foxmail下载元数据【使用自己邮箱中的邮件】
2. 用Python解析邮件、清洗数据
3. 用Excel进行数据透视
4. 用Gephi进行社会网络分析
5. 用Voyant、Python进行文本挖掘【直播未演示在线应用Voyant】

直播前提供的以上软件(看直播/回放前先在自己电脑上安装、配置好):
Mac版本:https://pan.baidu.com/s/1pbB6VO1ZJnqZTpGeGXK5vw 密码:hg9e
Win版本:https://pan.baidu.com/s/12Nl6NrobxNawazfwHi32Mw 密码:z1p3
直播中用到的 python 源代码下载:https://pan.baidu.com/s/1EIC2vywvDmSJo-DHhlg4lg 密码:hcyw
另:需要在命令行状态下安装python的2个库文件:pip install jieba(分词) 和 pip install pyldavis(可视化包)

OpenRefine数据处理工具

承蒙访学海外的云影提供ALCTS虚拟会议“元数据自动化”(We Can Do It, You Can Too! Metadata Automation for Everyone)的会议报告,其中介绍了很多元数据处理工具,比如Excel扩展KutoolsTextWrangler大数据集文本处理(支持正则表达式替换)、Tableau Public可视化等,以及最为常用的OpenRefine、MARCEdit
几个报告中提到的OpenRefine应用涉及数据审核与分析、数据清洗与调和,包括分面、过滤、分簇与编辑、正则表达式转换、外部数据源调和(增强),甚至还能用于转换元数据方案(从DC到MODS、MARCXML),相当强大

OpenRefine就是原来的Google Refine。密歇根大学Bentley历史图书馆ArchivesSpace项目,曾使用Google Refine,通过VIAF API查询LC规范记录,增强档案记录中的名称和主题。参见:利用关联数据、验证名称和主题(LC和VIAF)(2015-8-30)

OpenRefine是安装后本机运行的软件,可以处理的数据文件大小取决于电脑内存(4G内存上网本,无法加载85MB的Excel文件)。
基础应用有Excel知识就行,表达式可选3种语言:GREL(General Refine Expression Language)、Jython(Python的纯Java实现)、clojure(Java平台的Lisp方言)。高级应用需要了解JSON

OpenRefine网站:http://openrefine.org
最新软件为2013-8-27的2.6版(存储于amazon S3,如无梯、能否下载成功看运气)。入门wiki在github(包括GREL语法)。
软件解压后执行,需要Java环境,如电脑没有安装过JRE,会自动打开浏览器到Java官网下载页面,下载安装即可。有意思的是安装过程中提示Google Chrome可能无法使用 Java 插件,实际完全没有问题。

OpenRefine中文资料不易找到。基本功能可参考Google Refine 2.0的3个视频,已有热心人士从Youtube转到优库。

0、运行程序,自动启动浏览器,网址:http://127.0.0.1:3333/
导入数据4个途径 :1 本机,2 网址(URL),3 剪贴板,4 Google数据
支持多种格式数据导入,包括CSV, Excel (.xls 和 .xlsx), JSON, XML, RDF等;导出数据格式有CSV, Excel, HTML, ODF电子表格以及自定义模板。

一、清洗数据(参见视频:Google Refine 2.0 -1. Explore Data (1/3)
1、找到问题数据
(1)分面(facet),分组结果显示在屏幕左栏
文本分面:不同取值及出现数量,可按字顺/数量排序,易于发现不一致取值。可直接批修改/替换。
数值/时间分面:不同取值分布图,可调节取值区间、找到可能有问题的数值。还可对数值进行操作(比如取对数)改变显示的分布图,以更清楚了解数值是否在合理区间。
(2)文本过滤(filter),查找特定值,可以用正则表达式。后续修改/替换等处理可仅针对过滤后部分。
(3)排序(sort),可设定有效值、空值、错误值的排序位置,易于找到问题数值。
2、批处理(edit cells)
除了上述1找到问题数据后直接处理,还有更强大的批处理功能:
(1)通用转换(common transforms):去空格,改大小写,改取值类型(文本、数值、日期)等
(2)编辑/修改/替换:修改单元格值时,可选择适用所有相同单元格(apply to all identical cells)
(3)自动归类相似取值(Cluster):可一键合并为相同值。这是快速完成数据一致性处理的强大工具。
(4)定制文本转换(transform):使用各种表达式(公式/函数),结果即时预览,确认正确后再执行。
可惜“帮助”缺少样例,对新手不够友好。
(5)电子表格通常有的功能当然也是有的:分列/合并、填充等。
向下填充是智能的,无需指定范围、自动复制其值到后续空格。
3、最后也是最重要的,所有操作历史自动保留
(1)可随时通过回退Undo/Redo找回某个处理前的状态——只要选择到某步骤,单击即完成回退操作。
(2)处理步骤可复制(比如用于对另一批数据做相同处理),可抽取(Extract)复制操作代码,粘贴到Apply窗口运行(当然也可在运行前修改代码)。

二、转换格式(参见视频:Google Refine 2.0 -2.Clean and Transform Data (2/3)
把其他格式数据(清单、键/值等),通过分组处理、行列变换等转换为需要的电子表格形式。
视频为维基百科格式的清单改为表格的详细实例。导出模板默认为JSON格式,可修改模板为其他格式。

三、增强数据(参见视频: Google Refine 2.0 -3. Reconcile and Match Data
通过API获取外部数据,增强电子表格中的内容。视频中有3个例子:
1、由具体地址获取经纬度(wiki.openstreetmap.org/wiki/Nominatim)
先新增栏(edit column -> add column by fetching URLs),通过调用URI取得返回值(JSON格式),再由返回值栏分析结构取出经纬度部分(parseJson())
2、分析语种(google语种检测API):方法同上。
3、为电影清单增加信息:评价网站链接,导演、主演等其他信息。
菜单中选择Reconcile。默认从Freebase获取数据。可惜Freebase2016-8-30将关闭,软件的这部分需要更新了。