为什么我的程序抛出java.io.StreamCorruptedException:无效类型代码:3F?

时间:2019-04-12 10:00:31

标签: nlp stanford-nlp

我正在尝试使用Stanford NLP标记一段中文文本,但是该程序始终会抛出异常。

我尝试了不同的方式来加载属性文件,但是它们不起作用。

import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import java.io.InputStream;
import java.util.*;

public class Spider {
public static void main(String[] args) {
    try {
            StanfordCoreNLP ppl;
            Properties prop = new Properties();
            InputStream in = Spider.class.getClassLoader().getResourceAsStream("StanfordCoreNLP-chinese.properties");
            prop.load(in);
            ppl = new StanfordCoreNLP(prop);
            Annotation doc = new Annotation("浮云白日,山川庄严温柔。");
            ppl.annotate(doc);
            ppl.prettyPrint(doc, System.out);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

例外情况如下:

  

java.io.StreamCorruptedException:无效的类型代码:3F at   java.base / java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1622)     在   java.base / java.io.ObjectInputStream.readArray(ObjectInputStream.java:1993)     在   java.base / java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1588)     在   java.base / java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)     在   edu.stanford.nlp.ie.crf.CRFClassifier.loadClassifier(CRFClassifier.java:2642)     在   edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1473)     在   edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1505)     在   edu.stanford.nlp.ie.crf.CRFClassifier.getClassifier(CRFClassifier.java:2939)     在   edu.stanford.nlp.ie.ClassifierCombiner.loadClassifierFromPath(ClassifierCombiner.java:286)     在   edu.stanford.nlp.ie.ClassifierCombiner.loadClassifiers(ClassifierCombiner.java:270)     在   edu.stanford.nlp.ie.ClassifierCombiner。(ClassifierCombiner.java:142)     在   edu.stanford.nlp.ie.NERClassifierCombiner。(NERClassifierCombiner.java:108)     在   edu.stanford.nlp.pipeline.NERCombinerAnnotator。(NERCombinerAnnotator.java:125)     在   edu.stanford.nlp.pipeline.AnnotatorImplementations.ner(AnnotatorImplementations.java:68)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda $ getNamedAnnotators $ 5(StanfordCoreNLP.java:523)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda $ null $ 30(StanfordCoreNLP.java:602)     在edu.stanford.nlp.util.Lazy $ 3.compute(Lazy.java:126)在   edu.stanford.nlp.util.Lazy.get(Lazy.java:31)在   edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:149)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP。(StanfordCoreNLP.java:251)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP。(StanfordCoreNLP.java:192)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP。(StanfordCoreNLP.java:188)     在Spider.main(Spider.java:13)   edu.stanford.nlp.io.RuntimeIOException:java.io.IOException:无法   来自的负载分类器   edu / stanford / nlp / models / ner / chinese.misc.distsim.crf.ser.gz位于   edu.stanford.nlp.pipeline.AnnotatorImplementations.ner(AnnotatorImplementations.java:70)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda $ getNamedAnnotators $ 5(StanfordCoreNLP.java:523)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda $ null $ 30(StanfordCoreNLP.java:602)     在edu.stanford.nlp.util.Lazy $ 3.compute(Lazy.java:126)在   edu.stanford.nlp.util.Lazy.get(Lazy.java:31)在   edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:149)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP。(StanfordCoreNLP.java:251)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP。(StanfordCoreNLP.java:192)     在   edu.stanford.nlp.pipeline.StanfordCoreNLP。(StanfordCoreNLP.java:188)     在Spider.main(Spider.java:13)处,由以下原因引起:java.io.IOException:   无法从中加载分类器   edu / stanford / nlp / models / ner / chinese.misc.distsim.crf.ser.gz位于   edu.stanford.nlp.ie.ClassifierCombiner.loadClassifierFromPath(ClassifierCombiner.java:296)     在   edu.stanford.nlp.ie.ClassifierCombiner.loadClassifiers(ClassifierCombiner.java:270)     在   edu.stanford.nlp.ie.ClassifierCombiner。(ClassifierCombiner.java:142)     在   edu.stanford.nlp.ie.NERClassifierCombiner。(NERClassifierCombiner.java:108)     在   edu.stanford.nlp.pipeline.NERCombinerAnnotator。(NERCombinerAnnotator.java:125)     在   edu.stanford.nlp.pipeline.AnnotatorImplementations.ner(AnnotatorImplementations.java:68)     ... 9更多原因:java.lang.ClassCastException:类   java.util.ArrayList无法转换为类   edu.stanford.nlp.classify.LinearClassifier(java.util.ArrayList在   加载程序'bootstrap'的java.base模块;   edu.stanford.nlp.classify.LinearClassifier在未命名的模块中   加载程序“ app”)   edu.stanford.nlp.ie.ner.CMMClassifier.loadClassifier(CMMClassifier.java:1095)     在   edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1473)     在   edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1505)     在   edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1495)     在   edu.stanford.nlp.ie.ner.CMMClassifier.getClassifier(CMMClassifier.java:1141)     在   edu.stanford.nlp.ie.ClassifierCombiner.loadClassifierFromPath(ClassifierCombiner.java:292)     ...另外14个

0 个答案:

没有答案