amazon.com でご存知のように、典型的なオートコンプリート ボックスを実装しようとしています。そこに文字を入力すると、検索ボックスに何を入力しようとするかについて合理的な提案が表示されます。
ボックス自体は jquery によって実装され、persistence-layer とサジェスト アルゴリズムは Apache Lucene/Solr とその Suggest-Feature に基づいています。さらに、Lucene による WFST-Suggestion を使用して、結果に重み付けされた提案を取得します。
私の問題は、たとえばアマゾンがこの種の合理的なデータを達成するために何をしているのかということです. つまり、彼らはこのすべてのキーワードとスコアをどこで取得するのでしょうか?
各製品の純粋な手作りスタイルの情報ですか?私が思うことは本当に難しいでしょう。それとも、機械学習理論からのクラスタリングや分類などを使用してデータを収集することは可能ですか? (その後、マハウトまたはキャロット2を使用できます)。
アマゾンの提案を見ると、データには次のものが含まれていると思います。
- 製品名
- 製品/本のプロデューサー/メーカー/著者
- 商品の特徴(色、種類、サイズなど)
もっと含まれていますか?
次は、提案自体がランク付けされているように見えることです。提案を重み付けするために、この種のスコアをどのように受け取るのでしょうか? ユーザーがボックスに何を入力し、何を選択したか、またはその後にどの製品を見たのか、単純なユーザー クリック パス トラッキングですか?
この種のスコアは、何らかのロジックを使用して各クエリ (おそらくキャッシュ) で計算されますか? (どれ?ベイズの定理?)