专利分析中的开源运动(2)——专利数据的清洗 4


在前一篇中,我们对专利数据开放以及专利数据的获取方式进行了阐述,但是在获得专利数据后通常不能直接用于专利分析,而必须对专利数据进行清洗。本篇将进一步对专利数据的清洗进行介绍。

专利数据清洗的目的

为什么需要对专利数据进行清洗呢,主要是有以下原因:其一是获取得到的数据格式不能用于分析。例如,数据存储的格式包括了txt,xml,csv,json,甚至于bib格式,而当我们进行专利分析时通常是希望获得csv或xls格式,因此,如果是获取的其他格式的专利数据,首先需要进行格式转换。其二是从对既有字段进行格式处理,并提取出新的可分析字段。例如从公开号US0000001中提取公开国别信息“US”,从申请人中提取出申请年份等等。其三是对申请人或发明人进行合并处理。众所周知,由于拼写不一致,或存在母子公司等原因,在专利数据中常常存在专利申请人实质上一样但拼写不一样的情况,因此在专利分析前,需要进行归一化,以准确全面对专利申请人进行通缉。此外,有时候还需要对专利进行特殊分析而对专利数据进行进一步加工,例如网络分析等。可见,专利数据清洗质量的高低直接决定了后续专利分析的准确性。

Excel与Open Refine

说起数据清洗,首先想到的可能是Excel,确实在Excel中我们可以完成大部分的数据清洗任务,尤其是在VBA的协助下,会让EXCEL如虎添翼。但是别忘了,EXCEL可不是开源软件,虽然我们用得像开源软件似得。由于EXCEL普及性太大导致很多人误认为EXCEL就等于数据处理,而忽略了很多其他的数据处理工具。关于与EXCEL同类的软件,例如WPS或OPEN OFFICE等同样能用于数据清洗,属于同类产品,笔者也不在本篇中赘述。

笔者想介绍的是一个真正开源而且功能强大的数据清洗工具——OpenRefine。OpenRefine最早是众所周知的Freebase Gridworks,随后又变成Google Refine,几年后又被社区接管,在2012年10月变成了彻底开源的OpenRefine。OpenRefine是通过在浏览器端进行运行的工具,提供了很多涉及数据清洗的针对性功能菜单,例如大小写转换、去除头尾空格等。除此之外,笔者认为OpenRefine的强大之处在进行数据清洗时具有很高的自定义程度,提供了General Refine expression language (GREL)的语法,可以将数据清洗的规则变成简单的代码重复利用。此外,具有一定python基础的同学也能够使用python的语法对数据列进行处理。OpenRefine更具吸引力的功能还在于对数据列进行归类和聚类的功能,在聚类中还提供了多种聚类算法(例如指纹分类算法)可以进行调整。用这个功能来解决专利数据中的申请人归并的问题可谓是手到擒来。限于篇幅,本篇中不打算详细介绍该工具的操作细节,以后有机会笔者再进行详细介绍。你可以下载试用,相信你会爱上它的。 enter image description here

enter image description here

数据处理神器——Pandas

OpenRefine已经非常强大,但是主要还是针对非程序员的,而程序员往往有更强烈的自虐倾向,需要自定义化程度更高的工具。在数据处理领域,pandas是不得不提的强大的开源python工具包,而且pandas大有取代R之势。同时结合python其他的工具包,很容易针对特定的数据源编写数据清洗脚本,而将数据清洗工作变成脚本,就可以一劳永逸了。不过pandas适合于有一定编程基础的人使用,门槛相对较高,如对数据有一定的兴趣,确实有必要进行学习。 enter image description here


发表评论

4 条评论 “专利分析中的开源运动(2)——专利数据的清洗