2.1 將一門語(yǔ)言看作一個(gè)無(wú)限大的集合
language是sentences的集合,sentence是tokens組成的序列。
sentences的語(yǔ)義由sentences的結(jié)構(gòu)和token決定。
語(yǔ)法:
靜態(tài)的規(guī)則可能描述不了某些語(yǔ)言,故將其作為語(yǔ)法可能會(huì)無(wú)能為力。
一系列確定的有限的description也不能完備描述所有語(yǔ)言。
證明:(對(duì)角線證明)
可以有序地枚舉所有description(無(wú)窮多)??梢杂行虻孛杜e由一個(gè)字母表產(chǎn)生的所有word(無(wú)窮多),令該枚舉列表為EnumList。則任何語(yǔ)言,其所用的所有word都在EnumList里面。對(duì)于某個(gè)在EnumList中的word,一個(gè)language可以有,也可以沒(méi)有。因此在不考慮語(yǔ)言的structure,僅考慮language所用的word,對(duì)于所有語(yǔ)言,都可以用一個(gè)無(wú)窮長(zhǎng)的二進(jìn)制向量表示,該向量的某一位的值表示,對(duì)于該位對(duì)應(yīng)EnumList中的單詞,該語(yǔ)言是否包含。
構(gòu)造這樣的表,它僅有兩列,第一列是所有的description,第二列是每個(gè)description對(duì)應(yīng)的language(有些description對(duì)應(yīng)多個(gè)language,這樣,僅僅選擇一個(gè)language作為其對(duì)應(yīng)項(xiàng))。列表形如下:
Description ? ? ? ? ? Language
Description #1 ? ? ?000000100· · ·
Description #2 ? ? ?110010001· · ·
Description #3 ? ? ?011011010· · ·
Description #4 ? ? ? 110011010· · ·
Description #5 ? ? ? 100000011· · ·
Description #6 ? ? ? ?111011011· · ·
. . . ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? . . .
構(gòu)造這樣的language,它具有這樣的特性:該language對(duì)應(yīng)二進(jìn)制向量的第n位的值與第n個(gè)description對(duì)應(yīng)的language的二進(jìn)制向量的第n位的值相反。這樣,該language的二進(jìn)制值就是language列組成的表中的對(duì)角線值再對(duì)每位取反。
這樣的話該language必不在language列組成的表中,因?yàn)樗豢赡苁堑谝恍?,因?yàn)樗谝晃桓谝恍胁灰粯?,更一般地,它不可能是第i行,因?yàn)樗趇位與第i行不一樣。所以它不可能存在于這個(gè)表中任何一行。因此,這個(gè)language不可能有與之對(duì)應(yīng)的description(這個(gè)description由有限由有限條規(guī)則組成)。
這里有個(gè)問(wèn)題,為什么所構(gòu)造的那個(gè)language用到的描述“該language對(duì)應(yīng)二進(jìn)制向量的第n位的值與第n個(gè)description對(duì)應(yīng)的language的二進(jìn)制向量的第n位的值相反”不在Description列里面??!
我沒(méi)有深究,似乎是由悖論引起的,豆瓣上的評(píng)論有提到,另外可以看看羅素悖論。
2.2 形式語(yǔ)法
若如下看待語(yǔ)言:由object組成。先有基本的object,然后有一套規(guī)則來(lái)在基本的object上構(gòu)造新的object。
則語(yǔ)言有一個(gè)四元組組成:(非終止object集合,終止object集合,規(guī)則,開始o(jì)bject)
非終止object集合 和 終止object集合 都是有限的symbol集合,且兩集合無(wú)交集。
規(guī)則是形如 X -> Y 的轉(zhuǎn)換規(guī)則,X和Y都必須是一串symbol,X不可為空串,Y可以(書中集合右上角星號(hào)是克萊尼星號(hào))
開始o(jì)bject必須是一個(gè)非終止object。
利用上述方法生成一個(gè)sentence的過(guò)程可以用一個(gè)無(wú)環(huán)有向圖表示。
第十六頁(yè)的:Amazingly, we have succeeded in implementing the notion “must replace” in a system that only uses “may replace”; looking more closely, we see that we have split “must replace” into “may replace” and “must not be a non-terminal”
還沒(méi)找到比phrase structure grammar更sufficient的語(yǔ)法描述方法。
2.3 The Chomsky Hierarchy of Grammars and Languages
type 0 grammar 是無(wú)任何限制的phrase structure grammars
type 1 grammar(上下文有關(guān)文法):兩種定義
(1)不存在這樣的規(guī)則,左邊的symbol數(shù)量比右邊的symbol數(shù)量多
(2)所有的規(guī)則都是上下文有關(guān),規(guī)則上下文有關(guān)就是sentence中只有一個(gè)非終結(jié)詞經(jīng)過(guò)規(guī)則變換后得到替代,且替代結(jié)果至少有一個(gè)symbol。
它的某個(gè)sentence的生成圖是有向無(wú)環(huán)圖
type 2 grammar(上下文無(wú)關(guān)文法):規(guī)則左邊只有一個(gè)symbol。
它的某個(gè)sentence的生成圖是樹。
二型文法中,某個(gè)symbol可以獨(dú)立作為一門language,因?yàn)槠渌黶ymbol對(duì)它的映射結(jié)果不影響。
type 3 grammar:左線性,右線性
type 4 grammar:規(guī)則右邊只能是終止的symbol
2.4 使用上述grammar生成sentences的算法
一個(gè)廣度優(yōu)先搜索算法
該算法可以用來(lái)證明某個(gè)grammar可以生成至少一個(gè)sentence,但不能證明不能。
并闡述了一個(gè)檢查2型文法是否生成至少一個(gè)sentence的算法
2.5 只有0型文法會(huì)生成空串
如果一個(gè)文法能生成空串,那么parsing會(huì)變得復(fù)雜
2.9 去除文法中無(wú)用的規(guī)則
type 2 grammar相較于0型和1型,容易找出文法中無(wú)用的規(guī)則。
type 2 grammar無(wú)用的規(guī)則包括如下問(wèn)題:
(1)包含未定義的非終結(jié)符號(hào) undefined non-terminals
(2)從開始symbol,不可能產(chǎn)生符合規(guī)則左邊的符號(hào)序列 unreachable non-terminals
(3)不能產(chǎn)生任何東西(無(wú)限遞歸)non-productive
一個(gè)閉包算法首先清除non-productive 和 undefined non-terminals的規(guī)則
另一個(gè)閉包算法清除unreachable non-terminals的規(guī)則
第二個(gè)閉包算法在清規(guī)則的時(shí)候不會(huì)讓一個(gè)non-terminal(設(shè)為N)編程undefined,因?yàn)镹是reachable的,因此它的所有定義(左邊是N的規(guī)則)都不會(huì)在這個(gè)閉包算法中被清掉。同樣的道理,第二個(gè)閉包算法也不會(huì)讓N編程non-productive
如果兩個(gè)閉包算法倒過(guò)來(lái)用,很可能會(huì)在第二次的時(shí)候生成unreachable non-terminals
2.11 語(yǔ)義與文法
某個(gè)sentence的語(yǔ)義與這個(gè)sentence的生成結(jié)構(gòu)圖(production tree)有關(guān)。
(1)attribute grammar(將語(yǔ)義作為attribute綁定到symbol上)
(2)transduction grammar(語(yǔ)義是sentence作為input string得到的output string的語(yǔ)義)
(3)Augmented Transition Networks(將actions綁定到生成結(jié)構(gòu)圖的結(jié)點(diǎn)上,語(yǔ)義就是遍歷結(jié)點(diǎn)時(shí)觸發(fā)的action)
2.12 各級(jí)文法的比較
More powerful grammars can define more complicated boundaries between correct and incorrect sentences. Some boundaries are so fine that they cannot be described by any grammar (that is, by any generative process).