2016-10-06 10 views
0

Я пытаюсь построить и интерпретировать результаты дерева синтаксиса предложения, используя Spacy в Python. Я использовал код ниже для того же:Как интерпретировать результаты дерева разбора предложения, созданного с помощью Spacy в Python?

from spacy.en import English 
nlp=English() 
example = "The angry bear chased the frightened little squirrel" 
parsedEx = nlp(unicode(example)) 
for token in parsedEx: 
    print("Head:", token.head, " Left:",token.left_edge, " Right:",token.right_edge ," Relationship:",token.dep_) 

код дал ниже result.Can кто-то сказать мне, как интерпретировать? Заранее спасибо!

('Head:', bear, ' Left:', The, ' Right:', The, ' Relationship:', u'det') 
    ('Head:', bear, ' Left:', angry, ' Right:', angry, ' Relationship:', u'amod') 
    ('Head:', chased, ' Left:', The, ' Right:', bear, ' Relationship:', u'nsubj') 
    ('Head:', chased, ' Left:', The, ' Right:', squirrel, ' Relationship:', u'ROOT') 
    ('Head:', squirrel, ' Left:', the, ' Right:', the, ' Relationship:', u'det') 
    ('Head:', squirrel, ' Left:', frightened, ' Right:', frightened, ' Relationship:', u'amod') 
    ('Head:', squirrel, ' Left:', little, ' Right:', little, ' Relationship:', u'amod') 
    ('Head:', chased, ' Left:', the, ' Right:', squirrel, ' Relationship:', u'dobj') 
+0

Это зависимость проанализируйте данное предложение. Вы должны уметь рисовать что-то вроде этого (т. Е. Отношение - это метка дуг): https://upload.wikimedia.org/wikipedia/commons/6/61/Latex-dependency-parse-example-with-tikz -dependency.png – user3639557

ответ

1

Вы могли бы интерпретировать дерево зависимостей путем пречисление это края, как показано ниже:

import spacy 
nlp = spacy.load('en') 
doc = nlp(u'The world has enough for everyone\'s need, not for everyone\'s greed') 
for tok in doc: 
    print('{}({}-{}, {}-{})'.format(tok.dep_, tok.head.text, tok.head.i, tok.text, tok.i)) 

Результат выше код будет выглядеть следующим образом:

det(world-1, The-0) 
nsubj(has-2, world-1) 
ROOT(has-2, has-2) 
dobj(has-2, enough-3) 
prep(enough-3, for-4) 
poss(need-7, everyone-5) 
case(everyone-5, 's-6) 
pobj(for-4, need-7) 
punct(need-7, ,-8) 
neg(for-10, not-9) 
prep(need-7, for-10) 
poss(greed-13, everyone-11) 
case(everyone-11, 's-12) 
pobj(for-10, greed-13)