2012-05-02 1 views
0

Я абсолютно не знаком с разработкой Java.Как получить «грамматическое отношение» с использованием анализатора NLP Стэнфорда?

Может кто-нибудь прокомментировать, как получить «грамматические отношения» с использованием естественного языка программирования Стэнфорда? Лексический парсер - открытый код Java с открытым кодом?

Спасибо!

+1

см. Мой ответ здесь - это для анализа зависимостей (vs синтаксический), но я также даю некоторый исходный код: http://stackoverflow.com/questions/10397342/parse-out-phrasal-verbs/10401824#10401824 – nflacco

+0

Спасибо за ответ nflacco! Я могу показаться немного глупым, но, пожалуйста, скажите мне, как я буду использовать «GrammaticalRelation.class» в пакете edu.stanford.nlp.trees? Мое требование состоит в том, чтобы найти грамматические отношения в словах во входном предложении. –

ответ

6

См линии 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(); 

Не расстраивайся, я провел несчастный день или два, пытаясь выяснить, как использовать анализатор. Я не знаю, улучшились ли документы, но когда я его использовал, они были ужасно ужасны.

+0

еще раз спасибо! –

Смежные вопросы