2013-03-24 64 views
1

我有两个数据集,它们的公共列名称略有不同。谷歌优化:合并两个相似但不同列的数据集?

数据集:

Name,Number 
Hartlepool UA,306 
Tyne and Wear Met County,683 

数据集B:

Name,Number 
Hartlepool,366 
Tyne and Wear,353 

我认为谷歌改进/打开瑞风旨在帮助调和这种凌乱数据的一个模糊的方式,但it seems not

有什么工具可以用来以模糊的方式匹配这些文件,而无需编写代码?如果需要,我可以很容易地编写代码,但令我感到惊讶的是,Google Refine似乎没有做到我尽管做到了。

回答

2

你也可以只:

  1. 地带的所有标点符号和考虑寻址单元作为一个大的长字符串,如果它不是已经在一个细胞,你需要使用一些加盟()”秒。一旦它是单个单元格中的大字符串,则使用Facet - > Custom Text Facet - > fingerprint()GREL函数。

    fingerprint(value) 
    value.fingerprint() 
    
  2. 使用大长串,你也可以用聚类或自定义文本刻面进行的模糊分析和

    value.ngramFingerprint(2) 
    

那些可能仍然不是最佳的解决方案,您的杂乱的数据类型....地址。特别是,如果你考虑你的两个例子是“相同”,他们不是。所以你需要采取汤姆建议的方法。

但是,如果你真的想说...嘿,这两个地址中的大多数单词和数字是相同的,我认为他们在我的背景下非常接近,并且想要以某种方式测量亲密度2个指纹的指纹......然后上述2个步骤应该让你指向正确的方向。

1

有两种策略可能在OpenRefine工作:

  1. 核查,以游离碱,DBpedia中(使用RDF扩展名),或强标识符的一些其他来源,然后使用识别码进行匹配。

  2. 为每个数据集及其来源(A或B)添加一列,重新排列列以使其具有相同的顺序,将两个数据集导入到一个Refine项目中,然后使用群集查找重复项。

1

也许这[新?]协调服务的实施可以工作,并使其更容易? http://okfnlabs.org/reconcile-csv/

Reconcile-csv是OpenRefine从CSV文件运行的协调服务。它使用模糊匹配将一个数据集中的条目与另一个数据集中的条目进行匹配,从而有助于在系统中引入唯一的ID - 因此它们可以用来无痛地加入数据。

相关问题