BM25類似をチューニングするために、文書のスコアの長さ正規化の影響をことができます。既定では、観察したように、短いフィールドのコンテンツは、同じ数の用語マッチで長いフィールドのコンテンツよりも優れています。
この長さ正規化プロセスを中和したり、逆にしたりして、すべての長さのフィールドの内容が同じ数の用語マッチで同等と見なされるように思えます。
2チューニングパラメータは以下のとおりです。(あなたが繰り返される用語はスコアの大きい/小さい影響力を持つようにしたいときのため)用語頻度のための飽和点を制御
、および
b
(あなたが望むもの)は、コンテンツの長さがマッチの得点に与える影響を制御します。
あなたがより深く潜るしたい場合は、これはBM25に良い読み物です:この作業を取得するにはhttp://opensourceconnections.com/blog/2015/10/16/bm25-the-next-generation-of-lucene-relevation/
、あなたは、グローバルに、または定義内にネストされ、あなたのSOLR schema.xml
にBM25Similarityを追加する必要がありますの説明フィールド(すべてのフィールドでこの処理をしたくない可能性があるので推奨)フィールドタイプのフィールドです。
<similarity class="solr.BM25SimilarityFactory"> <str name="k1">1.2</str> <str name="b">0.75</str> </similarity>
(デフォルト値が示さ)
あなたは0.0
までb
を取る場合は、効果的に同じフィールドに同じ単一のクエリ語に一致二つの文書をそれぞれ意味し、長さ正規化の影響を否定します常に獲得しますこのフィールドがスコアリングのために考慮される唯一の要素である場合、(フィールド長に関係なく)等しくなります。
この変更を有効にするには、設定をリロードしてドキュメントのインデックスを再作成する必要があります。
また、(多分-0.75
?)負b
を使って実験してみてくださいすることができ、これが仮に長い文書を報いるために動作するはずですが、私は現在の実装でこれを確認していないが、もしそうであれば、バック投稿してくださいとしてあなたはあなたが必要とする方法で働いている否定b
を得る。
ありがとうございました!私はこれを試してみる。あなたの完全な答えは高く評価されています! – user3302110