陳鍾誠

Version 1.0

語意理解

何謂語意?

在語言處理的領域,最難定義的大概就是語意了。我們可以清楚的理解何謂詞彙、何謂語法,但是卻很難清楚的「定義」某個文章的語意。 在第一章當中,我們曾經用「程式將語言轉換成一連串的動作,而這些動作符合使用者的請求」來定義一個程式是否理解了使用者的語句。但是到底使用者的請求是甚麼呢?在這一章中,我們同樣會將語言分成「程式語言、自然語言、標記語言」等三類,來說明這些語言的語意,然後再開始探討如何辨識語意的方法。

讓我們從語法最固定的「程式語言」開始,看看語意到底是甚麼?

程式的語意

對於程式語言而言,其語意是非常清楚的,但是我們卻通常不知道這些東西稱為語意。

當我們將一段程式編譯成二進位的機器碼,然後將機器碼交給電腦執行,這些機器碼就代表了程式的語意。當然、機器碼很難理解,事實上這些機器碼對應到的也就是電腦的組合語言,因此我們說某個C 語言程式的語意,其實就是將該程式編譯後輸出的組合語言。

那麼、組合語言的語意到底是甚麼呢?事實上、組合語言只是一堆指揮 CPU 如何動作的指令罷了,因此、組合語言的語意其實就是 CPU 的動作。

自然語言的語意

剖析法是語言理論的重頭戲。但是,即使我們利用與法理論完成了剖析,仍然不足以建構有價值的應用,許多有價值的應用,像是機器翻譯系統、問答系統、交談式系統、智慧型檢索等應用,都需要進一步抓住語句的意義,才能有應用的價值。

這時,我們需要某種語義理論,才能讓程式從語法形式的表像中,得知語句所表達的意義。但是,甚麼是語句的意義呢?電腦又如何能理解語句的意義呢?這個問題是自然語言當中最重要,但卻也最神祕難解的議題。在語言學與人工智慧上,都仍然是個謎。