2012-04-27 60 views
0

我想分析一個龐大的文檔(3.5GB,300K行,300K文檔),每行一個文檔的大文檔集。在這個過程中,我使用Lucene進行索引和Lingpipe進行預處理。術語文檔使用Lucene/Lingpipe在一個大型語料庫中的Java語言的頻率

問題是我想擺脫文件中非常罕見的單詞。例如,如果一個單詞在文集(大文件)中出現少於MinDF時間,我想將其刪除。

我可以嘗試使用Lucene來做到這一點:計算所有不同術語的文檔頻率,按升序對它們進行排序,得到DF低於MinDF的術語,再次查看大文件,並刪除這些術語行每行。

這個過程會非常緩慢。有誰知道使用Java執行此操作的更快方法嗎?

Regards

回答

0

首先創建一個臨時索引,然後使用它中的信息來產生最終索引。使用IndexReader.terms(),重複此操作,並且每個術語有TermEnum.docFreq。積累所有低頻項,然後將這些信息輸入到分析儀中,該分析儀在創建最終索引時將擴展爲StopWordAnalyzerBase

+0

非常感謝!非常有幫助的答案,我會報告回來! – jimkots 2012-04-29 13:47:22