引用Annotator获取作者

时间:2017-04-14 12:55:10

标签: stanford-nlp

在以下文字中:

  

John说,"窗外有一头大象。"

有没有一种简单的方法可以弄清楚引用"窗外有一头大象。"属于约翰?

1 个答案:

答案 0 :(得分:2)

我们刚刚添加了一个处理此问题的模块。

您需要从GitHub获取最新代码。

以下是一些示例代码:

package edu.stanford.nlp.examples;

import edu.stanford.nlp.coref.*;
import edu.stanford.nlp.coref.data.*;
import edu.stanford.nlp.ling.CoreAnnotations;
import edu.stanford.nlp.util.*;

import edu.stanford.nlp.pipeline.*;

import java.util.*;


public class QuoteAttributionExample {

  public static void main(String[] args) {
    Annotation document =
        new Annotation("John said, \"There's an elephant outside the window.\"");
    Properties props = new Properties();
    props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,entitymentions,quote,quoteattribution");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
    pipeline.annotate(document);
    for (CoreMap quote : document.get(CoreAnnotations.QuotationsAnnotation.class)) {
      System.out.println(quote);
      System.out.println(quote.get(QuoteAttributionAnnotator.MentionAnnotation.class));
    }
  }
}

这仍在开发中,我们可能会添加一些代码,以便更快地获得链接到报价的实际文本范围。