2017-09-26 6 views
2

キー衝突指紋クラスタリング+付加記号:エコール 行2:エコールエコールエコールOpenrefine:私はopenrefineは、「キー衝突指紋」クラスタリングで発音区別符号を管理する方法で、(...または非常に驚くべき特徴)バグがあると考えて

- >クラスタリング - > 0クラスタ

同じ問題

行1: - > 0 CLUエコールエコールエコール :エコール 行2 STER

しかし、この場合にはうまく機能:

行1:エコール 行2:エコールエコールエコール - > 1つのクラスタ

答えて

2

あまりにも思わぬなし。指紋クラスタリングは、fingerprint()関数を各セルに適用し、その等価性を1つずつ比較します。今ここにあなたが言及3例でfingerprintの結果は次のとおりです。

row value    value.fingerprint() 
1. école    ecole 
2. école école ecole ecole ecole 
row value    value.fingerprint() 
1. école    ecole 
2. école école ecole ecole ecole 
row value    value.fingerprint() 
1. ecole    ecole 
2. école école école ecole 

なぜ三番目のケースでは、この違いは?指紋アルゴリズムは実際には以下の操作を実行するため、in a strict orderです。

1.削除先頭と末尾の空白

"エコールエコールエコール" - > "エコールエコールエコール"

2.変更自分の小文字表現

「エコールへのすべての文字をécoLeécole " - >"écoleécoleécole "

3.すべての句読点とコントローを削除するL文字

"エコールエコール、エコール" - 「[> - > "エコールエコールエコール"

4.

"エコールエコールエコール" 空白で区切られたトークンに文字列を分割しましたエコール」、 "エコール"、 "エコール"]

5ソートトークンと重複

[取り除く "エコール"、 "エコール"、 "エコール" を]→[「エコール」]

6。>自分のASCII表現に

7.ノーマライズ拡張西部の文字

"エコール" "エコール" - - > "エコール"

戻って一緒に

[ "エコール" を]トークンに参加

操作7を前もって実行しないでください。しかし、あなたの例では、バグがある場合は、おそらく3番目のケースです。文字列 "école"は文字列 "ecoleécoleécole"とはまったく異なりますが、私の意見では合併すべきではありません。与えられた名前 "John-John"も "John"にも相当しません。

編集:One of the developpers agrees with you

関連する問題