创建StanfordCoreNLP对象时出错 [英] Error in creating the StanfordCoreNLP object

查看:624
本文介绍了创建StanfordCoreNLP对象时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经从 http://nlp.stanford.edu下载并安装了所需的jar文件/software/corenlp.shtml#Download

我已经包含了五个jar文件

I have include the five jar files

Satnford-postagger.jar

Satnford-postagger.jar

Stanford-psotagger-3.3.1.jar

Stanford-psotagger-3.3.1.jar

Stanford-psotagger-3.3。 1.jar-javadoc.jar

Stanford-psotagger-3.3.1.jar-javadoc.jar

Stanford-psotagger-3.3.1.jar-src.jar

Stanford-psotagger-3.3.1.jar-src.jar

stanford-corenlp-3.3.1.jar

stanford-corenlp-3.3.1.jar

,代码是

public class lemmafirst {

    protected StanfordCoreNLP pipeline;

    public lemmafirst() {
        // Create StanfordCoreNLP object properties, with POS tagging
        // (required for lemmatization), and lemmatization
        Properties props;
        props = new Properties();
        props.put("annotators", "tokenize, ssplit, pos, lemma");

        /*
         * This is a pipeline that takes in a string and returns various analyzed linguistic forms. 
         * The String is tokenized via a tokenizer (such as PTBTokenizerAnnotator), 
         * and then other sequence model style annotation can be used to add things like lemmas, 
         * POS tags, and named entities. These are returned as a list of CoreLabels. 
         * Other analysis components build and store parse trees, dependency graphs, etc. 
         * 
         * This class is designed to apply multiple Annotators to an Annotation. 
         * The idea is that you first build up the pipeline by adding Annotators, 
         * and then you take the objects you wish to annotate and pass them in and 
         * get in return a fully annotated object.
         * 
         *  StanfordCoreNLP loads a lot of models, so you probably
         *  only want to do this once per execution
         */
        ***this.pipeline = new StanfordCoreNLP(props);***
}

我的问题在于创建一个pipline。

My Problem is in creating a the pipline.

我得到的错误是:

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:563)
    at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:81)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:262)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:129)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:125)
    at lemmafirst.<init>(lemmafirst.java:39)
    at lemmafirst.main(lemmafirst.java:83)
Caused by: edu.stanford.nlp.io.RuntimeIOException: Unrecoverable error while loading a tagger model
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:758)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:289)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:253)
    at edu.stanford.nlp.pipeline.POSTaggerAnnotator.loadModel(POSTaggerAnnotator.java:88)
    at edu.stanford.nlp.pipeline.POSTaggerAnnotator.<init>(POSTaggerAnnotator.java:76)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP$4.create(StanfordCoreNLP.java:561)
    ... 6 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:434)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:753)
    ... 11 more

任何人都可以更正错误吗?谢谢

Can anyone please correct the errors? Thank you

推荐答案

抛出的异常是由于缺少pos模型。这是因为有可下载的版本有和没有模型文件。

The exception which is thrown is due to the missing pos model. This is because there are downloadable versions with and without the model files.

要么添加
stanford-postagger- 完整 -3.3.1.jar
可以在以下页面(stanford-postagger-full-2014-01-04.zip):
http ://nlp.stanford.edu/software/tagger.shtml

Either you add stanford-postagger-full-3.3.1.jar which can be found on the following page (stanford-postagger-full-2014-01-04.zip): http://nlp.stanford.edu/software/tagger.shtml .

或者你对整个CoreNLP包(stanford)做同样的事情-corenlp- 完整 .... jar):
http ://nlp.stanford.edu/software/corenlp.shtml
(那么你也可以删除所有postagger依赖项,它们包含在CoreNLP中)

Or you do the same for the whole CoreNLP Package (stanford-corenlp-full....jar): http://nlp.stanford.edu/software/corenlp.shtml (Then you can drop all the postagger depenedencies too, they are included in CoreNLP)

如果您只想添加模型文件,请查看 Maven Central 和下载stanford-corenlp-3.3.1-models.jar。

In case you only want to add the model files, look at Maven Central and download "stanford-corenlp-3.3.1-models.jar".

这篇关于创建StanfordCoreNLP对象时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