Maven未能下载CoreNLP模型

时间:2013-08-28 15:48:18

标签: maven stanford-nlp

从Stanford CoreNLP网站构建示例应用程序时,我遇到了一个奇怪的例外:

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)
…
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
…

仅当属性pos及其后的属性包含在属性中时才会发生这种情况。

Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

以下是我的pom.xml的依赖项:

<dependencies>
<dependency>
    <groupId>edu.stanford.nlp</groupId>
    <artifactId>stanford-corenlp</artifactId>
    <version>3.2.0</version>
    <scope>compile</scope>
</dependency>
</dependencies>

3 个答案:

答案 0 :(得分:50)

我实际上在Stackoverflow上的另一个问题的问题描述中找到了答案。

Quoting W.P. McNeill

  

Maven不会自动下载模型文件,但仅限于您   将模型行添加到.pom。这是一个.pom   获取代码和模型的代码段。

以下是我的依赖项现在的样子:

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

需要注意的重要部分是底部的条目<classifier>models</classifier>。为了使Eclipse能够维护这两个引用,您需要为每个stanford-corenlp-3.2.0stanford-corenlp-3.2.0-models配置依赖项。

答案 1 :(得分:2)

如果您需要将模型用于其他语言(例如中文,西班牙语或阿拉伯语),您可以将以下内容添加到pom.xml文件中(将models-chinese替换为models-spanish这两种语言分别为models-arabic):

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

答案 2 :(得分:0)

显然,有了Gradle,您可以使用:

implementation 'edu.stanford.nlp:stanford-corenlp:3.9.2'
implementation 'edu.stanford.nlp:stanford-corenlp:3.9.2:models'

或者如果您使用编译(不推荐):

compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.9.2'
compile group: 'edu.stanford.nlp', name: 'stanford-corenlp', version: '3.9.2' classifier: 'models'