week4课程内容
一、Syntax (句法) and Grammar (语法)
syntax句法:The way words are arranged together.
1.Context-Free Grammars上下文无关语法(CFG)
组成包括:
(1)A set of rules (规则) or productions (产生式)
(2)A lexicon (词表) of words and symbols:Non-terminal (非终极符号,即短语,可再分单位) / terminal (终极符号,即单词或标点符号,不可再分) symbols
2.CFG example:
• S(句子) -> NP(名词短语) VP(动词短语)
• NP -> Det(限定词) NOMINAL(名词性的)
• NOMINAL -> Noun(名词)
• VP -> Verb
• Det -> a
• Noun -> flight
• Verb -> left
这套CFG既可以用于分析语句,也可以用于生成语句。
CFG 中的grammer 的来源有两种:专家工作(人工手写)、从树库中生成。
3.Derivation (推导)
对一句话,找到其在语法规则下最匹配的一个规则序列(a sequence of rules)—— Covers all the elements in the string and Covers only the elements in the string.
二、Parsing (剖析)
Parsing:给定语法规则,输入字符串,返回一个剖析树。
1.Context-Free
不考虑Non-terminal在句中与其他部分的关系,无脑按照规则进行替换。
A->B C 无脑换
2.概念:Sentences, Clauses, Phrases
Sentences (句子):一整句话。
Clauses (子句) :有动词的半句话,例如:“When I reached home”
Phrases (短语) :不需要主语和动词,例如:“After dinner”
3.概念:Sentence-Types
Declaratives 陈述式: A plane left. S -> NP VP
Imperatives 命令式: Leave! S -> VP
Yes-No Questions: Did the plane leave? S -> Aux NP VP
WH Questions: When did the plane leave? S -> WH Aux NP VP
4.Recursion递归
左边的Non-terminal也出现在右边,例如:Nominal -> Nominal PP,例句:[[flight] [to Boston]]
5.CFG语法存在问题:
(1)Agreement一致问题:
例如,根据:NP->DET + NORMINAL,“this dog” 与 “this dogs” 都是合乎语法的,但显然后者是不对的。
可能的解决办法是:细化单词分类,例如将名词细化为单数名词与复数名词。但这样不好。
(2)Subcategorization(次范畴化):
我们知道,英语中动词有及物动词,不及物动词之分,不同动词后面跟的东西不一样。然而,按照CFG,可能会出现 “John sneezed the book.” 这类无厘头的句子。这种问题叫做 overgenerate(过量生成)。
(3)Movement 移位:
例如:
Which flight do you want me to have the travel agent book?
这句话里的 book 的宾语 flight 距离 book 很远,且两者之间还存在两个其他动词。
从而引出:依存语法(Dependency Grammars)
例子:
6.Top-Down parsing自上而下的剖析
满足剖析树从 S 开始
7.Bottom-Up parsing自下而上的剖析
满足剖析树涵盖了句子里所有单词
8.Top-Down and Bottom-Up 优缺点
9.Dynamic Programming Parsing-- CKY(重点)
首先将 CFG 改写成 CNF (Chomsky范式):
算法伪代码:
第一个 for 循环,代表从左往右,将第 j 个单词的词性填到 [j-1,j]的单元格里;
第二个 for 循环,代表从下往上填充每个单元格;第三个for循环,遍历该单元格所有可能的截断种类,并按照语法规则填充。
算法图解:由左到右,自下而上
例如这里,从左边第一列开始,[0,1]单元格代表第一个单词 Book,它在语法中的词性都写在其中;然后到左边第二列,从下面开始,[1,2]单元格代表一个单词 the,同样写上词性;[0,2]代表 Book the,查询语法发现没有任何符合的,于是啥也不填;再到左边第三列,以此类推…
三、Partial Parsing
Partial Parsing(部分句法分析),也叫语块分析(chunk parsing),与 Full Syntactic Parsing(完全句法分析) 不同,完全句法分析要求通过一系列分析过程,最终得到句子的完整的句法树。 而部分句法分析则不要求得到完全的句法分析树,它只要求识别其中的某些结构相对简单的成分,如非递归的名词短语、动词短语等。这些识别出来的结构通常被称作语块(chunk),语块和短语这两个概念通常可以换用。
(1)Rule-Based partial parsing:基于规则的部分句法分析
注意:规则中不能出现递归。
(2)ML-Based chunking:基于机器学习的语块分析
将这项任务看作序列分类问题(sequential classification)
BIO标注法