1

私はLuceneにかなり慣れていません。Lucene 4.0 インデックスがあり、n 番目に頻繁に使用される単語を計算して、ストップワード リストを作成したいと考えています。Lucene インデックスから最高頻度の用語を取得するなど、Lucene の以前のバージョンでこれを処理する投稿を見つけましたが、reader.terms() は 4.0 で廃止されたようです。

Lucene 4.0 を使用してこれを達成するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

HighFreqTermslucene-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());
}
于 2014-12-04T17:04:58.070 に答える
1

Lucene の寄稿者の 1 人である Mike McCandless によって書かれた Lucene 4.0 の記事の新しいインデックス統計を確認することをお勧めします。あなたが探しているのはおそらくTermsEnum.totalTermFreq().

于 2012-11-15T16:09:50.867 に答える