文法的用途
学习文法的一个好处是,凭借概念框架和词汇表能培养出句子正确或错误的直觉。
成分结构是词与词结合在一起组成的单元。通过词汇的可替代性可以证明词系列是怎样形成这样一个单元的——在符合语法规则句子中的词系列可以被一个更小的且不会导致句子不符合语法规则的序列替代。
句法类型
符号 | 意思 | 例子 |
---|---|---|
S | 句子 | the man walked |
NP | 名词短语 | a dog |
VP | 动词短语 | saw a park |
PP | 介词短语 | with a telescope |
Det | 限定词 | the |
N | 名词 | dog |
V | 动词 | walked |
P | 介词 | in |
上下文无关文法
grammer1 = nltk.parse_cfg("""
...
""")
rd_parser = nltk.RecursiveDescentParser(grammer1)
可能产生结构上歧义。介词短语附着歧义是比较常见的一种。
上下文无关文法分析
解析器根据文法产生式处理输入的句子,并建立一个或多个符合文法的组成结构。
文法是一个格式良好的声明规范——实际上它只是一个字符串,而不是程序。
解析器是一种文法解释程序,用于搜索符合文法的所有树的空间,并找出一棵边缘有所需句子的树。
递归下降解析器
自上而下
rd_parser = nltk.RecursiveDescentParser(grammer1)
移进-归约分析
自下而上
sr_parser = nltk.ShiftReduceParser(grammer1)
左角落解析器
自下而上与自上而下方法的混合体
符合语法规则的子串表
采用动态规划存储中间结果,并在适当的时候重用它们,能显著提高效率。——图表分析
依存关系和依存文法
定义:
- 短语结构文法是关于词和词序列如何结合形成句子成分的。
- 依存文法集中关注词与其他词之间的关系
- 依存关系是一个中心词与其从属之间的二元非对称关系
- 中心词通常是动词,所有其他词要么依赖于中心词,要么通过依赖路径与它相关联。
- 依存关系表示是加标签的有向图,其中节点是词汇项,加标签的弧表示从中心词到从属的依赖关系。
与短语结构文法相比,依存文法可以作为一种依存关系用来直接表示语法功能。
参考《Natural Lanugage Processing with Python》