См линии 88 из первого файла в my code to run the Stanford Parser programmatically
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
Collection tdl = gs.typedDependenciesCollapsed();
System.out.println("words: "+words);
System.out.println("POStags: "+tags);
System.out.println("stemmedWordsAndTags: "+stems);
System.out.println("typedDependencies: "+tdl);
Коллекция TDL список этих типизированных зависимостей. Если вы посмотрите на javadoc for TypedDependency, вы увидите, что использование метода .reln() дает вам грамматическое отношение.
Строки 311-318 третьего файла в моем коде показывают, как использовать этот список типизированных зависимостей. Я получаю имя отношения, но вы могли бы получить отношение, которое было бы класса GrammaticalRelation.
for(Iterator<TypedDependency> iter = tdl.iterator(); iter.hasNext();) {
TypedDependency var = iter.next();
TreeGraphNode dep = var.dep();
TreeGraphNode gov = var.gov();
// All useful information for a node in the tree
String reln = var.reln().getShortName();
Не расстраивайся, я провел несчастный день или два, пытаясь выяснить, как использовать анализатор. Я не знаю, улучшились ли документы, но когда я его использовал, они были ужасно ужасны.
см. Мой ответ здесь - это для анализа зависимостей (vs синтаксический), но я также даю некоторый исходный код: http://stackoverflow.com/questions/10397342/parse-out-phrasal-verbs/10401824#10401824 – nflacco
Спасибо за ответ nflacco! Я могу показаться немного глупым, но, пожалуйста, скажите мне, как я буду использовать «GrammaticalRelation.class» в пакете edu.stanford.nlp.trees? Мое требование состоит в том, чтобы найти грамматические отношения в словах во входном предложении. –