2 つのドキュメント間のコサイン シータ類似度距離を計算する際に、lucene 関数 getTermFreqVector() がどのように機能するかを理解しています。getTermFreqVector(doc number, field-name) で「フィールド名」が何を意味するのか、誰でも光を当てることができますか
1 に答える
0
lucene のような逆索引は、非常に効率的な用語検索を実行できるような方法でデータに索引を付けます。フィールドのコレクションであるドキュメントにインデックスを付けます。フィールドは、フィールド名とフィールド値のキーと値のペアです。
特定の単語を含むドキュメントを簡単に取得できますが、特定のドキュメントのすべてのインデックス付き用語を取得するのは難しくなります。これは、用語列挙がドキュメントごとではなくフィールドごとに保存されるためです。ベクトルという用語は、この問題を克服して、ドキュメントごとにその情報を保存できるようにするため、より大きなインデックスを持つという代償を払って、パフォーマンスの高い方法で情報を取得できます。
質問に戻ります。用語ベクトルはドキュメントごと、フィールドごとに保存されます。そのため、取得するにはドキュメント ID とフィールド名の両方を指定する必要があります。
于 2013-03-29T07:42:27.673 に答える