2013-03-24 53 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 - 因此它們可以用來無痛地加入數據。

相關問題