Из онлайных демо Stanford CoreNLP с примером предложением «минимальным элементом программного обеспечения, которые могут быть проверены в изоляции» это дает рухнувшие зависимости с CC обрабатываются следующим образом:Stanford Ядро NLP пропавшего Roots
root (ROOT-0 , item-4)
det (item-4 , A-1)
amod (item-4 , minimal-2)
nn (item-4 , software-3)
nsubjpass (tested-8 , that-5)
aux (tested-8 , can-6)
auxpass (tested-8 , be-7)
rcmod (item-4 , tested-8)
prep_in (tested-8 , isolation-10)
Из моего класса Java я получаю то же самое, кроме root (...). Код, который я запускаю, следующий:
public static void main(String[] args)
{
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation document = new Annotation(args[0]);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
SemanticGraph dependencies = sentence.get(SemanticGraphCoreAnnotations.CollapsedCCProcessedDependenciesAnnotation.class);
System.out.println(dependencies.toList());
}
}
Итак, вопрос в том, почему мой Java-код не выводит root `!? Я что-то упускаю?
мне удалось найти другое решение для моего случая: 'GrammaticalStructure гс = gsf.newGrammaticalStructure (дерево);' ' Collection TDL = gs.typedDependenciesCCprocessed();' –
werd
Да, это хорошо работает, так как ROOT действительно находится в этой коллекции зависимостей. Небольшая стоимость заключается в том, что вы платите за то, чтобы они были созданы во второй раз из дерева разбора. –