8

共通変数「companyname」で、PostgreSQLでマージする必要のある2つのテーブルがあります。残念ながら、会社名の多くは完全には一致していません(つまり、一方のテーブルではMICROSOFT、もう一方のテーブルではMICROSFT)。両方のテーブルで名前を標準化するために、「corporation」、「inc」、「ltd」などの一般的な単語を両方の列から削除しようとしましたが、追加の戦略を考えるのに苦労しています。何か案は?

ありがとう。

また、必要に応じてRでこれを行うことができます。

4

1 に答える 1

7

fuzzystrmatch モジュールを検討しましたか? soundexdifferencelevenshteinmetaphoneおよびdmetaphone、またはその組み合わせを使用できます。

fuzzystrmatch ドキュメント

SELECT something
FROM somewhere
WHERE levenshtein(item1, item2) < Carefully_Selected_Threshold

たとえば、MICROSOFTからMICROSFTへのレーベンシュタイン距離は 1 です。

levenshtein(dmetaphone('MICROSOFT'), dmetaphone('MICROSFT')

上記はゼロ (0) を返します。levenshtein と dmetaphone を組み合わせると、多くのスペルミスを照合するのに役立ちます。

于 2012-01-19T16:38:25.353 に答える