ここでApache solrのスコアリング方法を学んでいました。採点式を理解するには、このページに行く必要があると言われています。私は数学のバックグラウンドを持っていないので、高度な数学を理解するのは本当に難しいです. 基本的な採点式を簡単に理解するための代替手段はありますか?
1 に答える
Luceneは多くの機能を使用してドキュメントをスコアリングしますが、基本的にスコアリングはドキュメントとクエリの類似性に依存します。ドキュメント間の類似性を計算するアイデアについては、多かれ少なかれ簡単な言葉で説明したので、ここでは簡単に説明します。
すべての単語の辞書がある場合は、それらを長いリストにまとめることができます。数学者は、単語のリストを含む任意のシーケンスに「ベクトル」という用語を使用するために使用されるため、これを単語のベクトルと呼びましょう。
[アバット、アバウト、バナナ、...]
コレクション内の各ドキュメントをベクトルとして表すこともできます。各要素は、このドキュメント内の対応する単語の出現回数を表します。たとえば、ドキュメントに「bananas」という単語が1つあり、「about」が2つあり、「abbat」がない場合、ドキュメントベクトルは次のように開始されます。
[0、2、1、...]
今、最も興味深い部分が来ます。2つのドキュメントに共通の単語が多い場合、それらは類似したトピックに関するものであり、共通するものが非常に少ない場合、これらのドキュメントは非常に異なると想定できます。ドキュメントが単語のベクトルとして表される可能性があることはすでにわかっているので、ドキュメントの類似性をそれらのベクトルの類似性として計算できます。
2つのベクトルがどれほど類似しているかを計算する方法はたくさんあります。Luceneは非常に単純なコサイン距離を使用します。このアイデアは、ベクトルとそれらの間の角度の幾何学的表現に由来します。2D空間で2つのベクトルを描画すると、これらのベクトルの座標が類似しているほど、ベクトル間の角度が小さくなることがわかります。これが余弦距離の由来ですが、実際には、2つのドキュメント内の同じ単語の数だけを気にする必要があります。
検索エンジンに関するタスクを実行する場合、クエリはドキュメントと同じように扱われます。ドキュメントベクターが検索エンジン用に作成され、コレクションから最も類似した(つまり関連性のある)ドキュメントを見つけるために使用されます。