一、正則文法(3型)
定義:如果文法 G=(N, Σ, P, S) 的 P 中的規則滿足如下形式:A → B x(這裏注意B只是一個形式,代表非終結符),或 A → x,其中 A, B ∈ N,x ∈ Σ, 則稱該文法爲正則文法(簡寫爲 FSG)或稱3型文 法。(左線性正則文法)(如果 A → x B,則該文法 稱爲右線性正則文法。)
例如有如下規則:A→ A x,A → x。那麼可以推出AAxx,AAxxx,......Ax.....xxx。可以看出,最右邊的x是確定的,左邊一直在變化。這種文法叫做左線性正則文法。
例如有如下規則:A→ xA ,A → x。那麼可以推出AxxA,AxxxA,......Ax.....xxx。可以看出,最左邊的x是確定的,右邊一直在變化。這種文法叫做右線性正則文法。
二、上下文無關文法(2型)
如果 P 中的規則滿足如下形式:A → α,其中 A ∈ N,α ∈ (N ∪ Σ)*,則稱該文法爲上下文無關文 法(CFG)或稱 2 型文法。值得注意的是α是終止符和非終止符的組合
例如有如下規則:A → xBy,B → ccAxB就屬於上下文無關文法。特點是左邊只有一個非終結符,右邊是終結符和非終結符的組合。
三、上下文有關文法(1型)
如果 P 中的規則滿足如下形式: α A β→α γ β, 其中 A ∈ N,α, β, γ ∈ (N ∪ Σ)*,且 γ 至少包含一個字 符,則稱該文法爲上下文有關文法(CSG)或稱 1 型 文法。
這個文法相比上下文無關文法不同的是推導規則的左邊發生了變化,變成了終結符和非終結符的組合。右邊與上下文無關文法相同。
四、無約束文法(0型)
如果 P 中的規則滿足如下形式: α→β, α, β 是字符串,則稱 G 爲無約束文法,或稱 0 型文法。
無約束文法比上下文有關文法的約束更加鬆散。這要α, β 是字符串就行。
總結
上述四種文法,由上到下約束越來越少,也可以清晰的看得出,約束多的文法是約束少的文法的特例。因此有
KG(正則文法) CFG(上下文無關文法) CSG(上下文有關文法) PSG(無約束文法)
介紹四種文法的目的是引入自動機理論,判斷一個句子是否符合文法需要驗證,自動機理論就可以作爲驗證的快捷方法。每一個文法又可以對應相應的自動機。下一篇介紹自動機理論。
參考資料有:宗成慶的《統計自然語言處理》