ので 同様のエントリが他にどれだけのための割合を与えることができ、アルゴリズム のいくつかの並べ替えはありますか?
SoundexとEditの距離(前の記事で示唆されている)としてのアルゴリズムは、いくつかの問題を解決することができます。ただし、データのクリーニングについて真剣に考えているなら、これでは十分ではありません。他の人が言っているように、 "Bill"は "William"のような音を出さない。
私が見つけた最良の解決策は、削減アルゴリズムとテーブルを使用して名前をルート名に減らすことです。あなたの通常のアドレステーブルに
、名前のルート・バージョンを追加し、例えば 人(ファーストネーム、RootFirstName、姓、Rootsurname ....)今
、マッピングテーブルを作成します。で FirstNameMappings(PRIMARY KEYファーストネーム、ルート名)
あなたのマッピングテーブルを移入:FirstNameMappings
に挿入がIGNORE は(人からのファーストネーム、「UNDEFINED」を選択)これは、あなたの人のテーブルに持っているすべてのfirstnamesが追加されます「未定義」のルート名と一緒に
悲しいことに、唯一のすべての一意の名前を調べ、それらをRootNameにマップする必要があります。たとえば、「Bill」、「Billl」、「Will」はすべて「William」に翻訳されます。 これは非常に時間がかかりますが、データの品質が本当に重要な場合は、これが最良の方法の1つだと思います。
新しく作成したマッピングテーブルを使用して、Personテーブルの "Rootfirstname"フィールドを更新します。姓と住所について繰り返す。これが完了したら、スペルミスを起こさずに重複を検出できるはずです。
これはBill = Williamをどのように検出しますか?彼の問題は重複であり、正確な重複で間違いがない。 –