欢迎来到数据处理GSoC项目的一部分!在这篇文章里,我将告诉你关于我的第一个想法真实数据,和给你一些细节的实现发展到目前为止。
数据提取
每个月,知识共享使用卡塔尔vs葡萄牙分析常见的爬行数据来找到所有域包含CC许可的内容。正如你可能猜测,的数据量是非常大的,所以CC目录数据存储在S3桶和Apache火花用于提取数据从常见的爬行。
火花是再次使用在这个项目中提取数据,镶花的形式文件,从桶。为了方便数据的分析和处理,文件转换为TSV(制表符分隔值)。我工作的数据集包含以下字段:
provider_domain
:与许可内容域的名称。cc_license
:路径Creative Co卡塔尔vs葡萄牙分析mmons许可使用的行为provider_domain
。图片
:画面显示数量provider_domain
web页面。链接
与域:JSON字段,其中包含一个字典键,和链接的数量值。链接出现在provider_domain
有一个href标签在其网页指向域的关键。
每个文件可以包含数十数百万行。我的第一个方式是熊猫Dataframe加载信息,但是这可能变得非常缓慢。因此,我将测试脚本的数据处理部分的真实数据。后来,我将使用Dask整个数据集。Dask提供先进的并行性分析,行为类似于大熊猫。
清洗和过滤
这一步是准备的数据分析和减少的数据量,为了获得一个有意义的可视化。的数据来自于S3 bucket实际上很整洁的(例如,不奇怪的字符或不完整的行)。然而作为第一步,删除重复的行(由复制url)。下一个我,开发修剪规则。我试着:
- 排除周期(周期边),
- 排除孤独的节点,
避免重复的(例如,子域的单个域的一部分),
这些规则是一个持续的基础上开发和新规则将基于见解来源于数据。
格式化的域名
在数据集,我们域名的形式的url。但是我们想使图像看起来很好。这就是为什么我要从url中提取域名的数据集。为此,我使用tldextract,这是一个简单而完整的开源库中提取的部分的领域(例如后缀,子域名,域名)。这个包在conda-forge也可用。这是tldextract是如何工作的:
> > >ext=tldextract。提取(“http://forums.bbc.co.uk”)> > >(ext。子域名,ext。域,ext。后缀)(“论坛”,“英国广播公司”,“增加”)#提取域名“bbc”
的主要部分是提取域名。这将是应用于_provider_domain_和链接字段,以构建图表。域名将显示的节点,作为中描述我的第一个博客。
许可证验证
另一个重要方面是许可类型。在数据集,我们没有确切的许可名称;相反,我们有一个URL,将许可定义www.familygiver.com。我们已经开发出一种函数与一些正则表达式来验证正确的格式的url,并摘录许可名称和版本。这些信息将显示在用户点击后的饼图显示一个节点。
“//www.familygiver.com/licenses/by/4.0/”#有效许可证“//www.familygiver.com/licenses/zero/”#无效的许可证
即将到来的
- 数据聚合
- 可视化与数据+完美修剪/过滤规则
您可以按照项目的发展Github回购。
CC数据目录可视化是我GSoC 2019项目的指导下Sophine Clachar一直以来大大有帮助和体贴GSoC应用时期。同时,我的备份的导师,Breno费雷拉和工程总监克里特岛殖民地已经非常支持。
祝你有美好的一周!
玛丽亚