Почему моя программа выдает исключение java.io.StreamCorruptedException: недопустимый код типа: 3F? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь токенизировать фрагмент текста на китайском языке с помощью 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 в 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 $ обнулить $ 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 $ обнулить $ 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: class java.util.ArrayList не может быть приведен к классуedu.stanford.nlp.classify.LinearClassifier (java.util.ArrayList находится в модуль java.base загрузчика 'bootstrap'; 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

...