我正在使用 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>
. 因此它可以被初始化为 aDynamicLMClassifier<NGramProcessLM>
并且在训练阶段有必要将它转换为DynamicLMClassifier<NGramProcessLM>
。在此之后,它可以被加载并用于对新对象进行分类。正如@mjv 所说,这使得分类器不再可训练。