创建 StanfordCoreNLP 对象时出错 [英] Error in creating the StanfordCoreNLP object
问题描述
我已经从 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屋!