PostgreSQLで一般的な変数 "会社名"にマージする必要がある2つのテーブルがあります。残念ながら、会社名の多くは正確には一致しません(つまり、あるテーブルのMICROSOFT、他のテーブルのMICROSFT)。両方のテーブルで名前を標準化しようとすると、 "corporation"や "inc"や "ltd"などの両方の列から一般的な単語を削除しようとしましたが、追加の戦略を考えるのは難しいです。何か案は?あいまいな文字列を一致させる
ありがとうございました。また
、私はR.
PostgreSQLで一般的な変数 "会社名"にマージする必要がある2つのテーブルがあります。残念ながら、会社名の多くは正確には一致しません(つまり、あるテーブルのMICROSOFT、他のテーブルのMICROSFT)。両方のテーブルで名前を標準化しようとすると、 "corporation"や "inc"や "ltd"などの両方の列から一般的な単語を削除しようとしましたが、追加の戦略を考えるのは難しいです。何か案は?あいまいな文字列を一致させる
ありがとうございました。また
、私はR.
でこれを行うことができ、必要な場合は、あなたはfuzzystrmatchモジュールを検討していますか? soundex
、difference
、levenshtein
、metaphone
、dmetaphone
、またはその組み合わせを使用できます。例えば
SELECT something
FROM somewhere
WHERE levenshtein(item1, item2) < Carefully_Selected_Threshold
MICROSOFTへMICROSFTからレーベンシュタイン距離は1(1)です。
levenshtein(dmetaphone('MICROSOFT'), dmetaphone('MICROSFT')
上記はゼロ(0)を返します。 levenshteinとdmetaphoneを組み合わせると、多くのスペルミスにマッチするのに役立ちます。
また、pg_trgmを考慮して、私は重複排除のシナリオで多くの成功を収めました。 – maniek