Python数据整合与数据准备

BigGorilla

“根据访谈记录和专家估计,数据科学家将50%至80%的时间花在搜集和准备难以梳理的数字数据的琐碎工作中,然后才能开发这些数据完成有用的工作”

 

— Steve Lohr, Aug 17, 2014, New York Times (For Big-Data Scientists, ‘Janitor Work’ Is Key Hurdle to Insights)

BigGorilla是一个开源数据整合和数据准备生态系统(由Python提供支持),以允许数据科学家执行数据整合和分析。BigGorilla整合和记录数据科学家将不同来源的数据融合到一个数据库以进行数据分析时通常采取的不同步骤。对于其中的每个步骤,我们记录现有的技术,并指出可以开发的所需技术。

BigGorilla的各个组件可供免费下载和使用。我们鼓励数据科学家为BigGorilla贡献代码、数据集和示例。我们的目标还在于推进教育和培训,以通过BigGorilla提供的开发、文档和工具启示数据科学家。使用我们的BigGorilla教程立即开始数据整合与数据准备

    • 数据整合和数据准备的开源组件

    • 可在不同的应用场景下以不同的方式组合和重用

概述

下面的虚构情境阐释如何使用BigGorilla的不同组件(参见页面底部)。假设一家公司尝试了解其客户和潜在客户对于公司产品以及对于竞争对手产品的想法。其目标在于,从相关的推特、博客和新闻文章中获取和准备数据,然后再对数据进行最喜好情感分析。下文描述了在执行情感分析算法之前为准备数据而采取的一种可能步骤。

首先从不同来源(在本例中,从相关的推特、博客和新闻文章中)获取数据。一个获取步骤生成一个CSV文件,而另一个获取步骤生成一个JSON文件。然后使用两个抽取文件分别抽取以下信息:(1) JSON格式的推特(公司、项目、{sentence, tweetid, date}),其中句子、推特ID和日期按照公司和项目分组;(2) CSV格式的关于内容(公司名称、产品、情感表达、博客URL和日期)。之后,执行数据转换步骤,通过嵌套句子、推特ID和日期与公司名称和项目,将JSON文件转换为CSV文件。下一步就是匹配两个模式与用户设计的目标模式最终方案(公司、产品、言语、省份、日期)。模式映射组件使用由此得到的匹配生成一个脚本,该脚本会将两个源转换并组合为符合目标模式的数据。最后一步是数据匹配,其目标在于识别属于同一个公司和产品配对的所有言语。不同的步骤可以手动或者通过流程管理工具进行组合和协调。

数据获取
DATA ACQUISITION

当希望从其他来源获取数据(例如Web页面,RDBMS数据库中的表格,本地电子邮件系统的Excel和pdf文件等),或从敏感数据生成合成数据时,请使用此组件。

数据抽取
DATA EXTRACTION

从半结构化或自然文本抽取结构化数据时,例如从文本抽取描述产品的属性值对,或者抽取人名和组织名称。

模式匹配和合并
SCHEMA MATCHING & MERGING

匹配两个模式中的属性时,例如一个模式中的“地址”与另一个模式中的“地点”,或者将两个模式合并为一个模式。

数据匹配和合并
DATA MATCHING & MERGING

识别何时两个实体相同时,例如两个元组(David Smith,JHU,35)和(Dave Smith,John Hopkins,37)是否指的是同一个实际实体,或者将不同源的数据组合在一起(其中可能涉及调整冲突值)。

数据转换
DATA TRANSFORMATION

将数据从一种格式转换为另一种格式时,例如从CSV转换为JSON,或者将数据重新改变或重新组织为所需形式。

模式映射
SCHEMA MAPPING

(从模式匹配中)生成可以用来将不同源的数据合并到符合某模式的数据中的脚本。

流程管理
WORKFLOW MANAGEMENT

建立数据整合和数据准备任务的渠道、实现渠道自动化、处理输入/输出数据与故障等。