NLP(句法结构解析树)
句法解析是 NLP 中的一种关键技术,可以帮助分析句子的成分结构,以及单词之间的依存关系。句法分析树主要分两大类:constituent tree 短语结构树,dependency tree 依存结构树。本文主要简单介绍一下短语结构树和依存结构树的概念。
1.短语结构树
NLP 句法结构解析主要分为两类:constituent tree 短语结构树和 dependency tree 依存结构树。
短语结构树不断地将句子的成分 (包括短语和句子) 按照规则组成新的短语,从而得到句子的结构。例如 "我的猫喜欢吃猫粮",首先可以得到短语 [我的猫] 和 [吃猫粮],然后又可以得到短语 [喜欢[吃猫粮]]。形成的短语结构树如下:
可以看到短语结构树的每一个叶子节点都是原始句子中的单词,而每个非叶子节点都是用于标记短语结构的。其中 NP 表示名词短语,单词 "我的" 和 "猫" 组成了名词短语 "我的猫";VP 表示动词短语,"吃猫粮" 就是一个动词短语。
可以通过 Stanford Parser 解析句子得到短语结构树,一般解析出来的表示如下。
(ROOT
(S
(NP (PRP$ 我的) (NN 猫))
(VP (VBZ 喜欢)
(S
(VP (VBG 吃)
(NP (NN 猫粮)))))
(. .)))
2.依存结构树
依存结构树和短语结构树不同,依存树主要用于表达句子中单词之间的相互依存关系。通常可以表示成 (单词1,关系,单词2) 三元组,单词2依赖于单词1,例如主谓宾结构等。还是刚刚的句子 "我的猫喜欢吃猫粮",对应的依存结构树如下:
依存图中子节点依存于父节点,例如 "我的" 依存于 "猫",nmod,dobj,nsubj 等表示单词之间的依存关系。
通过 Stanford Parser 解析句子得到依存结构树通常像下面的形式。
nmod(猫-2, 我的-1)
nsubj(喜欢-3, 猫-2)
root(ROOT-0, 喜欢-3)
xcomp(喜欢-3, 吃-4)
dobj(吃-4, 猫粮-5)
上面括号中的第二个词依赖于第一个词,他们的依赖关系写在括号之前,单词之后的数字表示单词在句子中的位置。