当前位置: 首页 > 知识库问答 >
问题:

使用Stanford CoreNLP解决共指问题-无法加载解析器模型

乌骏
2023-03-14

我已经尝试使用斯坦福CorenLP。但是,我似乎无法启动解析器。我已经使用Eclipse在我的项目中导入了所有包含的JAR,并为JVM(-xmx3g)分配了3GB。

错误很尴尬:

线程“main”java.lang.NosuchMethoderror:edu.stanford.nlp.parser.lexparser.lexicalizedParser.loadModel(ljava/lang/string;[ljava/lang/string;)ledu/stanford/nlp/parser/lexparser/lexicalizedParser;

我不明白我从哪里来,我想这是我问题根源...这是相当奇怪的。我试图进入源文件内部,但那里没有错误的引用。

代码:

import edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations.CollapsedCCProcessedDependenciesAnnotation;
import edu.stanford.nlp.dcoref.CorefCoreAnnotations.CorefChainAnnotation;
import edu.stanford.nlp.dcoref.CorefCoreAnnotations.CorefGraphAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.NamedEntityTagAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.PartOfSpeechAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.SentencesAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.TextAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.TokensAnnotation;
import edu.stanford.nlp.trees.TreeCoreAnnotations.TreeAnnotation;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.dcoref.CorefChain;
import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.semgraph.SemanticGraph;
import edu.stanford.nlp.util.CoreMap;
import edu.stanford.nlp.util.IntTuple;
import edu.stanford.nlp.util.Pair;
import edu.stanford.nlp.util.Timing;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import java.util.Properties;

public class Coref {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) throws IOException, ClassNotFoundException {
    // creates a StanfordCoreNLP object, with POS tagging, lemmatization, NER, parsing, and coreference resolution 
    Properties props = new Properties();
    props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

    // read some text in the text variable
    String text = "Mary has a little lamb. She is very cute."; // Add your text here!

    // create an empty Annotation just with the given text
    Annotation document = new Annotation(text);

    // run all Annotators on this text
    pipeline.annotate(document);

    // these are all the sentences in this document
    // a CoreMap is essentially a Map that uses class objects as keys and has values with custom types
    List<CoreMap> sentences = document.get(SentencesAnnotation.class);

    for(CoreMap sentence: sentences) {
      // traversing the words in the current sentence
      // a CoreLabel is a CoreMap with additional token-specific methods
      for (CoreLabel token: sentence.get(TokensAnnotation.class)) {
        // this is the text of the token
        String word = token.get(TextAnnotation.class);
        // this is the POS tag of the token
        String pos = token.get(PartOfSpeechAnnotation.class);
        // this is the NER label of the token
        String ne = token.get(NamedEntityTagAnnotation.class);       
      }

      // this is the parse tree of the current sentence
      Tree tree = sentence.get(TreeAnnotation.class);
      System.out.println(tree);

      // this is the Stanford dependency graph of the current sentence
      SemanticGraph dependencies = sentence.get(CollapsedCCProcessedDependenciesAnnotation.class);
    }

    // This is the coreference link graph
    // Each chain stores a set of mentions that link to each other,
    // along with a method for getting the most representative mention
    // Both sentence and token offsets start at 1!
    Map<Integer, CorefChain> graph = 
      document.get(CorefChainAnnotation.class);
    System.out.println(graph);
  }
}

完整堆栈跟踪:

