如何在stanford-nlp程序中给出标志选项?

时间:2017-11-04 07:00:44

标签: stanford-nlp

该网站建议我可以使用几个标志 https://nlp.stanford.edu/software/openie.html

但是如何使用它,我尝试这样做

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.naturalli.NaturalLogicAnnotations;
import edu.stanford.nlp.util.CoreMap;

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

/**
 * A demo illustrating how to call the OpenIE system programmatically.
*/
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,lemma,depparse,natlog,openie");
props.setProperty("openieformat","ollie");
props.setProperty("openieresolve_coref","1");
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());
  }
}
 }
}

我添加了

props.setProperty("openieformat","ollie");
props.setProperty("openieresolve_coref","1");

但它不起作用

1 个答案:

答案 0 :(得分:0)

对于StanfordCoreNLP,各个注释器的标志/属性设置为annotator.flag名称。布尔标志的值为“false”或“true”。所以,你所拥有的是接近正确的,但需要:

props.setProperty("openie.format","ollie"); props.setProperty("openie.resolve_coref","true");