我已經有大約300k個文檔存儲在Postgres數據庫中,並且標記了主題類別(共有大約150個類別)。我還有另外150k文件還沒有分類。我試圖找到對它們進行編程分類的最佳方法。將文檔分類爲
我一直在探索NLTK及其樸素貝葉斯分類器。看起來像一個很好的起點(如果你可以提出一個更好的分類算法來完成這項任務,我就會全神貫注)。
我的問題是,我沒有足夠的RAM來一次訓練所有150種類/ 300k文檔的NaiveBayesClassifier(使用8GB的5個類別的培訓)。此外,當我訓練更多類別時,分類器的準確性似乎下降(2類爲準確率爲90%,5類爲81%,10爲61%)。
我應該一次只訓練5個類別的分類器,並通過分類器運行所有150k文檔以查看是否有匹配?看起來這樣會起作用,除非會有很多誤報,其中文檔與任何類別都不匹配的文檔只是因爲它是可用的最佳匹配纔會被分類器使用。只有在文檔不適合任何類別的情況下,才能爲分類器提供「以上都不是」選項?
這裏是我的測試類http://gist.github.com/451880
也許一個在線/增量培訓模式將解決記憶問題:http://en.wikipedia.org/wiki/Online_machine_learning – Amro 2010-06-25 20:45:11