添加注释器标记添加注释器ssplit添加注释器pos加载pos模型[edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words/english-left3words/english-left3words-distsim.tagger]...从经过训练的tagger加载默认属性完成[2.2秒]。添加注释器引理添加注释器ner从edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz加载分类器...完成[4.0秒]。从edu/stanford/nlp/models/ner/english.muc.distsim.crf.ser.gz加载分类器...完成[3.0秒]。从edu/stanford/nlp/models/ner/english.conll.distsim.crf.ser.gz加载分类器...完成[3.3秒]。在线程“main”java.lang.nosuchmethoderror:edu.stanford.nlp.parser.lexicalizedparser.loadModel(ljava/lang/string;[ljava/lang/string;)ledu/stanford.nlp.pipeline.parserannotator.loadModel(parserannotator.java:115)在edu.stanford.nlp.pipeline.parserannotator.(parserannotator.java:64),在java:603)在edu.stanford.nlp.pipeline.stanfordCorenlp$12.创建(stanfordCorenlp.java:585)在edu.stanford.nlp.pipeline.annotatorpool.get(annotatorpool.java:62)在edu.stanford.nlp.pipeline.stanfordCorenlp.construct(stanfordCorenlp.java:329)在edu.stanford.nlp.pipeline.stanfordCorenlp.java:196)在eline.stanfordcorenlp.(stanfordcorenlp.java:178)在coref.main(coref.java:41)

共有1个答案

蒙弘图
2023-03-14

是的,L只是Java1.0以来的一个奇怪的Sun东西。

LexicalizedParser.loadModel(String,String...)是添加到解析器中的新方法,但未找到该方法。我怀疑这意味着您的类路径中有另一个版本的解析器正在被使用。

尝试这样做:在任何IDE外部的shell中,给出以下命令(适当地给出stanford-corenlp的路径,如果在Windows上,则更改:to;

javac -cp ".:stanford-corenlp-2012-04-09/*" Coref.java
java -mx3g -cp ".:stanford-corenlp-2012-04-09/*" Coref
 类似资料:
  • 本文向大家介绍PHP Redis扩展无法加载的问题解决方法,包括了PHP Redis扩展无法加载的问题解决方法的使用技巧和注意事项,需要的朋友参考一下 最近在工作中需要使用PHP访问Redis,从https://github.com/phpredis/phpredis下载了phpredis,并且按照官方的说明进行了安装 但是在重启php-fpm的过程中,发生了如下的错误,redis.so无法载入

  • 问题内容: 我正在将样式加载器与webpack和react框架一起使用。当我在终端中运行webpack时,尽管我已正确指定了文件路径,但我仍获取import.js文件。 webpack.config.js: 问题答案: 尝试在下面运行脚本: 修改webpack配置,在中添加字段。

  • 本文向大家介绍手动下载Chrome并解决puppeteer无法使用问题,包括了手动下载Chrome并解决puppeteer无法使用问题的使用技巧和注意事项,需要的朋友参考一下 因为网络原因,国内安装 puppeteer 的时候会报网络超时。这里使用 puppeteer-core 之后使用手动下载的 Chrome 进行操作。思路很简单,安装一个不带浏览器的 puppeteer ,再使用的时候将浏览器

  • 本文向大家介绍springboot2版本无法加载静态资源问题解决,包括了springboot2版本无法加载静态资源问题解决的使用技巧和注意事项,需要的朋友参考一下 前言 在学习springboot的过程中,发现无法引用静态资源。我使用的是springboot2.2.1版本。 追溯源码,终于解决。并记录下解决思路。 默认加载路径 首先得知道springboot默认加载得资源路径是什么。 首先我们看W

  • 我对Groovy还比较陌生,我正试着去了解Gradle。如果我导入组织。jvnet。哈德逊。通过Grapes插件,它可以完美地工作,并且解决了依赖关系。但是,如果我尝试使用Gradle检索依赖关系,则依赖关系不会得到解决。 包适用于Gradle和Grape。 未使用Gradle解决的依赖关系 使用Grape解决的依赖关系 使用Gradle解决的依赖项 Gradle构建过程中的错误 build.gr

  • 本文向大家介绍tomcat加载jar异常问题的分析与解决,包括了tomcat加载jar异常问题的分析与解决的使用技巧和注意事项,需要的朋友参考一下 现象描述: 项目使用springboot启动一个web项目,在启动阶段看到console中出现了异常“1.10.3-1.4.3\hdf5.jar  系统找不到指定的文件”,虽然这些异常不影响项目的正常运行,但作为一个严谨的技术人员,看到这些异常就像见到