2012-12-21 80 views
0

可能重複:
How to get frequently occuring phrases with LuceneLucene的尋找最頻繁的單詞或單詞組

我需要找到在索引中大多數發生的歷史單詞或單詞組,這意味着大多數發生的歷史文本可能是這個詞本身或一個詞組。與推特熱門話題(沒有課程標籤實體)非常相似。 Lucene是否提供了某種方法來執行此操作,或者如何在大量數據中實現這一點。如果問題不清楚,我可以舉例更具體。我正在使用java和Lucene 3.5。

並且快速編輯「單詞組」可以包含最多3個單詞。我們在一個大文本中說我有300次「是」500次「天氣」100次,「好」300次,詞組「天氣很好」是90次。我需要找到「天氣不錯」的發生是否對我很重要。當然,我需要看每個索引字...

謝謝。

回答

0

如果你想找到的最大長度爲3個連續的令牌大多數發生的序列,這個問題可以被看作是最頻繁出現的n-gram進行搜索,如問題討論How to get frequently occurring phrases with Lucene
在你的情況,你可能穿上」 t需要Solr,請參閱this little code,您只需計算每個生成的N-gram,並使其出現的次數大於所需的閾值。 有效計算這些Ngram的問題比較困難。如果它們不是很多(例如,較低的1〜2M),則可以使用HashMap。
如果有更多的數量,你可以嘗試一下有趣的計數最小素描算法,這裏有一個implementation,但是我個人從來沒有用過它,也不知道它有多好。