【问题标题】:stanford NLP API error in java maven projectjava maven项目中的stanford NLP API错误
【发布时间】:2017-10-12 04:12:36
【问题描述】:

我从事这个项目已经有一段时间了。我正在使用斯坦福 NLP。我已经在我的 Maven 项目中添加了它的依赖项。它曾经完全可以正常工作,但现在它显示此错误:(我什至从 git 下载了类似的项目,以了解我是否做错了什么,但也会显示相同的消息。请让我知道问题)

Adding annotator tokenize
Adding annotator ssplit
Adding annotator pos

    Exception in thread "main" java.lang.RuntimeException: edu.stanford.nlp.io.RuntimeIOException: Unrecoverable error while loading a tagger model
        at edu.stanford.nlp.pipeline.StanfordCoreNLP$4.create(StanfordCoreNLP.java:493)
        at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:81)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:260)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:127)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:123)
        at CoreNlpExample.main(CoreNlpExample.java:17)
    Caused by: edu.stanford.nlp.io.RuntimeIOException: Unrecoverable error while loading a tagger model
        at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:749)
        at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:283)
        at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:247)
        at edu.stanford.nlp.pipeline.POSTaggerAnnotator.loadModel(POSTaggerAnnotator.java:78)
        at edu.stanford.nlp.pipeline.POSTaggerAnnotator.<init>(POSTaggerAnnotator.java:62)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP$4.create(StanfordCoreNLP.java:491)
        ... 5 more
    Caused by: java.io.IOException: Unable to resolve "edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger" as either class path, filename or URL
        at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:419)
        at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:744)
        ... 10 more

【问题讨论】:

  • 也包括你的代码。我可以看到导致错误的原因。
  • 这里是我正在使用的项目的链接:github.com/TechPrimers/core-nlp-example
  • 你更新了你的maven项目了吗?
  • 是...多次
  • 我发现将错误消息剪切并粘贴到 Google 中很有帮助。我通常发现我不是第一个遇到问题的人。我为你的堆栈跟踪中的相关位做了这个,并得到了很多回报,包括:github.com/stanfordnlp/CoreNLP/issues/101

标签: java maven stanford-nlp


【解决方案1】:

您需要在类路径中包含模型 jar。您可以手动下载它,也可以通过 https://stanfordnlp.github.io/CoreNLP/download.html 的说明将其包含在 maven 中(根据需要替换版本):

<dependencies> <dependency>
    <groupId>edu.stanford.nlp</groupId>
    <artifactId>stanford-corenlp</artifactId>
    <version>3.8.0</version> 
  </dependency>
<dependency>
    <groupId>edu.stanford.nlp</groupId>
    <artifactId>stanford-corenlp</artifactId>
    <version>3.8.0</version>
    <classifier>models</classifier> 
  </dependency> 
</dependencies>

【讨论】:

  • 我现在遇到这种错误:SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。 SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:有关详细信息,请参阅 slf4j.org/codes.html#StaticLoggerBinder。线程“主”java.lang.OutOfMemoryError 中的异常:Java 堆空间
  • @Lokesh 我也添加了给定的依赖项......但它没有帮助......再次出现同样的错误!请问还有什么解决办法吗?
  • @Gurjotkaur 在这种情况下,你可以在 github 上提出这个问题。
  • @Gurjotkaur 还在更新检查快照和版本的强制更新时再尝试一件事。并再次更新您的 Maven。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-03
  • 2017-07-19
  • 2017-03-01
  • 1970-01-01
相关资源
最近更新 更多