Я пытаюсь токенизировать фрагмент текста на китайском языке с помощью 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