spaCy 第三篇:依存分析

句法是指句子的各个组成部分的相互关系,句法分析分为句法结构分析(syntactic structure parsing)和依存关系分析(dependency parsing)。句法结构分析用于获取整个句子的句法结构,依存分析用于获取词汇之间的依存关系,目前的句法分析已经从句法结构分析转向依存句法分析。浏览器

依存语法经过分析语言单位内成分之间的依存关系揭示其句法结构,主张句子中核心动词是支配其它成分的中心成分,而它自己却不受其它任何成分的支配,全部受支配成分都以某种依存关系从属于支配者。ide

在20世纪70年代,Robinson提出依存语法中关于依存关系的四条公理:ui

  1. 一个句子中只有一个成分是独立的;
  2. 其它成分直接依存于某一成分;
  3. 任何一个成分都不能依存与两个或两个以上的成分;
  4. 若是A成分直接依存于B成分,而C成分在句中位于A和B之间,那么C或者直接依存于B,或者直接依存于A和B之间的某一成分;

一,依存关系

依存关系是一个中心词与其从属之间的二元非对称关系,一个句子的中心词一般是动词(Verb),全部其余词要么依赖于中心词,要么经过依赖路径与它关联。url

1,依存关系spa

依存结构是加标签的有向图,箭头从中心词指向从属,具体来讲,箭头是从head指向child,从该解析树能够看出,每一个Token只有一个Head。.net

2,关系标签3d

标签表示从属的语法功能,名词性的标签是:code

  • root:中心词,一般是动词
  • nsubj:名词性主语(nominal subject)
  • dobj:直接宾语(direct object)
  • prep:介词
  • pobj:介词宾语
  • cc:连词

其余经常使用的标签:orm

  • compound:复合词
  • advmod:状语
  • det:限定词
  • amod:形容词修饰语

二,解析依存关系

SpaCy可以快速准确地解析句子的依存关系,而且具备丰富的API用于导航依存关系树,SpaCy使用head和child来描述依存关系中的链接,识别每一个Token的依存关系:blog

  • token.text:token的文本
  • token.head:当前Token的Parent Token,从语法关系上来看,每个Token都只有一个Head。
  • token.dep_:依存关系
  • token.children:语法上的直接子节点
  • token.ancestors:语法上的父节点
  • _pos:词性
  • _tag:词性

让我使用SpaCy来对句子进行依存分析:

import spacy nlp = spacy.load('en') doc = nlp( "spaCy uses the terms head and child to describe the words" ) for token in doc: print('{0}({1}) <-- {2} -- {3}({4})'.format(token.text, token.tag_, token.dep_, token.head.text, token.head.tag_))

打印每一个Token的依存关系和head节点,箭头表示从属关系,获得的结果是:

spaCy(NNP) <-- nsubj -- uses(VBZ) uses(VBZ) <-- ROOT -- uses(VBZ) the(DT) <-- det -- head(NN) terms(NNS) <-- compound -- head(NN) head(NN) <-- dobj -- uses(VBZ) and(CC) <-- cc -- head(NN) child(NN) <-- conj -- head(NN) to(TO) <-- aux -- describe(VB) describe(VB) <-- xcomp -- uses(VBZ) the(DT) <-- det -- words(NNS) words(NNS) <-- dobj -- describe(VB)

也可使用display来显示依存关系,在浏览器中输入 http://localhost:5000 显示依存结构:

import spacy from spacy import displacy nlp = spacy.load('en') doc = nlp( "spaCy uses the terms head and child to describe the words" ) displacy.serve(doc, style='dep')

 

 

 

 

 

参考文档:

Complete Guide to spaCy

SpaCy Dependency Parse

相关文章
相关标签/搜索