剖析與文法的應用

自然語言剖析(natural-language parsing)

為程式語言打造的同一套文法與剖析想法,也被瞄準人類句子。自然語言剖析意指拿一個英文、中文或任何人類語言的句子,還原其文法結構:哪些詞構成主詞、動詞片語在哪、子句如何巢狀。它是「畫句法圖」這道學校練習由機器來做的版本,並坐落於電腦如何分析與翻譯文字的核心。

與程式語言有兩個主導的實務差異。第一,人類文法極其歧義:「我用望遠鏡看見那個人」有兩種完全成立的結構(望遠鏡是誰的?),單一句子可有數十棵有效剖析樹。所以自然語言剖析器不能用假設結構唯一的嚴格 LL 或 LR 剖析器;它們改採像 CYK 與 Earley 這樣的通用上下文無關剖析器,回傳所有剖析,並加上機率來排序,機率式上下文無關文法為每條規則指派一個可能性,使剖析器能偏好最可能的樹。第二,真實語言雜亂且並非完全上下文無關,所以工程上使用更豐富的文法形式,且越來越多採用在大量人工剖析句子的樹庫(treebank)上訓練的統計與神經模型。

自然語言剖析之所以重要,是因為它最清楚地顯示自動機與文法理論遠及編譯器之外。同一套形式機制,推導、剖析樹、成員與結構之分、立方時間的通用剖析器,撐起機器翻譯、問答、文法檢查與資訊抽取。誠實的限制在範圍:經典上下文無關剖析捕捉句子結構的大部分,卻非意義,而人類語言延伸到純上下文無關文法之外,這也是為何現代系統把形式文法與大量統計混合,而非單靠文法。

句子「我用望遠鏡看見那個人」有兩棵有效剖析樹:一棵中「用望遠鏡」修飾「看見」(你用了望遠鏡),另一棵中它修飾「那個人」(他帶著望遠鏡)。機率式剖析器兩棵都回傳,但把較可能的那棵排在前面。

人類句子高度歧義,所以自然語言剖析用通用剖析器(CYK/Earley)加上機率。

人類語言並非純上下文無關,且剖析結構不等於理解意義。經典 CFG 剖析只是其中一味;現代自然語言系統在手寫文法之上、或取而代之,大量倚賴統計與學習出的模型。

又称
NL parsingsyntactic parsing of language自然語言剖析自然語言語法分析