简体   繁体   English

java maven项目中的stanford NLP API错误

[英]stanford NLP API error in java maven project

I have been working on this project for a while.我已经在这个项目上工作了一段时间。 I'm using stanford NLP.我正在使用斯坦福 NLP。 I've added its dependency in my maven project.我已经在我的 Maven 项目中添加了它的依赖项。 it used to work completely fine but now it shows this error: (I even downloaded similar project from git to find out if something is wrong done by me yet same message is displayed for that too. please let me know the problem)它曾经工作得很好,但现在它显示了这个错误:(我什至从 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

You need to include the models jar in your classpath.您需要在类路径中包含模型 jar。 You can either download this manually, or include it with maven via the instructions at https://stanfordnlp.github.io/CoreNLP/download.html (replace version as appropriate):您可以手动下载它,也可以通过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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM