さまざまなソースからの製品名(カメラ、ラップトップ、テレビなど)をデータベース内の正規名に自動的に一致させる必要があります。
たとえば、「Canon PowerShot a20IS」、「NEW powershot A20 IS from Canon」、「Digital Camera Canon PS A20IS」 は、すべて「CanonPowerShotA20IS」と一致する必要があります。私はいくつかのヒューリスティックを追加してレーベンシュタイン距離で作業しました(明白な一般的な単語を削除し、番号の変更により高いコストを割り当てるなど)。これはある程度機能しますが、残念ながら十分ではありません。
主な問題は、関連するキーワードを1文字だけ変更しても大きな違いが生じる可能性があることですが、関連するキーワードを特定するのは簡単ではありません。たとえば、次の3つの製品名を考えてみましょう
。LenovoT400
Lenovo R400
New Lenovo T-400、Core 2 Duo
最初の2つは、どの規格でもばかばかしいほど似た文字列です(この場合、soundexはTとRを区別するのに役立つかもしれませんが、名前は400Tと400Rも同様です)、1番目と3番目はストリングとして互いにかなり離れていますが、同じ製品です。
明らかに、マッチングアルゴリズムを100%正確にすることはできません。私の目標は、名前の約80%を高い信頼性で自動的にマッチングすることです。
任意のアイデアや参考文献は大歓迎です