Amazon、コミッション ジャンクション、リンク シェア API およびデータ フィードを使用してデータベースを作成し、同じ製品を照合して製品情報を比較する必要があります。私の問題は、マッチング プロセスに関連しています。SKU/UPC/ASIN で商品を照合することから始めますが、多くの商品にはこの情報が含まれていないため、うまくいきません。私はいくつかの調査を行い、私が見つけた最も人気のあるテクニックは次のとおりです。
-TF-IDF によるコサイン類似度の測定
-編集距離の測定/レーベンシュタイン/ジャロウィンクラー
この手法では、余弦類似度と Jaro-Winkler を使用しました
マッチングの方法:
ステップ 1 : 前処理
文字列を通常の形式に変換するための前処理: 小文字 ストップ ワード (new、by、the …) をフィルター処理 空白を削除 出現するすべての空白を 1 つの空白文字に置換
ステップ 2、インデックス作成:
Solr コア [コア A] で Amazon 製品をインデックス化し、別のコアで CJ/Linkshare [コア B] をインデックス化します。インデックス作成の目的は、文字列比較の数を制限することです (TF-IDF および Jaro-Winkler を使用)
ステップ 3、マッチング:
- コア B から製品タイトルを取得することから始め、このタイトルでコア A で solr 検索を行い、上位 30 の結果を取得します。
- TF-IDF を介して、一致させたい製品 (クエリ) と solr 検索によって取得された 30 件の結果との類似性を測定します。類似度が 80% を超える製品を保持します
- 各製品のトークンをアルファベット順に並べ替えます。次に、変換された文字列を Jaro Winkler 距離と比較し、製品の類似性を 80% 以上に保ちます (==> これにより、フレーズ間の Jaro Winkler 類似性が実行されます)。
- ここでは、両方の文字列 (クエリと一致する製品) をトークン化し、トークン間の比較を実行します。
しかし、この手法もうまく機能しません。例 : 製品 1 : ヒューゴ ボスのオレンジ、3 オンスのオードトワレ スプレー 製品 2 : ヒューゴ ボスのイン モーション オレンジのオードトワレ スプレー 3 オンス
製品 1 と 2 は、この手法では似ていますが、実際には異なります。
このアルゴリズムを改善するにはどうすればよいですか? それは製品を一致させる正しい方法ですか?トークンの重み (Jaro Winkler を使用) で分類子をトレーニングし (UPC を介して一致した製品からデータを学習)、この分類子を使用して最終ステップで製品を一致させるにはどうすればよいですか?
PS : さまざまなカテゴリ (健康、美容、電子機器、書籍、映画など) の製品を扱っていますが、データが非常に構造化されていないか不完全です。
どんなアドバイスも役に立ちます
ありがとう
スマイル