承蒙访学海外的云影提供ALCTS虚拟会议“元数据自动化”(We Can Do It, You Can Too! Metadata Automation for Everyone)的会议报告,其中介绍了很多元数据处理工具,比如Excel扩展Kutools、TextWrangler大数据集文本处理(支持正则表达式替换)、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将关闭,软件的这部分需要更新了。
最近用了open refine+RDF 扩展模块,觉得其实最大的优势是数据的匹配融合可以和网络上的很多资源进行自动化的匹配,进行rdf转化的工作非常轻松,你只要知道自己要用什么本体,什么词表,都可以做到。但是最新版本2.6在windows上运行的时候总是会报错,IO访问的问题,具体没查清楚,后来改用mac系统和linux是没有问题的。
感谢提供实际体验!