SOLR TF/IDFの要素の削除

トピック作成者:ks-solruserml-bot (2024/06/22 19:18 投稿)
6
CloseClose

(The bot translated the original post https://lists.apache.org/thread/zm6d3h31m7b9x3spv7nwklwz2b9b304j into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、専門家の皆様へ

私たちのプロジェクトでは、Windowsサーバーボックス上で単独モードのSOLR 8.11.1を使用しています。

ビジネスの要件に基づき、純粋なキーワードマッチを使用し、キーワードのブーストを行った検索メカニズムを実装しました。各検索結果について、SOLRドキュメントのスコアを使用して一致率を算出しています。SOLRドキュメントのスコアは、各キーワードのスコアの合計であり、これはブーストファクターとキーワードのTF/IDF値を使用して算出されます。

私たちの要件によれば、結果のスコアはブーストファクターのみに依存すべきであり、暗黙のTF/IDFファクターが予期しない結果の偏りや、結果のランキングの不確実性を引き起こしています。

そのため、SOLRのTF/IDFファクターを除去/中和するより良いアプローチを探しています。

この件について考えられるTF/IDFファクターの除去または中和の方法、または他の解決策アプローチについて、ご提案いただければ幸いです。

よろしくお願いします。
Fiz Fareedh

返信投稿者:ks-solruserml-bot (2024/06/22 19:18 投稿)

こんにちは、Fiz

TF*IDFを使用していることを確認しましたか?Solr 8ではもはやデフォルトの機能ではありませんが、もしそうであれば、カスタムのTFIDFSimilarity [1] を実装し、idf() と tf() 関数で単に1.0を返すようにすることができます。

よろしくお願いします。
Markus

[1] https://lucene.apache.org/core/8_0_0/core/org/apache/lucene/search/similarities/TFIDFSimilarity.html

返信投稿者:ks-solruserml-bot (2024/06/22 19:19 投稿)

以下は、クエリにおける^=修飾子に関する参考情報です。

一定のスコアを持つ"^="を使ったクエリ

"^="を使った一定のスコアのクエリは、^=の形で作成されます。これにより、そのクエリにマッチするドキュメントに対して指定されたスコアが設定されます。特定のクエリにマッチする結果だけを重視し、他の重要度因子(例えば、用語の頻度や逆文書頻度)を考慮したくない場合に有用です。

例:

(description:blue OR color:blue)^=1.0 text:shoes

このような使い方ができます。

返信投稿者:ks-solruserml-bot (2024/06/22 19:19 投稿)

こんにちは、

かなり前にこれを書いたのですが、TF/IDFが不要な場合の処理を試しています。

https://github.com/freedev/solr-constant-similarity

以下に従うだけで簡単に実装できます:

  1. solrconfig.xmlにこの行を追加してください:
<lib dir="../../../dist/" regex="constant-similarity-\d.*\.jar" />
  1. schema.xmlにこの行を追加してください:
<similarity class="it.damore.solr.similarity.ConstantTFSimilarity"></similarity>

https://github.com/freedev/solr-constant-similarity#old-solr-versions-before-54

Vincenzo D'Amore

返信投稿者:ks-solruserml-bot (2024/06/22 19:19 投稿)

https://github.com/freedev/solr-constant-similarity

これは、Markusが提案した内容を実装したものです。

Solrの標準配布に定数類似性クラスを追加するのは良いアイデアかもしれませんね。

Vincenzo D'Amore

返信投稿者:ks-solruserml-bot (2024/06/22 19:19 投稿)

BM25類似性のパラメータを調整することができます:
https://solr.apache.org/docs/8_1_1/solr-core/org/apache/solr/search/similarities/BM25SimilarityFactory.html

私の記憶では、k1 = 0とすると類似性は定数になります。

<similarity class="solr.BM25SimilarityFactory">
  <float name="k1">0</float>
</similarity>

Thomas

返信投稿者:ks-solruserml-bot (2024/06/22 19:19 投稿)

こんにちは、Fiz

ここで探しているのはおそらくBooleanSimilarityFactoryです。以下のリンクを参照してください:

https://solr.apache.org/guide/8_11/other-schema-elements.html#similarity

https://solr.apache.org/docs/8_11_1/solr-core/index.html?org/apache/solr/search/similarities/BooleanSimilarityFactory.html

(私は https://issues.apache.org/jira/browse/SOLR-13751 にこれを追加しましたが、訓練目的以外での具体的なユースケースをまだ見つけていません。あなたにとって有用であるかどうか知ることができれば興味があります!)

Andy

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?