3

検索を実行するときに関連する検索を一覧表示するサイトをいくつか見ました。つまり、興味があるかもしれない他の検索クエリを提案しています。

中規模のサイトでこれをモデル化するための最良の方法を考えています(関係を推測するために訪問者の統計に依存するのに十分なトラフィックがありません)。私の最初の考えは、一意のクエリごとに上位10件の結果を保存することです。次に、新しい検索を実行して、上位10件の結果の一部に一致するが、理想的にはすべてに一致しない(すべてに一致する可能性がある)すべての履歴検索を検索します。同等の検索を提案するため、提案としてはそれほど有用ではありません)。

一部の人々は以前にこの機能を実行したことがあり、これを実行するためのさまざまな方法のアイデアを提供できる可能性があると思います。解決策はサイトのサイズと性質によって大きく異なることは間違いないので、私は必ずしも1つの勝利のアイデアを探しているわけではありません。

4

2 に答える 2

2

私はこれに対して多くの異なるアプローチを試みましたが、さまざまな程度の成功を収めています。最終的に、最良のアプローチは、検索対象のドメイン/トピック、およびユーザーがクエリを作成する方法に大きく依存すると思います。

以前の検索を保存することについてのあなたの考えは、私には理にかなっているように思えます。それが実際にどのように機能するかを知りたいです(最も誠実な方法で、特にデータがまばらな場合、これらの手法が「現実の世界」で失敗する可能性のあるニュアンスがたくさんあります)。

以下は、私が過去に使用し、文献で見たいくつかのテクニックです。

  1. シソーラス ベースのアプローチ: ユーザーが使用した各用語のシソーラスにインデックスを付け、ヒューリスティックを使用してシノニムをフィルター処理し、可能な検索用語としてユーザーに表示します。
  2. その上でステムと検索: 検索用語をステム処理します (例: Porter Stemming Algorithmを使用して、最初に提供されたクエリの代わりにステム処理された用語を使用し、指定した用語を正確に検索するオプションをユーザーに与えます (またはその逆を行います) 、最初に正確な用語を検索し、ステミングを使用して同じ語根に由来する用語を見つけます。この 2 番目のアプローチでは、既知の辞書の前処理が必要になることは明らかです。または、インデックス用語が検索したときに用語を収集することもできます。)
  3. 連鎖: ユーザーのクエリで見つかった結果を解析し、上位 N 件の結果から重要な用語を抽出します ( KEAは、キーワード抽出手法を調べることができるライブラリ/アルゴリズムの 1 つです)。
于 2008-09-23T22:00:19.483 に答える
2

1 つの軸にキーワードがある場合と、別の軸にドキュメントがある場合のマトリックスを検討しましたか。キーワードを表すベクトルのセットを見つけたら、最初の結果セットで見つかったキーワードのセットを見つけてから、他のキーワードが参照するドキュメントの数または最初の結果セットと交差する回数によってランク付けする方法を見つけます。 .

于 2008-09-23T22:08:21.820 に答える