最近在學語言處理這門課,老師一直在講文法啊什麼的,聽不懂,所以查了以下資料,進行對比。錯誤之處還請指出來,以共同學習!
1、從自然語言處理角度上來分析:
用“”“本來”造句如下:
本來這個進球就是違例的,但你不肯承認也沒辦法
我有一本來自美國的花花公子雜誌
拿我的筆記本來
如果漢語是上下文無關文法的話,那我們任何時候看見“本來”兩個字,都可以把它規約爲一個詞。可惜漢語不是上下文無關文法,所以“本來”能否歸約爲一個詞,要看它的上下文是什麼。上面的三個例子中,第一句裏的“本來”可以規約爲一個詞:
((本來)(((這個)(進球))(就)(是)(違例的))),((但)((你)(不肯)(承認)(也)(沒辦法)))
但後面兩句都不行。後面的兩句大約應該這樣規約:
(我)(有)(((一本)(來自)(美國)(的))(花花公子雜誌))
(拿)((我的)(筆記本))(來)
2、從編譯原理的角度上分析
上下文無關文法就是說這個文法中所有的產生式左邊只有一個非終結符,比如:
S -> aSb
S -> ab
這個文法有兩個產生式,每個產生式左邊只有一個非終結符S,這就是上下文無關文法,因爲你只要找到符合產生式右邊的串,就可以把它歸約爲對應的非終結符。
比如:
aSb -> aaSbb
S -> ab
這就是上下文相關文法,因爲它的第一個產生式左邊有不止一個符號,所以你在匹配這個產生式中的S的時候必需確保這個S有正確的“上下文”,也就是左邊的a和右邊的b,所以叫上下文相關文法。