私はLuceneにかなり慣れていません。Lucene 4.0 インデックスがあり、n 番目に頻繁に使用される単語を計算して、ストップワード リストを作成したいと考えています。Lucene インデックスから最高頻度の用語を取得するなど、Lucene の以前のバージョンでこれを処理する投稿を見つけましたが、reader.terms() は 4.0 で廃止されたようです。
Lucene 4.0 を使用してこれを達成するにはどうすればよいですか?
ありがとう!
私はLuceneにかなり慣れていません。Lucene 4.0 インデックスがあり、n 番目に頻繁に使用される単語を計算して、ストップワード リストを作成したいと考えています。Lucene インデックスから最高頻度の用語を取得するなど、Lucene の以前のバージョンでこれを処理する投稿を見つけましたが、reader.terms() は 4.0 で廃止されたようです。
Lucene 4.0 を使用してこれを達成するにはどうすればよいですか?
ありがとう!
HighFreqTerms
lucene-misc パッケージの使用例を次に示します。
HighFreqTerms.TotalTermFreqComparator
単語の頻度でランク付けする場合は、次のように使用できることに注意してください。
DocFreqComparator cmp = new HighFreqTerms.DocFreqComparator();
TermStats[] highFreqTerms = HighFreqTerms.getHighFreqTerms(reader, n, "text", cmp);
List<String> terms = new ArrayList<>(highFreqTerms.length);
for (TermStats ts : highFreqTerms) {
terms.add(ts.termtext.utf8ToString());
}
Lucene の寄稿者の 1 人である Mike McCandless によって書かれた Lucene 4.0 の記事の新しいインデックス統計を確認することをお勧めします。あなたが探しているのはおそらくTermsEnum.totalTermFreq()
.