1

2つのデータセットがあり、共通の列名がわずかに異なります。

データセットA:

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

データセットB:

Name,Number
Hartlepool,366
Tyne and Wear,353

Google Refine / Open Refineは、この種の厄介なデータをあいまいな方法で調整するのに役立つように設計されていると思いましたが、そうではないようです。

コードを記述せずに、これらをあいまいに一致させるために使用できるツールはありますか?必要に応じて簡単にコードを書くことができますが、GoogleRefineが私がやったことをやっているように見えないことに驚いています。

4

3 に答える 3

2

また、次のこともできます。

  1. すべての句読点を取り除き、アドレスセルを1つの大きな長い文字列と見なします。まだ1つのセルにない場合は、join()を使用する必要があります。単一のセル内の大きな文字列になったら、ファセット->カスタムテキストファセット->指紋()GREL関数を使用します。

    fingerprint(value)
    value.fingerprint()
    
  2. その大きな長い文字列を使用して、クラスタリングまたはカスタムテキストファセットとカスタムテキストファセットを使用してファジー分析を実行することもできます。

    value.ngramFingerprint(2)
    

これらは、おそらく、あなたのタイプの乱雑なデータに最適なソリューションではありません。特に、2つの例を「同じ」と見なす場合は、そうではありません。したがって、トムが提案するアプローチを取る必要があります。

しかし、あなたが本当に言いたいのなら...ねえ、これらの2つのアドレスのほとんどの単語と数字は同じです、そして私はそれらが私の文脈ではかなり近いと思います、そして何らかの方法で2つの文字列の近さを測定したいと思います指紋...次に、上記の2つの手順で、正しい方向を示すことができます。

于 2013-03-25T02:03:14.620 に答える
2

たぶん、この[新しい?]調整サービスの実装は機能し、それを簡単にすることができますか? http://okfnlabs.org/reconcile-csv/

Reconcile-csvは、CSVファイルから実行されるOpenRefineの調整サービスです。あいまい一致を使用して、あるデータセットのエントリを別のデータセットのエントリに一致させ、システムに一意のIDを導入するのに役立ちます。これにより、データを簡単に結合できます。

于 2013-12-19T22:40:49.973 に答える
1

OpenRefineで機能する可能性のある2つの戦略があります。

  1. Freebase、DBpedia(RDF拡張を使用)、またはその他の強力な識別子のソースと照合し、識別子を使用して照合します。

  2. ソース(AまたはB)を使用して各データセットに列を追加し、同じ順序になるように列を再配置し、2つのデータセットを単一のRefineプロジェクトにインポートしてから、クラスタリングを使用して重複を見つけます。

于 2013-03-24T13:53:11.643 に答える