这是我第一次在这里发布内容;因此,如果我表现出任何不良做法,请告诉我。

因此,当前我正在尝试使用斯坦福大学的OpenIE从网络挖掘的数据中提取信息。因为我真的是Java的新手,所以我只是从他们的页面中复制了示例代码片段:http://nlp.stanford.edu/software/openie.shtml

看起来像这样:

  import java.util.*;
  import edu.stanford.nlp.pipeline.StanfordCoreNLP;
  import edu.stanford.nlp.pipeline.Annotation;
  import edu.stanford.nlp.naturalli.NaturalLogicAnnotations;
  import edu.stanford.nlp.ling.CoreAnnotations;
  import edu.stanford.nlp.ie.util.RelationTriple;
  import edu.stanford.nlp.util.CoreMap;

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

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

    for (CoreMap sentence : doc.get(CoreAnnotations.SentencesAnnotation.class)) {
      Collection<RelationTriple> triples = sentence.get(NaturalLogicAnnotations.RelationTriplesAnnotation.class);
      for (RelationTriple triple : triples) {
        System.out.println(triple.confidence + "\t" +
            triple.subjectLemmaGloss() + "\t" +
            triple.relationLemmaGloss() + "\t" +
            triple.objectLemmaGloss());
      }
    }
  }


然后,我将其编译为一个类,并从其站点将其放入openIE jar。

我运行了这样的命令,几乎与他们的命令行调用示例相同:

java -mx1g -cp stanford-openie.jar:stanford-openie-models.jar Example


但是最后我得到了这样一个错误:

Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ... Exception in thread "main" edu.stanford.nlp.io.RuntimeIOException: java.io.IOException: Unable to resolve "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz" as either class path, filename or URL


尽管他们的命令行调用可以按页面上的方式工作,但我认为这是我的Java技能存在的问题。但是我无法弄清楚该如何解决,在Stackoverflow上询问的相关问题也无济于事。为什么它不能解析类路径?

注意:我看到有人张贴有关同时在其工作空间中使用CoreNLP的信息,但是我确定我不会将这些JAR放在同一目录下。

最佳答案

将setProperty行更改为以下内容。我面临着同样的问题。此行的更改使其起作用。

另外,您应该在路径中包含CoreNLP和Openie jar,以帮助其正常工作。

props.setProperty("annotators", "tokenize,ssplit,pos,lemma,depparse,natlog,openie");

关于java - Stanford OpenIE示例代码无法正常运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32419534/

10-11 07:22