我使用lingpipe進行情感分析(以下代碼爲this),我試圖在訓練它後存儲分類器。問題是,存放後,我無法加載:存儲DynamicLMClassifier(Lingpipe)
java.lang.ClassCastException: com.aliasi.classify.LMClassifier cannot be cast to com.aliasi.classify.DynamicLMClassifier
爲了存儲我用的是分類:
AbstractExternalizable.compileTo(mClassifier, classifierFile);
並加載它:
mClassifier = (DynamicLMClassifier<NGramProcessLM>) AbstractExternalizable.readObject(classifierFile);
編輯: 我應該先閱讀lingpipe的javadoc。要存儲分類器並在之後加載,mClassifier
的分類應爲LMClassifier<NGramProcessLM, MultivariateEstimator>
。因此它可以被初始化爲DynamicLMClassifier<NGramProcessLM>
,並且在訓練階段期間有必要將其投射到DynamicLMClassifier<NGramProcessLM>
。在此之後,它可以被加載並用於分類新的對象。正如@mjv所說,這使分類器不再可以訓練。
這不是我的情況,但如果我打算在編譯後繼續訓練分類器,該怎麼辦? – miguel
@miguel重複動態訓練,你可以堅持LanguageModels代替。 (看我的編輯) – mjv