OpenRefine中文使用教程.doc
- 文档编号:26322259
- 上传时间:2023-06-17
- 格式:DOC
- 页数:42
- 大小:1.69MB
OpenRefine中文使用教程.doc
《OpenRefine中文使用教程.doc》由会员分享,可在线阅读,更多相关《OpenRefine中文使用教程.doc(42页珍藏版)》请在冰豆网上搜索。
完整版请访问我的博客:
目录
第一章:
初识OpenRefine 3
介绍OpenRefine 4
要点1:
安装OpenRefine 5
WINDOWS 5
MAC 5
LINUX 6
要点2:
创建一个新项目 6
OpenRefine支持的文件类型 7
要点3:
探索数据 9
要点4:
操纵列 10
列隐藏和展开 10
移动列 12
重命名或删除列 13
要点5:
使用项目操作历史 13
要点6:
导出项目 15
要点7:
获取更多的运行内存 18
Windows 18
Mac 18
Linux 18
小结 19
第二章:
分析和修改数据 20
点1-数据排序 21
对行进行重新排序 23
点2-数据透视 23
文本透视 23
数字透视 27
定制透视 29
对标星和标旗行进行透视 32
点3-重复检测 33
点4-应用一个文本过滤 35
点5-使用简单单元格转换 36
点6-删除匹配行 39
小结 42
第一章:
初识OpenRefine
本章中,我们会说明OpenRefine是用来干什么的?
为什么我们需要用它?
并且怎么用它。
简单介绍后,我们会通过七个基本小点让你初尝OpenRefine的魅力。
◎安装OpenRefine
◎创建一个项目
◎探索你的数据
◎操纵列
◎使用项目历史
◎输出项目
◎充分利用内存
虽然每个点都相对独立,我们还是建议新读者按照我们的顺序学习,最起码开始的几点需要如此,因为这几点中我们提供了软件操作的重要信息。
有经验的高级读者可以按照自己喜欢自由选择。
介绍OpenRefine
我们需要承认这样一个事实:
你的数据是不完美的,所有的数据都是不完美的。
无论你多么小心地建立数据,错误总会偷偷溜进你的数据中。
如果是多人共同创建或者已经几经转手,那么错误更加无法避免。
无论你的数据本来就是数字化的,还是通过传统刊物数字化转换而来的,无论它们存储在excel表中还是数据库中,数据中的错误总是无法避免。
确认错误是保证数据质量的第一步,主要包括数据画像和数据清洗。
数据画像Olson定义为:
使用统计方法发现数据的结构、内容、质量。
换句话说,这是一种对你的数据进行画像,预发现包含的错误信息的方法。
数据清洗用半自动化的方式改正画像过程中发现的错误,比如:
删除缺失和重复值、行过滤透视、值聚类及转换、单元格拆分等等。
鉴于后续章节都需要保证数据已经画像清洗过,数据转换工具(IDTS)能够快速廉价的在一个操作界面内处理大量的数据问题,即使处理人员缺乏专业技术背景,所以IDTS也就成为了首选。
OpenRefine就是这样一个IDTS工具,其能够对数据进行可视化操作处理。
它很像传统的excel软件,但其工作方式更像数据库,因其并不是处理单独的单元格,而是处理列和字段。
这意味着OpenRefine对于增加新行内容表现不佳,但对于探索、清洗、整合数据却功能强大。
第一章的要点介绍将帮助您熟悉OpenRefine的主要功能,从导入导出数据到数据探索,从历史操作使用到内存管理。
要点1:
安装OpenRefine
本点中,您将学习如何下载最新版本的OpenRefine和如何在你喜欢的操作系统中运行软件。
让我们开始吧:
请从http:
//OpenRefine.org下载软件,OpenRefine原来叫做FreebaseGridworks。
后来几年使用名称为Googlerefine。
2012年10月后,这个软件被社区接手,使其真正成为开源软件。
OpenRefine2.6是使用新名称后的第一个版本,如果你对开发版本感兴趣,可以访问:
OpenRefine基于JAVA环境,也就是说和操作系统无关,你只需要保证你的电脑上安装了最新版的JAVA环境(可以到
WINDOWS
1、下载zip压缩包
2、解压到指定文件夹
3、双击OpenRefine.exe运行
MAC
1、下载DMG压缩镜像文件
2、打开压缩镜像文件,把OpenRefine图标拖到程序文件夹
3、双击OpenRefine图标打开
LINUX
1、下载gzipped压缩包
2、解压到根目录
3、在命令行窗口输入./refine打开
我们需要了解,默认情况下,OpenRefine会分配1G内存给JAVA,处理小数据集是足够用了,但是处理大数据集就会捉襟见肘。
在要点7:
充分利用内存中,我们会讨论如何让OpenRefine处理更大的数据,不同的操作系统有不同的方法。
要点2:
创建一个新项目
在本点中,你会学到如何导入数据到OpenRefine,可以是新建一个项目并导入数据集,也可以是打开一个项目或者是导入别人创建的项目。
如果你按照要点1已经成功安装了OpenRefine并打开,你会发现OpenRefine是在你的默认浏览器中打开的,但是你需要知道:
程序是在本地运行的,除了在本书附录中要使用额外功能(如正则表达式、openrefine内建函数语言GREL)外,你并不需要上因特网。
在使用因特网时,请确保敏感数据不会被在线存储或分享。
OpenRefine使用本地电脑的3333端口,这也意味着,你可以键入http:
//localhost:
3333或http:
//127.0.0.1:
3333打开软件。
以下是你第一次打开OpenRefine的界面:
左侧有三个标签页:
●CreatePoject(创建项目):
这个选项将载入一个数据集到OpenRefine中,这也是你第一次使用OpenRefine想要做的,如上图所示,有多种可选形式让你导入数据。
◎ThisComputer(本机):
选择本机中存储的一个文件
◎WebAddresses(URLs)(网址):
从在线资源导入数据
◎Clipboard(剪切板):
通过复制-粘帖方式输入数据
◎GoogleData(Google数据):
从Googlesheet或FusionTable导入(这两个类似于excel,不过是在线的,所以需要有因特网连接)
●OpenProject(打开一个项目):
这个选项帮助你定位先前创建的项目,下次你打开OpenRefine,会出现一个已存在项目的列表,你可以选择一个继续先前的工作。
●ImportProject(导入一个项目):
使用这个选项,我们可以直接导入一个已有的OpenRefine存档,其可以让你打开别人创建的项目,并且包含项目创建后所有的数据操作记录。
OpenRefine支持的文件类型
以下是部分OpenRefine支持的文件格式:
●csv、tsv及其他*sv
●xls/xlsx、cdf、ods
●JSON
●XML
●行文本格式(比如log文件)
如果你需要打开其他格式文件,你可以通过OpenRefine扩展功能打开。
创建OpenRefine项目十分简单,只需要三步:
选择文件、预览数据内容、确认创建。
让我们通过点击“创建项目”标签页、选择数据集、点击下一步来创建新项目。
虽然我们鼓励你在OpenRefine中使用你自己的数据集,不过使用本书中的例子可能学习起来更高效。
为了能够做到这点,案例中的数据均基于悉尼的PowerhouseMuseum组织,可以登录账户并在中下载(chapter1.tsv)学习,后续章节数据也可以下载获得,如何你是从其他地方购买本书,你也可以在
下一步你会看到一个数据集预览界面,在右侧底部,你可以看到如下数据解析选项界面:
默认情况下,第一行数据会被解析为列名称,我们使用的Powerhouse数据集中的数据也显然符合首行为列名称。
OpenRefine同时也会猜测单元格类型,给其赋予整数、日期、网址等等,这在你后续整理排列数据的时候十分有用(比如如果你将单元格设为文本格式,那么10就会排在2前面)
另一个选项是“引号在原数据中用来分隔列”选择项,如果选中,则原数据中引号用来分隔列,否则就需要去掉勾选框以使得OpenRefine能够正确读取。
在Powerhouse数据集中,引号是用来表明物体名称和说明信息,所以此情况下,引号没有分隔列的意思:
所以这里我们需要去掉勾选。
剩下的选项在某些情况下需要设置,试着勾选或者去掉勾选来看看如何影响数据。
另外,请确保编码正确,以使得显示正确。
当所有都设置好后,点击创建项目来加载数据。
要点3:
探索数据
本点中,你将通过查看数据界面的所有区域:
总行数、不同的显示参数、列名称及菜单、实际单元格数据来探索数据。
一旦你的数据被加载,你将获得类似如下的界面内容:
上图中标明1~4的四个区域,我们按照顺序介绍:
1、总行数:
如果你没有忘记去掉“引号有意义”选项(参照要点2-创建一个新项目),那么你会看到Powerhouse文件包含75814行数据。
当数据按照某个参数进行过筛选,这里的显示会变成类似于找到123匹配行(总共75814行)。
2、显示选项:
试着点击下,将行变成记录来查看区别,事实上变化并不大,只不过该区域显示为75814条记录而已。
行数量一般情况下等于记录数量,但在后续情况中还是不一样的。
该区域可以让你选择按5、10、25、50每页显示,并且你也可以在这里跳转页。
3、列名称及菜单:
你会发现数据加载后的第一行被解析为列名称,在Powerhouse数据集中,列包含RecordID,ObjectTitle,RegistrationNumber等等(如果你在创建时去掉了“将第一行解析为列名称”的勾选,那么列名称区域会显示为Column1、Column2等等)
4、单元格内容:
此处显示实际单元格数据
在开始剖析清理数据前,十分重要的一点是确保OpenRefine较好的载入显示了数据:
查看列名称被解析正确(数据显示较宽时请使用水平滑动条)、单元格类型是否正确等等。
将行显示项改为每页显示50条以查看数据不明显矛盾(理想情况下,你应该在创建项目前的预览界面时处理这些工作)。
当你已经熟悉了操作界面,你就可以继续下一步了。
要点4:
操纵列
本点中,你将学习列在OpenRefine如何隐藏和展开、按需要转换、以及重命名和删除。
列是OpenRefine中的基本元素:
其是具有同一属性的成千上万的值的集合,可以按照很多方法查看处理。
列隐藏和展开
默认情况下,所有的列在OpenRefine中都是展开的,大都数情况下显得数据太冗长复杂了。
如果你想暂时的隐藏一列或几列以方便观察操作,那么点击列下拉菜单,选择View,有四个可选项:
•Collapsethiscolumn隐藏这一列
•Collapseallothercolumns隐藏除该列外的所有列
•Collapsecolumnstoleft隐藏该列左边的所有列
•Collapsecolumnstoright隐藏该列右边的所有列
下图就是对Powerhouse数据集中Categories列进行View|Collapseallothercolumns处理后的结果。
要重新展开列,只需要在列上点击一下。
要展开所有以恢复到初始状态,参阅下点中的“移动列”
移动列
有时候改变原数据中列的顺序十分重要。
比如,为了将两列放在一起比较。
为了做到这点,选择需要处理的一列然后在列菜单中选择Editcolumn。
子菜单中会出现如下四种选项:
•Movecolumntobeginning移动该列到开头
•Movecolumntoend移动该列到结尾
•Movecolumntoleft向左移动该列
•Movecolumntoright向右移动该列
如果你对所有列操作,可以使用第一列名称为ALL的列。
这一列可以使你同时操作多列。
View菜单可以让你快速的隐藏和展开列。
选择Editcolumns|Re-order/removecolumns...可以通过通过拖动重新对列进行排列,还可以将将列拖动到右侧来去除该列,如下图所示:
重命名或删除列
在Editcolumn菜单中,你还可以做到:
•Renamethiscolumn重命名列
•Removethiscolumn删除列
你可以使用重命名功能将Description列标题中结尾的“.”删除。
删除一列比隐藏一列来的彻底,但是就像你将在要点5:
使用项目操作历史中学到,一切都是可以恢复原来的状态的。
要点5:
使用项目操作历史
本点中,你将学习到如何返回到任一个项目历史操作点,并且学习如何在项目重新打开后查看历史操作信息。
OpenRefine一个特别有用的功能是可以在项目创建后保存所有的操作步骤。
这也就意味着你不需要害怕做数据变换尝试:
你可以随意按照自己的想法变换数据,因为一旦你发觉做错了(即使是几个月前做的),你也可以撤销该操作以恢复数据。
为了使用项目操作历史功能,请单击左侧顶部Facet/Filter旁边的Undo/Redo标签页,如下图所示:
为了恢复历史数据,单击你想保留的最近一个步骤操作。
比如,为了取消上图第3步及以后的操作,可以单击第2步使其高亮显示,这样第3~5步就会变灰。
这意味着选中项后的操作都将取消。
如果点击第0步,那么所有操作都将取消。
点击第4步,那么第3和第4步的操作将被执行,而第5步将撤销。
请注意,撤销某几步操作后再做出新的操作的话,原来的后续操作内容会丢失.比如,如果你从第5步回退到第2步,然后对Description列执行左移操作,那么会显示第3步操作3.Movecolumndescriptiontoposition1,而先前的灰色操作项(第3-5步)会丢失:
因为我们不能在同时拥有两种互相矛盾的操作历史记录。
记得多尝试下上面的步骤,省的以后带来严重的困扰。
记住,只有对数据有实际影响的操作才会出现在项目历史操作表中。
数据透视比如:
交换行列视角、在一页中改变显示数目、隐藏或展开列并不改变原来数据,所以也就不会出现在操作历史表中。
以上操作也就无法随着项目信息传递:
当你重新打开一个项目,无论原来是否隐藏,这时所有的列默认都是展开的,但是对于重命名列和删除列这类操作会出现在操作历史表中。
在第二章,分析和修改数据中,我们会看到还有一些类型的操作会存在在操作历史表中:
比如单元格和列的变换、但是过滤和透视操作则不会。
操作历史也可以以JSON格式导出,可以点击Undo/Redo页中的Extract...
,在打开界面中可以选择需要导出的步骤(注意只有通用的操作才能够导出,而对某个特定单元格的操作则无法导出)。
上述操作能够获得JSON格式代码从而可以让你复制粘帖到他处。
第1和第2步操作的代码如下:
[
{
"op":
"core/column-move",
"description":
"MovecolumnRegistrationNumbertoposition
1",
"columnName":
"RegistrationNumber",
"index":
1
},
{
"op":
"core/column-rename",
"description":
"RenamecolumnDescription.toDescription",
"oldColumnName":
"Description.",
"newColumnName":
"Description"
}
]
在上面代码中,op代表操作,description描述了具体操作是什么,余下的是操作用到的参数。
我们可以点击Undo/Redo页中的Apply...按钮,然后将先前保存的JSON格式的操作代码粘帖上去,从而可以在不同的项目之间传递操作。
最后,如果你已经有成百上千个操作记录,你可以在Filter输入框中输入字符来查找某个操作。
比如输入remove或者rem就能够定位到第3步和第5步。
要点6:
导出项目
本点中,我们将学习如何将修改后的数据用到其他项目中,包括将导出的格式定制为模板。
虽然你可能已经移动、重命名或者删除了列,但其实原始数据并没有被修改(也就是要点1:
安装OpenRefine中的文件chapter1.tsv并没有被修改)。
事实上,不像有些电子表格软件直接将改动写进文件,OpenRefine只是对数据文件的一份拷贝进行操作。
因为存在这个保险措施,所以你在需要将数据导出分享或者嵌入其他应用程序时,你只需要在界面右上角点击Export按钮进行操作:
大部分弹出的选项能够让你将数据导出为常用格式,比如csv、tsv、excel和opendocument格式、还有不常用的RDF格式。
让我们往下看:
•Exportproject:
这个选项能让你导出OpenRefine格式的压缩包,你可以用来和其他人共享或者仅仅用来备份。
•HTMLtable:
这个选项可以让你方便的将文件发布到互联网。
•Tripleloader和MQLWrite:
这个选项有一些扩展功能,能够让你将数据转换成支持Freeebase规则的样式(参照附录:
正则表达式和GREL)
•Customtabularexporterandtemplating:
可能这是最吸引你的部分。
OpenRefine可以让你对你的数据导出有更精细的控制,比如对列进行选择和排序、忽略空白行、正确选择日期格式以得到更有效的数据(参见附录:
正则表达式和GREL)。
如下图所示:
•Templating...为了获得更多的控制,你可以使用你自己的代码来限定格式,其会作用到所有的单元格。
如代码cells["RecordID"].value表示RecordID列的值,下面的代码表示将列值转换成JSON格式:
{
"RecordID":
{{jsonize(cells["RecordID"].value)}},
"ObjectTitle":
{{jsonize(cells["Object
Title"].value)}},
"RegistrationNumber":
{{jsonize(cells["Registration
Number"].value)}},
"Description.":
{{jsonize
(cells["Description."].value)}},
"Marks":
{{jsonize(cells["Marks"].value)}},
"ProductionDate":
{{jsonize(cells["Production
Date"].value)}},
}
要点7:
获取更多的运行内存
最后一点,我们将学习如何如何分配更多的运行内存以操作更大的数据集。
对于大数据集,你会发觉OpenRefine会运行缓慢或者提示内存不够。
这表明你需要分配更多的内存给OpenRefine。
和我们上面学习的内容相比,这个内容稍显复杂,因为这需要牵扯到一点底层修改。
但是不要担心:
我们会指导你如何去做。
具体的操作步骤根据不同的操作系统有所不同。
注意:
你可以分配给OpenRefine多大内存取决于你的电脑和JAVA版本是32位还是64位。
如果不清楚究竟需要分配多少才合适,就试着慢慢的增加运行内存数量来看看效果(如果每次增加1G)。
Windows
Windows平台,你可以在OpenRefine的文件夹中找到openrefine.l4j.ini文件,找到以-Xmx(对于JAVA来说表示最大内存数)开始的那行,默认情况下分配内存为1024M。
稍稍改大点,比如2048M。
保存后下次你打开OpenRefine就能够生效。
Mac
对于Mac平台就有点复杂,因为Mac电脑的操作系统将配置文件隐藏了。
首先关闭OpenRefine,按住control键然后点击OpenRefine图标,在弹出菜单中选择Showpackagecontents,然后在Contents文件夹中找到info.plist文件并打开,然后在其中找到VMOptions项(这就是JAVA虚拟机设置项)。
找到以-Xmx开头的设置项,将默认的1024M按你的需要修改,比如-Xmx2048M。
Linux
你可能会觉得奇怪,修改运行内存在Linux中十分简单,平时你打开OpenRefine是使用命令./refine,试着使用./refine–m2048M。
这里的2048M就是想分配的内存。
如果你想永久的修改运行内存,你可以在根目录中找到隐藏文件.bashrc,然后在其中添加一个alias别名即可,代码如下:
aliasrefine='cdpath_to_refine;./refine-m2048M'
这里的path_to_refine是OpenRefine的安装目录,下次你依旧只需要使用./refine命令打开OpenRefine,其自动就会分配2048M内存。
小结
通过本章内容的学习,你已经了解了OpenRefine,一种新的具有数据画像、清洗、转换等等功能的工具,现在你已经在你的电脑上安装上了OpenRefine,并且已经了解如何在创建新项目中导入数据和如何在完成操作后导出数据。
行、列的运行机制你也已经了解,并且已知道如何使用项目历史记录。
另外你也对内存分配进行了操作,这能够让你操控更大的数据集。
虽然在开始操作你的数据集前好好的对你的数据进行全局性的观察十分重要,但你可能已经迫不及待了。
如果是这样,那么你已经对第二章:
分析和修改数据做好了准备,这章中,你将学习到如何分析和修改你的数据所需要的基本操作的方方面面。
第二章:
分析和修改数据
本章中,我们将更加深入的学习OpenRefine的数据分析和修改功能,主要的内容包括下面六点:
*点1-数据排序
*点2-数据透视
*点3-重复检测
*点4-应用一个文本过滤
*点5-使用简单单元格转换
*点6-移除匹配行
和第一章:
初识OpenRefine一样,本章可以让读者按照自己的需要或爱好选择阅读顺序,并不需要按照顺序阅读。
按照顺序阅读也可以,但并不是必须的。
各个要点内容长短不一,有些很短,但有些却不止一两页,比如要点2-数据透视,包括了数据透视的方方面面,这个要点包括了很多页内容并且有很多子内容。
本章学习中,我们建议你使用ImportProject导入项目chapter2.openrefine.tar.gz。
当然你也可以使用第一章中使用的示例文件chapter1.tsv
点1-数据排序
本点中,我们将学习如何使用排序功能来作为观察数据的手段,以及在进一步处理数据前如何对行进行排序。
因为排过序的值更加容易理解和分析,某些时候你需要使用OpenRefine的排序功能,你可能是想用来观察下数据或者就是想对数据进行排序.我们以RecordID列为例进行排序,选择列菜单中的Sort...,将弹出如下窗口:
单元格值可以按照文本(区别大小写或者不区别)、数字、日期、布尔值排序,对每个类别有两种不同的排序方式:
•Text:
文本:
从a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenRefine 中文 使用 教程