赞
踩
句法是指句子的各个组成部分的相互关系,句法分析分为句法结构分析(syntactic structure parsing)和依存关系分析(dependency parsing)。句法结构分析用于获取整个句子的句法结构,依存分析用于获取词汇之间的依存关系,目前的句法分析已经从句法结构分析转向依存句法分析。
依存语法通过分析语言单位内成分之间的依存关系揭示其句法结构,主张句子中核心动词是支配其它成分的中心成分,而它本身却不受其它任何成分的支配,所有受支配成分都以某种依存关系从属于支配者。
在20世纪70年代,Robinson提出依存语法中关于依存关系的四条公理:
一个句子中只有一个成分是独立的;
其它成分直接依存于某一成分;
任何一个成分都不能依存与两个或两个以上的成分;
如果A成分直接依存于B成分,而C成分在句中位于A和B之间,那么C或者直接依存于B,或者直接依存于A和B之间的某一成分;
一,依存关系
依存关系是一个中心词与其从属之间的二元非对称关系,一个句子的中心词通常是动词(Verb),所有其他词要么依赖于中心词,要么通过依赖路径与它关联。
1,依存关系
依存结构是加标签的有向图,箭头从中心词指向从属,具体来说,箭头是从head指向child,从该解析树可以看出,每个Token只有一个Head。
2,关系标签
标签表示从属的语法功能,名词性的标签是:
root:中心词,通常是动词
nsubj:名词性主语(nominal subject)
dobj:直接宾语(direct object)
prep:介词
pobj:介词宾语
cc:连词
其他常用的标签:
compound:复合词
advmod:状语
det:限定词
amod:形容词修饰语
二,解析依存关系
SpaCy能够快速准确地解析句子的依存关系,并且具有丰富的API用于导航依存关系树,SpaCy使用head和child来描述依存关系中的连接,识别每个Token的依存关系:
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 indoc:
print('{0}({1})
打印每个Token的依存关系和head节点,箭头表示从属关系,得到的结果是:
spaCy(NNP)
uses(VBZ)
the(DT)
terms(NNS)
head(NN)
and(CC)
child(NN)
to(TO)
describe(VB)
the(DT)
words(NNS)
也可以使用display来显示依存关系,在浏览器中输入 http://localhost:5000 显示依存结构:
importspacyfrom spacy importdisplacy
nlp= spacy.load('en')
doc= nlp( "spaCy uses the terms head and child to describe the words")
displacy.serve(doc, style='dep')
参考文档:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。