句法分析(syntactic parsing)
/ sin-TAK-tik PAR-sing /
句法分析就是要弄清一句話的語法骨架——哪些詞組成短語,這些短語又如何彼此掛接。它是機器版的「句子成分圖解」。給定「The old man the boats」,分析器得發現那個出人意料的結構:「the old」指的是人(老人們),而「man」是動詞(去操控、配備人手)。其輸出通常是一棵樹,標明主語、謂語動詞、賓語,以及每個修飾成分究竟附著在它所描述的什麼之上。
主要有兩種風味。成分句法分析把詞層層嵌套地組成短語(句子裡套著名詞短語,名詞短語裡套著形容詞),像俄羅斯套娃。依存句法分析則換一種畫法,從每個詞向它所依賴的詞畫箭頭——動詞居於中心,主語和賓語掛在其上。無論哪種,目標都是把一句話隱藏的架構顯式地揭示出來,因為同樣的詞、同樣的順序,可以編碼出迥然不同的結構。
為什麼要在意?因為結構改變意義。「I saw the man with the telescope」既可以是你用望遠鏡看,也可以是那個人拿著望遠鏡——你取哪種解讀,全看某個短語附著在哪裡。句法分析為翻譯、問答和語法檢查供料,歷史上它更是整個領域的試金石。誠實地說:今天的大語言模型常常隱式地處理這些結構問題,根本不產出一棵顯式的樹——所以如今顯式的句法分析是諸多有用工具之一,而非昔日那個必經的第一步。
「I saw the man with the telescope.」有兩種合法的分析:(1)[with the telescope] 附著在「saw」上 → 你用望遠鏡看;(2)它附著在「the man」上 → 他拿著望遠鏡。同樣的詞,兩棵樹,兩種意思。
附著歧義:你選定的結構,決定了意思。
光憑詞序定不下意思——結構才行,而一句話可以有好幾種合法的分析。現代大語言模型常常隱式地處理句法,所以顯式的句法樹如今是可選項,而非必經的第一步。