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

查看:17
本文介绍了创建 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);***
}

我的问题在于创建管道.

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

谁能更正错误?谢谢

推荐答案

抛出的异常是由于缺少 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-full....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天全站免登陆