默认情况下,Stanford按以下顺序使用这三种NER模型:
从edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz加载分类器。完成20.6秒。从edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz加载分类器。完成[16.4秒从edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz加载分类器.完成18.2秒。
但是,如果我们想从我的计算机中的某个位置加载我们自己的模型,那么我们必须设置哪个属性?
因为,如果我提取Stanford-corenlp-3.2.0Models.jar的内容并将我的模型添加到其中,重新创建jar文件并重新编译corenlp。但是,在加载新添加的分类器时,我得到以下错误:
[java] Adding annotator tokenize
[java] Adding annotator ssplit
[java] Adding annotator pos
[java] Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [13.2 sec].
[java] Adding annotator lemma
[java] Adding annotator ner
[java] Loading classifier from edu/stanford/nlp/models/ner/ner-model-twitter.ser.gz ... java.lang.ClassCastException: java.util.ArrayList cannot be cast to edu.stan
ford.nlp.sequences.FeatureFactory
[java] at edu.stanford.nlp.ie.crf.CRFClassifier.loadClassifier(CRFClassifier.java:3380)
[java] at edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1587)
[java] at edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1642)
[java] at edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1629)
[java] at edu.stanford.nlp.ie.crf.CRFClassifier.getClassifier(CRFClassifier.java:3526)
[java] at edu.stanford.nlp.ie.ClassifierCombiner.loadClassifierFromPath(ClassifierCombiner.java:133)
[java] at edu.stanford.nlp.ie.ClassifierCombiner.loadClassifiers(ClassifierCombiner.java:117)
[java] at edu.stanford.nlp.ie.ClassifierCombiner.<init>(ClassifierCombiner.java:99)
[java] at edu.stanford.nlp.ie.NERClassifierCombiner.<init>(NERClassifierCombiner.java:62)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP$6.create(StanfordCoreNLP.java:555)
[java] at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:81)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:260)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:127)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:123)
[java] at StanfordCoreNLPXMLServer.main(StanfordCoreNLPXMLServer.java:121)
[java] Loading classifier from edu/stanford/nlp/models/ner/ner-model-twitter.ser.gz ... Exception in thread "main" edu.stanford.nlp.io.RuntimeIOException: java.io.F
ileNotFoundException
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP$6.create(StanfordCoreNLP.java:559)
[java] at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:81)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:260)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:127)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:123)
[java] at StanfordCoreNLPXMLServer.main(StanfordCoreNLPXMLServer.java:121)
[java] Caused by: java.io.FileNotFoundException
[java] at edu.stanford.nlp.ie.ClassifierCombiner.loadClassifierFromPath(ClassifierCombiner.java:143)
[java] at edu.stanford.nlp.ie.ClassifierCombiner.loadClassifiers(ClassifierCombiner.java:117)
[java] at edu.stanford.nlp.ie.ClassifierCombiner.<init>(ClassifierCombiner.java:99)
[java] at edu.stanford.nlp.ie.NERClassifierCombiner.<init>(NERClassifierCombiner.java:62)
[java] at edu.stanford.nlp.pipeline.StanfordCoreNLP$6.create(StanfordCoreNLP.java:555)
[java] ... 5 more
[java] Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to edu.stanford.nlp.classify.LinearClassifier
[java] at edu.stanford.nlp.ie.ner.CMMClassifier.loadClassifier(CMMClassifier.java:1074)
[java] at edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1587)
[java] at edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1642)
[java] at edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1629)
[java] at edu.stanford.nlp.ie.ner.CMMClassifier.getClassifier(CMMClassifier.java:1114)
[java] at edu.stanford.nlp.ie.ClassifierCombiner.loadClassifierFromPath(ClassifierCombiner.java:139)
[java] ... 9 more
[java] Java Result: 1
BUILD SUCCESSFUL
Total time: 3 minutes 22 seconds发布于 2015-02-07 03:14:28
-ner.model选项将尝试在Java上或作为文件系统路径查找该文件。如果您给出了文件系统上的ser.gz文件的绝对路径,那么它应该会很好地加载。
发布于 2015-02-08 00:44:45
我认为FileNotFoundException是假的/误导的,这里的问题是ClassCastException从ArrayList到FeatureFactory的第一个错误。我认为这显示了您的类路径,并且正在运行一个旧版本的CRFClassifier,从我们对CRFClassifier进行修改以支持拥有FeaturyFactory的列表开始。我会仔细检查类路径上的内容。
发布于 2015-03-02 10:42:58
通过提取重新编译的models.jar是否在预期路径(edu/stanford/nlp/ model /ner/)中具有支持文件的自定义模型。
https://stackoverflow.com/questions/28373858
复制相似问题