我正在尝试使用Python中的Spacy来构建和解释句子的分析树的结果。
我已经使用以下代码相同:

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_)


代码给出了以下结果。有人可以告诉我如何解释它吗?提前致谢!

 ('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')

最佳答案

您可以通过列出其边缘来解释依赖关系树,如下所示:

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)

关于python - 如何解释在Python中使用Spacy构建的句子解析树的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39895902/

10-09 18:05
查看更多