クエリと一連のドキュメントがあります。tf-idfとのコサイン類似性に基づいてこれらのドキュメントをランク付けする必要があります。誰かがこれを計算するためにLuceneからどのようなサポートを得ることができるか教えてもらえますか?Luceneから直接計算できるパラメーター(luceneのメソッドを介してtf、idfを直接取得できますか?)およびLuceneとの余弦類似度の計算方法(クエリの2つのベクトルを渡した場合に余弦類似度を直接返す関数はありますか?ドキュメント?)
よろしくお願いします
クエリと一連のドキュメントがあります。tf-idfとのコサイン類似性に基づいてこれらのドキュメントをランク付けする必要があります。誰かがこれを計算するためにLuceneからどのようなサポートを得ることができるか教えてもらえますか?Luceneから直接計算できるパラメーター(luceneのメソッドを介してtf、idfを直接取得できますか?)およびLuceneとの余弦類似度の計算方法(クエリの2つのベクトルを渡した場合に余弦類似度を直接返す関数はありますか?ドキュメント?)
よろしくお願いします
Lucene は既にコサイン類似度の単純化されたバージョンを使用しているため、生の CS 自体が必要な場合は、おそらく実行可能です。Lucene スコアリングについて説明している公式ページをお勧めします。
その情報を自分で抽出したい場合、これはtfの手順の概要です。
IndexReader
ます。maxDoc()
0 から;までのすべてのドキュメント ID を反復処理します。getTermFreqVector(doc, fieldName);
tfv.getTerms()
および を反復処理しますtfv.getTermFrequencies()
。docFreqについては、IndexReader.terms()
この呼び出しを繰り返し使用しtermEnum.docFreq()
ます。