无法在Stanford CoreNLP Java API中加载标记器模型

问题描述 投票:0回答:2

我一直在使用 java 中的斯坦福 CoreNLP API 版本 4.0.0。然而,最近我升级到版本 4.1.0,并且在使用“pos”注释器时遇到问题。具体来说,我无法加载标记器模型。我已确认模型 jar 位于我的类路径中,并且我的类路径中没有多个版本的 CoreNLP。我还提取了模型 jar 文件并确认包含 pos-tagger。据我所知, pos-tagger 似乎是唯一无法访问的模型。最后一次尝试,我下载了英文模型 jar 并尝试用这个新下载的内容替换模型 jar。这不起作用。这是我遇到的两个错误:

edu.stanford.nlp.io.RuntimeIOException: Error while loading a tagger model (probably missing model file)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:801)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:322)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:275)
    at edu.stanford.nlp.pipeline.POSTaggerAnnotator.loadModel(POSTaggerAnnotator.java:85)
    at edu.stanford.nlp.pipeline.POSTaggerAnnotator.<init>(POSTaggerAnnotator.java:73)
    at edu.stanford.nlp.pipeline.AnnotatorImplementations.posTagger(AnnotatorImplementations.java:68)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getNamedAnnotators$5(StanfordCoreNLP.java:527)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$null$32(StanfordCoreNLP.java:608)
    at edu.stanford.nlp.util.Lazy$3.compute(Lazy.java:126)
    at edu.stanford.nlp.util.Lazy.get(Lazy.java:31)
    at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:149)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:253)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:194)
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:190)

Caused by: java.io.IOException: Unable to open "edu/stanford/nlp/models/pos-tagger/english-left3words-distsim.tagger" as class path, filename or URL
    at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:482)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:798)
    ... 44 more

关于如何解决这个问题有什么想法吗?预先感谢您!

java stanford-nlp
2个回答
0
投票

用这个

    <dependency>
        <groupId>edu.stanford.nlp</groupId>
        <artifactId>stanford-corenlp</artifactId>
        <version>4.1.0</version>
    </dependency>

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

0
投票

注意,如果您正在使用 gradle,您将需要按照这些思路做一些事情

implementation("edu.stanford.nlp:stanford-corenlp:4.1.0:models")
© www.soinside.com 2019 - 2024. All rights reserved.