我有句子(文字I):
汤姆是个聪明的孩子。 他知道很多事情。
我想在第二句中将他更改为 Tom ,因此最终句子将变为(文字II):
汤姆是个聪明的孩子。 汤姆知道很多事情。
我已经写了一些代码,但我的 coref 对象总是 null 。
此外,我不知道接下来该怎么做才能得到正确的结果。
String text = "Tom is a smart boy. He know a lot of thing.";
Annotation document = new Annotation(text);
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, parse, lemma, ner, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
pipeline.annotate(document);
List<Pair<IntTuple, IntTuple>> coref = document.get(CorefGraphAnnotation.class);
我想知道我做错了什么以及我应该做什么从文字我获得 Text II 。
PS:我正在使用Stanford CoreNLP 1.3.0。
感谢。
答案 0 :(得分:2)
List<Pair<IntTuple, IntTuple>> coref = document.get(CorefGraphAnnotation.class);
这是一种旧的coref输出格式。
您可以将此行更改为
Map<Integer, CorefChain> graph = document.get(CorefChainAnnotation.class);
或者您可以使用oldCorefFormat
选项:
props.put("oldCorefFormat", "true");