2

クエリと一連のドキュメントがあります。tf-idfとのコサイン類似性に基づいてこれらのドキュメントをランク付けする必要があります。誰かがこれを計算するためにLuceneからどのようなサポートを得ることができるか教えてもらえますか?Luceneから直接計算できるパラメーター(luceneのメソッドを介してtf、idfを直接取得できますか?)およびLuceneとの余弦類似度の計算方法(クエリの2つのベクトルを渡した場合に余弦類似度を直接返す関数はありますか?ドキュメント?)

よろしくお願いします

4

1 に答える 1

4

Lucene は既にコサイン類似度の単純化されたバージョンを使用しているため、生の CS 自体が必要な場合は、おそらく実行可能です。Lucene スコアリングについて説明している公式ページをお勧めします。

その情報を自分で抽出したい場合、これはtfの手順の概要です。

  1. コーパスに索引を付けます。
  2. を開きIndexReaderます。
  3. maxDoc()0 から;までのすべてのドキュメント ID を反復処理します。
  4. getTermFreqVector(doc, fieldName);
  5. 並列配列tfv.getTerms()および を反復処理しますtfv.getTermFrequencies()

docFreqについては、IndexReader.terms()この呼び出しを繰り返し使用しtermEnum.docFreq()ます。

于 2012-04-16T11:45:01.167 に答える