我試圖用n-grams(n => 1,2,3)作爲特徵運行Stanford-nlp分類器的20 news text classification example作爲特徵,但我繼續出現內存不足錯誤。繼我使用的屬性和命令運行它:Stanford-nlp分類器內存不足n-gram,n> 1
2.useSplitWordNGrams=true
2.maxWordNGramLeng=3
2.minWordNGramLeng=1
java -mx1800m -cp $STANFORD_CLASSIFIER_JAR edu.stanford.nlp.classify.ColumnDataClassifier \
-trainFile 20news-devtrain.txt -testFile 20news-devtest.txt \
-2.useSplitWords -2.splitWordsRegexp "\\s+" -prop 20news1.prop
對於unigrams程序運行正常。問題是,我只有4G內存可用,我想知道是否有可能加載像這些少數內存這樣的大型模型。
我試圖通過將每個文章的每個詞(在詞幹化之後)翻譯成唯一的整數id,通過在內存中用「word,id」對保留一個散列來減小數據的大小。這種方法可以將尺寸減小25%,但是stil沒有設法建立二元模型分類器。
我想在非常大的數據(網頁)上使用stanford-nlp,所以我真的需要知道,如果我可以讓它運行一個合理的內存量。任何想法將非常感謝!
乾杯, 季米特里斯
那是正確的。此外,還有Zipfs法則,我們可以跳過幾乎一半的特徵(單例),而不影響分類性能。 – ArisRe82