「ドキュメント」(ウィキペディアの記事、ニュース記事など)の間隔についても同様の質問をしました。検索クエリはドキュメントよりかなり小さく、かなりうるさいので、これを別の質問にしました。したがって、ここで同じ距離メトリックが使用されるかどうかはわかりません(そして疑います)。
バニラの字句距離メトリックまたは最新のセマンティック距離メトリックのいずれかが推奨され、後者がより優先されます。
「ドキュメント」(ウィキペディアの記事、ニュース記事など)の間隔についても同様の質問をしました。検索クエリはドキュメントよりかなり小さく、かなりうるさいので、これを別の質問にしました。したがって、ここで同じ距離メトリックが使用されるかどうかはわかりません(そして疑います)。
バニラの字句距離メトリックまたは最新のセマンティック距離メトリックのいずれかが推奨され、後者がより優先されます。
回答:
私の経験から、(自然言語のあいまいさのため)いくつかのクラスのクエリのみが字句機能に分類できます。代わりに、ブール型の検索結果(ランキングではなく、ドキュメントではなく、サイトまたはサイトのセグメント)を(単語ではなく)分類の機能として使用できます。このアプローチは、クエリに大きな字句のあいまいさがあるクラスでうまく機能しますが、クエリに関連する多くの優れたサイト(映画、音楽、商用クエリなど)が存在します。
また、オフライン分類の場合、クエリサイトマトリックスでLSIを実行できます。詳細については、「情報検索入門」を参照してください。
コサイン類似度メトリックは、ドキュメントの長さを制御する(完全ではないにしても)良い仕事をします。そのため、コサインメトリックとtf idfの重みを使用して、2つのドキュメントまたは2つのクエリの類似性を比較することは、どちらの場合でもうまくいくはずです。また、最初にtf idfの重みに対してLSAを実行し、次にコサイン距離\類似度を計算することをお勧めします。
検索エンジンを構築しようとしている場合は、solrやelastic searchなどの無料のオープンソース検索エンジン、またはraw luceneライブラリーを使用することをお勧めします。クエリを処理して類似性の問題を文書化します。