2015-12-08 2 views
1

Дайте следующее предложение:Почему зависимости отличаются от онлайн-демо?

Моя собака также любит есть колбасу.

online demo производит следующие соотношения:

nmod:poss(dog-2, My-1) 
nsubj(likes-4, dog-2) 
advmod(likes-4, also-3) 
root(ROOT-0, likes-4) 
xcomp(likes-4, eating-5) 
dobj(eating-5, sausage-6) 

Однако, мой код, который также использует универсальные зависимости (UD), производит что-то другое:

nmod:poss(dog-2, My-1) 
nsubj(likes-4, dog-2) 
advmod(likes-4, also-3) 
root(ROOT-0, likes-4) 
amod(sausage-6, eating-5) 
dobj(likes-4, sausage-6) 
punct(likes-4, .-7) 

Вот мой код:

String sentence = "My dog also likes eating sausage."; 
MaxentTagger tagger = new MaxentTagger("edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger"); 
DependencyParser parser = DependencyParser.loadFromModelFile("edu/stanford/nlp/models/parser/nndep/english_UD.gz"); 

DocumentPreprocessor preprocessor = new DocumentPreprocessor(new StringReader(sentence)); 
for (List<HasWord> s: preprocessor) { 
    List<TaggedWord> taggedWords = tagger.tagSentence(s); 
    GrammaticalStructure gs = parser.predict(taggedWords); 
    for (TypedDependency d: gs.typedDependencies()) { 
     System.out.println(d); 
    } 
} 

Использование typedDependenciesCCprocessed, typedDependenciesCollapsed и typedDependenciesCollapsedTree даст тот же результат.

Как получить те же самые отношения, что и демо?

ответ

1

В онлайн-демонстрации используется анализатор избирательности и преобразование его в зависимости. Код, который вы связываете, использует парсер анализа зависимости нейронной сети. Ожидается, что они будут несколько отличаться. Чтобы получить выходные данные демо, вы должны запустить Stanford Parser: http://nlp.stanford.edu/software/lex-parser.shtml. Из CoreNLP это означает, что он работает с аннотаторами tokenize,ssplit,parse.

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