1957-SyntacticStructures#
案件摘要#
1957 年,Chomsky 出版《Syntactic Structures》,這本薄薄的小書徹底改變了語言學的研究對象:語法不再是語料分類的「清單」,而是一個會「生成」句子的裝置。書中用短語結構文法加轉換規則描述英語句法,並以「Colorless green ideas sleep furiously」這句語法合法但語義荒謬的例句,證明語法獨立於語義。這本書成為認知革命的號角,也為 NLP 確立了「剖析」(parsing)這個持續六十年的目標。
前因 -- 為什麼會有這個案子#
- 美國結構主義語言學(Bloomfield 1933、Harris 1951)的方法論是分布主義:只靠語料中語音與詞的分佈做分類,避免觸碰「意義」與「心理」。
- 分布主義只能描述「看過的語料」,無法解釋說話者為何能理解從未聽過的新句子。
- Chomsky 想把語法變成「生成裝置」:一組有限的規則,生成無限的句子集合——這正好對應說話者的創造性。
- 1956 年的三模型論文已鋪好數學地基,1957 年的專書要給出英語的完整分析。
- 機器翻譯與軍方資金讓形式化語法有工程上的急迫性。
線索與推理 -- 數學式、程式、理論#
短語結構文法的生成式定義#
語法 \(G = (N, \Sigma, P, S)\) ,其中 \(N\) 是非終端符號(S、NP、VP…), \(\Sigma\) 是詞彙, \(P\) 是生成規則, \(S\) 是起始符號。書中分析英語的核心規則包括:
語法「生成」的語言是所有可從 \(S\) 推導出的句子集合:
關鍵在於:有限條規則經遞迴引用,生成無限句子——這就是 Chomsky 所謂語言的「無限使用有限手段」。
轉換規則:被動式的數學#
短語結構文法無法優雅處理主動/被動的關係(兩句要各寫一套規則)。Chomsky 引入轉換規則(transformational rules):作用於整個句法結構上的映射。被動轉換 \(T_{\text{passive}}\) :
例如:
- 主動:John admires sincerity.
- 被動:Sincerity is admired by John.
轉換是「核」(kernel)句結構到衍生句的變換,這是語法理論第一次把句法關係寫成明確的映射。
「Colorless green ideas sleep furiously」#
Chomsky 的著名偵探式例證:
Colorless green ideas sleep furiously.(無色的綠色觀念狂暴地睡著。)
這句語義荒謬,但任何母語者都判定它「語法完全合法」;而詞序重排後的「Furiously sleep ideas green colorless」語義同樣荒謬,卻變得語法不合法。
- 這證明語法合法性与語義合法性是獨立的兩個層面,且語法合法性對詞序結構敏感,不只是詞的集合。
- 這句在真實語料中頻率為零,但母語者仍能判定其合法性——分布主義無法解釋,語法理論可以。
三個論證:馬可夫不可、有限狀態不可、CFG 可#
《Syntactic Structures》第三章的偵探式排除法:
- 有限狀態馬可夫模型不可:無法表達中心嵌入(The rat the cat the dog chased killed ate the malt)的任意深度配對。
- 短語結構文法可以生成中心嵌入:遞迴規則 \(NP \to NP + S'\) 提供無限嵌套能力。
- 但 CFG 不足以描述英語全部現象(被動式、助動詞移位),需要轉換規則。 結論:英語的語法是「CFG + 轉換」的第三種模型——這就是書的破案時刻。
程式碼示範:mini CFG 生成器#
import random
# 迷你 CFG:短語結構文法,遞迴規則可生成無限句子
grammar = {
"S": [["NP", "VP"]],
"VP": [["V", "NP"], ["V", "NP", "ADV"]],
"NP": [["T", "N"], ["NP", "REL"]], # 遞迴:中心嵌入能力
"REL": [["that", "NP", "V"]],
}
lexicon = {
"T": ["the"], "N": ["ideas", "cat", "dog", "man"],
"V": ["sleep", "chase", "admire"], "ADV": ["furiously"],
}
def generate(symbol="S"):
if symbol in lexicon:
return [random.choice(lexicon[symbol])]
expansion = random.choice(grammar[symbol])
return [tok for s in expansion for tok in generate(s)]
random.seed(7)
for _ in range(3):
print(" ".join(generate()))
# 可能輸出(含中心嵌入): the ideas that the cat that the dog admire chase chase
# Colorless green ideas sleep furiously:語法合法但語義荒謬
sentence = ["Colorless", "green", "ideas", "sleep", "furiously"]
def check_syntax(words):
# 簡化檢查:Adj Adj N + V(不及物) + ADV -> 合法
return (words[1] in ["green"] and words[2] in lexicon["N"]
and words[3] in lexicon["V"] and words[4] in lexicon["ADV"])
print(f"語法合法: {check_syntax(sentence)}, 語義荒謬: True -> 兩者獨立")
shuffled = sentence[::-1] # Furiously sleep ideas green colorless
print(f"重排後語法合法: {check_syntax(shuffled) if len(shuffled)==5 else False} -> 語法敏感於詞序")
結案 -- 後果與影響#
- 認知革命的號角:語言被理解為「心理裝置」而非行為習慣,語言學重回認知科學中心。
- NLP 的「剖析」目標確立:1958 年 ALGOL 語法、1960 年代各種剖析器都以 CFG/轉換文法為理論核心。
- 機器翻譯的轉換法(1960 年代):以轉換規則為基礎的翻譯系統成為規則法 MT 的主流路線。
- 「語法 vs 語義」的分離影響六十年:語法可獨立於語義研究,塑造了 1960-80 年代的理論語言學。
- 統計 NLP 的長期論敵:Chomsky 對統計方法的不信任,成為規則法 vs 統計法之爭的源頭。
關鍵人物與文獻#
- Noam Chomsky (1957). Syntactic Structures. The Hague: Mouton.
- Noam Chomsky (1956). "Three Models for the Description of Language." IRE Transactions on Information Theory 2(3): 113–124.
- Leonard Bloomfield (1933). Language. New York: Henry Holt.(美國結構主義的方法論背景)
- Zellig Harris (1951). Methods in Structural Linguistics. University of Chicago Press.