Stanford nlp 带有Stanford NLP西班牙语词性标记的NullPointerException

Stanford nlp 带有Stanford NLP西班牙语词性标记的NullPointerException,stanford-nlp,Stanford Nlp,所有- 运行斯坦福CoreNLP 3.4.1以及西班牙模型。我有一个大约100个西班牙文原始文本文档的目录,UTF-8编码。对于每个命令行,我执行以下命令行: java -cp stanford-corenlp-3.4.1.jar:stanford-spanish-corenlp-2014-08-26-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-0.23.jar -Xmx2g edu.stanford.nlp.pipeline.Stanf

所有-

运行斯坦福CoreNLP 3.4.1以及西班牙模型。我有一个大约100个西班牙文原始文本文档的目录,UTF-8编码。对于每个命令行,我执行以下命令行:

java -cp stanford-corenlp-3.4.1.jar:stanford-spanish-corenlp-2014-08-26-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-0.23.jar -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -props <propsfile> -file <txtfile>
对于几乎每个文件,我都会遇到以下错误:

线程“main”java.lang.RuntimeException中的异常:错误注释: 位于edu.stanford.nlp.pipeline.StanfordCoreNLP$15.run(StanfordCoreNLP.java:1287) 位于edu.stanford.nlp.pipeline.StanfordCoreNLP.processFiles(StanfordCoreNLP.java:1347) 位于edu.stanford.nlp.pipeline.StanfordCoreNLP.run(StanfordCoreNLP.java:1389) 位于edu.stanford.nlp.pipeline.StanfordCoreNLP.main(StanfordCoreNLP.java:1459) 原因:java.lang.NullPointerException 位于edu.stanford.nlp.tagger.maxent.extractorsPanisStrippedVerb.extract(ExtractorFramesRare.java:1626) 位于edu.stanford.nlp.tagger.maxent.Extractor.extract(Extractor.java:153) 位于edu.stanford.nlp.tagger.maxent.TestSession.getExactHistories(TestSession.java:465) 位于edu.stanford.nlp.tagger.maxent.TestSession.getHistories(testSession.java:440) 在edu.stanford.nlp.tagger.maxent.TestSession.getHistories(testSession.java:428)上 在edu.stanford.nlp.tagger.maxent.TestSession.getExactScores(TestSession.java:377) 在edu.stanford.nlp.tagger.maxent.TestSession.getScores(TestSession.java:372)上 在edu.stanford.nlp.tagger.maxent.TestSession.scoresOf(testSession.java:713) 位于edu.stanford.nlp.sequences.ExactBestSequenceFinder.bestSequence(ExactBestSequenceFinder.java:91) 位于edu.stanford.nlp.sequences.ExactBestSequenceFinder.bestSequence(ExactBestSequenceFinder.java:31) 位于edu.stanford.nlp.tagger.maxent.TestSession.RunTagEnference(TestSession.java:322) 位于edu.stanford.nlp.tagger.maxent.TestSession.TestTagEnference(TestSession.java:312) 位于edu.stanford.nlp.tagger.maxent.TestSession.tagSession(testSession.java:135) 位于edu.stanford.nlp.tagger.maxent.MaxentTagger.tagsence(MaxentTagger.java:998) 位于edu.stanford.nlp.pipeline.POSTaggerAnnotator.doOneSentence(POSTaggerAnnotator.java:147) 位于edu.stanford.nlp.pipeline.POSTaggerAnnotator.annotate(POSTaggerAnnotator.java:110) 位于edu.stanford.nlp.pipeline.AnnotationPipeline.annotate(AnnotationPipeline.java:67) 位于edu.stanford.nlp.pipeline.StanfordCoreNLP.annotate(StanfordCoreNLP.java:847) 位于edu.stanford.nlp.pipeline.StanfordCoreNLP$15.run(StanfordCoreNLP.java:1275)

有什么想法吗?我甚至还没有开始追踪这件事。我肯定问题出在POS上;标记化和ssplit运行良好

注意,请不要说“升级到3.5.0”;我目前还没有安装Java8,也不想安装它


提前感谢。

是的,3.4.1西班牙型号中似乎有一个bug


西班牙3.5.0模型实际上似乎与Java7兼容。您可以下载3.5()中使用的模型,并将其放在类路径上。这解决了我在本地运行Java 7的问题。

我无法从2014-08-26(在Java 7或Java 8上)重新下载CoreNLP 3.4.1和西班牙语模型jar来重现这个问题。你能试着重新下载西班牙模型jar/CoreNLP jar吗?这两个版本都有新的下载。MacOS 10.9.5,Java 1.7.0_72。同样的错误。导致它失败的一个有代表性的输入句是:墨西哥人captura A uno de los hombres Más sanguinarios。啊哈,我明白了。。绝对是个虫子!今天晚些时候我会追踪到这一点。谢谢你的报道。事实上,这解决了问题。谢谢
annotators = tokenize, ssplit, pos
tokenize.language = es
pos.model = edu/stanford/nlp/models/pos-tagger/spanish/spanish-distsim.tagger