gpt4 book ai didi

stanford-nlp - 运行斯坦福给出的开放信息提取时出错

转载 作者:行者123 更新时间:2023-12-04 04:12:44 25 4
gpt4 key购买 nike

我正在尝试使用官方网站中给出的命令运行stanford nlp给出的openIE:http://nlp.stanford.edu/software/openie.shtml

java -mx1g -cp stanford-openie.jar:stanford-openie-models.jar edu.stanford.nlp.naturalli.OpenIE  mytextfile.txt

但我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<clinit>(StanfordCoreNLP.java:99)
at edu.stanford.nlp.naturalli.OpenIE.main(OpenIE.java:679)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more

再次运行给定的java代码时:
package edu.stanford.nlp.naturalli;

import edu.stanford.nlp.ie.util.RelationTriple;
import edu.stanford.nlp.ling.CoreAnnotations;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import edu.stanford.nlp.util.CoreMap;

import java.util.Collection;
import java.util.List;
import java.util.Properties;

public class OpenIEDemo {

public static void main(String[] args) throws Exception {
// Create the Stanford CoreNLP pipeline
Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,depparse,natlog,openie");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

// Annotate an example document.
Annotation doc = new Annotation("Obama was born in Hawaii. He is our president.");
pipeline.annotate(doc);

// Loop over sentences in the document
for (CoreMap sentence : doc.get(CoreAnnotations.SentencesAnnotation.class)) {

// Get the OpenIE triples for the sentence
Collection<RelationTriple> triples = sentence.get(NaturalLogicAnnotations.RelationTriplesAnnotation.class);

// Print the triples
for (RelationTriple triple : triples) {
System.out.println(triple.confidence + "\t" +
triple.subjectLemmaGloss() + "\t" +
triple.relationLemmaGloss() + "\t" +
triple.objectLemmaGloss());
}

// Alternately, to only run e.g., the clause splitter:
List<SentenceFragment> clauses = new OpenIE(props).clausesInSentence(sentence);
for (SentenceFragment clause : clauses) {
System.out.println(clause.parseTree);
}
}
}
}

我收到下一个错误:
Adding annotator tokenize
TokenizerAnnotator: No tokenizer type provided. Defaulting to PTBTokenizer.
Adding annotator ssplit
Adding annotator pos
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [0,7 sec].
Adding annotator depparse
Loading depparse model file: edu/stanford/nlp/models/parser/nndep/english_UD.gz ...
PreComputed 100000, Elapsed Time: 1.159 (s)
Initializing dependency parser done [3,5 sec].
Adding annotator natlog
Exception in thread "main" java.lang.IllegalArgumentException: annotator "natlog" requires annotator "parse"
at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:297)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:126)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:122)
at stnfrd.OpenIEDemo.main(OpenIEDemo.java:33)
/home/ue/.cache/netbeans/8.1/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 4 seconds)

任何帮助将不胜感激。

最佳答案

  • 第一个错误是您没有 slf4j jar,它目前包含在 GitHub 上的最新版本中:https://github.com/stanfordnlp/CoreNLP或者你可以在这里找到那个特定的 jar :http://www.slf4j.org/download.html
  • 第二个错误是由“natlog”需要“解析”引起的。将“depparse”改为“parse”:
    props.setProperty("annotators", "tokenize,ssplit,pos,parse,natlog,openie");
  • 关于stanford-nlp - 运行斯坦福给出的开放信息提取时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33845753/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com