0

重複の可能性:
Luceneで頻繁に発生するフレーズを取得する方法

インデックスで最も出現する単語または単語グループを見つける必要があります。つまり、最も出現するテキストは単語自体または単語グループである可能性があります。ツイッターのトレンドトピックによく似ています(もちろんハッシュタグエンティティはありません)。Luceneはそうするためのある種の方法を提供しますか、それとも大量のデータでこれをどのように達成できますか?質問が不明確な場合は、より具体的な例を示すことができます。ちなみに私はJavaとLucene3.5を使用しています。

また、「単語グループ」をすばやく編集すると、最大3つの単語を含めることができます。大きなテキストで、「is」という単語が500回「weather」100回「nice」300回、単語グループ「weatherisnice」が90回あるとします。「天気がいい」の発生が私にとって重要かどうかを知る必要があります。そしてもちろん、私はすべての索引付けされた単語を調べる必要があります...

ありがとうございました。

4

1 に答える 1

1

最大長 3 の連続したトークンの最も多く発生するシーケンスを見つけたい場合、問題は、Lucene を使用して頻繁に発生するフレーズを取得する方法
の質問で説明されているように、最も頻繁に発生する N グラムの検索と見なすことができます。 Solr は必要ありません。この小さなコードを参照してください。生成された N グラムをそれぞれカウントし、必要なしきい値よりも多く表示される N グラムを維持するだけです。これらの Ngram を効率的にカウントする問題は、より困難です。それらが多くない場合 (例: 1~2M 未満)、HashMap を使用できます。
興味深い count min sketch アルゴリズムで試すことができる量が多い場合は、実装がありますが、個人的には使用したことがなく、どれだけ優れているかわかりません。

于 2012-12-21T16:41:07.813 に答える