【问题标题】:ClassCastException in LingPipeLingPipe 中的 ClassCastException
【发布时间】:2016-04-07 10:31:33
【问题描述】:

我正在使用

序列化一个经过训练的模型
TradNaiveBayesClassifier classifier = new TradNaiveBayesClassifier(categories,tokenizerFactory,categoryPrior,tokenInCategoryPrior,lengthNorm);

然后我训练它并使用它编译它

AbstractExternalizable.compileTo(classifier,new File(modelPath));

当我阅读模型时使用

TradNaiveBayesClassifier decompClassifier = (TradNaiveBayesClassifier)AbstractExternalizable.readObject(new File(modelPath));{

我得到一个 ClassCastException。有什么想法吗?

【问题讨论】:

  • 我得到的异常是:Exception in thread "main" java.lang.ClassCastException: com.aliasi.classify.TradNaiveBayesClassifier$CompiledBinaryTradNaiveBayesClassifier cannot be cast to com.aliasi.classify.TradNaiveBayesClassifier at com.wlodarczak.twitter.BayesClassifier.evaluate(BayesClassifier.java:102) at com.wlodarczak.twitter.BayesClassifier.run(BayesClassifier.java:158) at com.wlodarczak.twitter.BayesClassifier.main(BayesClassifier.java:163)

标签: classcastexception lingpipe


【解决方案1】:

我让它工作了。我不得不向上转换到 BaseClassifier:

        BaseClassifier<CharSequence> eval = (BaseClassifier<CharSequence>)AbstractExternalizable.readObject(new File(modelPath));
        evaluator = new BaseClassifierEvaluator<CharSequence>(eval, cat, storeInputs);

然后我不能再使用 JointClassifierEvaluator,我必须使用 BaseClassifierEvaluator。

【讨论】:

  • 如果不知道反序列化对象的类型,可以向Object.getClass()查询。
猜你喜欢
  • 2012-09-30
  • 2013-04-17
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 2011-08-09
  • 2012-06-25
相关资源
最近更新 更多