運用hadoop計算TF-IDF

(http://youzitool.com 新博客,歡迎訪問)

這幾天一直在忙着找暑假實習,實在沒精力來寫新的文章。剛好這幾天放假,我把前幾天做了的另一個例子拿出來跟大家分享一下。

這個例子是使用hadoop來實現TF-IDF。

TF-IDFterm frequency–inverse document frequency)是一種用於資訊檢索與資訊探勘的常用加權技術。具體的信息就麻煩大家自己百度一下了。

因爲要實現的細節比較多,所以我直接將代碼放上來。大家可以參看代碼裏面的註釋,我寫的比較詳細。

我採用了兩個MapReduce任務順序執行來實現TF-IDF功能。

最後,我再針對此代碼補充幾點。

1:因爲hadoop對處理小文件的效率比較低,如果需要處理很多小文件,我推薦大家可以將很多小文件合併成一個SequenceFile,用文件名作爲key,內容作爲value。然後處理SequenceFile文件,提高效率

2: 本代碼中還有很多可以改進的地方。比如:本代碼的最後輸出包含了很多中間數據,大家可以根據自己的需要刪除不需要的數據。

本代碼是根據輸入的文件數來確定ReduceTask數和最後的文件輸出數,大家也可以自己修改。最後文件的輸出內容也是無序的,如果大家需要可以參看本博的另一篇博文(http://blog.csdn.net/jackydai987/archive/2011/03/12/6244725.aspx)進行多文件輸出。

3:本文只是提供一個簡單的思路,如果代碼中有什麼不對的地方請各位大大不要見笑,和給偶提出來,在下感激不盡。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章