openrefine,cluster and edit two datasets

时间:2017-03-15 10:10:30

标签: openrefine

我有两个数据集。列A具有数据集1中的ID,列B,具有我需要使用各种可用算法进行聚类和编辑的数据。数据集2再次出现在第一列,ids和下一列中的数据中。我需要协调数据集1中的数据与来自第二个数据集的数据。到目前为止我做的是使用一个数据集,合并两个,但然后openrefine,给我混合的结果,即只存在于数据集2中的杂乱数据,这不是我想要的,在当前阶段。

我还研究过Reconcile-csv,但没有成功,实现了预期的结果。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用Ettore描述的对帐方法的另一种方法是使用类似于'键碰撞的算法。聚类算法,用于在两个数据集之间创建共享密钥,然后使用此算法在数据集之间使用' cross'进行查找。功能

作为每个数据集中B列的示例,您可以根据此列添加列'使用GREL:

value.fingerprint()

这将创建与"指纹"使用的相同的密钥。聚类方法。让我们调用新专栏' C'

然后,您可以使用数据集2中的以下GREL在两个项目之间查找:

cells["Column C"].cross("Dataset 1","Column C")

如果数据集1和数据集2中的值都已基于指纹集群进行聚类,则项目之间的查找将起作用

如果效果更好,您还可以使用拼音键控算法在C列中创建匹配键。您使用此方法所做的事情(据我所知)相当于最近邻匹配 - 您必须具有某种模糊匹配的对帐服务,或者合并这两种数据设置,以实现这一目标。

欧文

答案 1 :(得分:0)

Reconcile-CSV是一个非常好的工具,但不是非常用户友好。您可以使用免费的Excel插件Fuzzy Lookup Add-In for Excel作为替代方案。这个截屏视频可以证明它非常容易使用。一个约束:要协调的两个表必须是Excel表格式(select和CTRL + L)。

enter image description here

以下是与reconcile-csv相同的程序(使用的GREL公式为cell.recon.best.name,来自here

enter image description here