#發行日期:1990、4

#期號:0244

#專欄:計算語言學專輯

#標題:計算語言學──人工智慧•語言學•認知科學的結合

#作者:黃居仁

電腦與語言
語言與語言學

句法與語意

自然語言與程式語言

自然語言的賣點

語言學與認知科學

認知科學與人工智慧

計算語言學──理論與應用
現況與展望

:自然語言中一句多義的例子(英文)。(取自Witkam,《Distributed Language Translation》一書,1983年出版)They saw the girl with the binoculars.

 

 

 

計算語言學──

人工智慧•語言學•認知科學的結合


電腦與語言

十幾年前,電腦這個高科技產品初入台灣的大學校園。報名台大電腦班的學員要徹夜排隊。在校內修課的同學得自己花錢買打製程式的卡紙,再排隊等打卡機,然後得抱整匣打好的程式,到電腦中心送件。接著是這匣卡片去排隊等著讀卡上機。一般的程式第二天可去領報表紙看成果。對於我們這些只能打卡、送卡片到窗口的人,在電腦中心內實際操作機器的人員,代表了尖端科技。他們幫忙把一大疊誰也看不懂到底是怎麼回事的有洞卡紙,轉換成有意義的數學運算。當然,自己能寫程式,打卡片,也儼然是少數使用高科技的菁英之一。不幸的是,第二天去拿報表紙時,很可能拿到的是說程式有誤的error message,回來之後把幾十張(或幾百幾千張)卡片一張張檢查,原來是有張卡片打錯了一個字(或排錯了)。於是又從頭來一遍,更正,再送入電腦中心的窗口。如此兩三遍之後,心
裡到底先咒罵電腦笨還是自己笨,就很難說了。對於初識電腦的科技邊緣人,寫一個按字母順序排名字的程式,要如此在打卡機室、電腦中心窗口折騰數個來回,倒不如用土法自己排直接了當些。這時候最迫切的問題不是程式語言笨拙,而是電腦如何能更普及;如何讓更多人可以直接用終端機在線上作業,隨時可更正小錯誤,即時得到運算結果,又不會因太多人同時使用而超過電腦的容量。

時到今日,使用電腦的環境「友善」多了。姑且不算家家都可以有一台的個人電腦。電腦打卡機與卡紙已完全廢除了。使用者,不管是在電腦中心的終端機前,或在自己家中經由電話連線的機器前,都是直接鍵入指令給電腦主機。有任何錯誤都可以在線上修改。使用電腦已經不是極少數技術人員的專利。儘管較複雜的工作仍要由程式設計員(或軟體工程師)來設計執行:但藉著既有介面,大多
數人稍加訓練後,即可用電腦進行特定的工作,如記帳、文書處理等。簡單說來,電腦可以執行任何事先精確定義好的工作。相對而言,要啟動電腦完成這些工作,使用人也必須下一些事先規範好的指令。舉例說,在MS-DOS磁碟操作系統下,使用者可以下「DEL(ete)」這個指令來刪除檔案。可是萬一你不記得這個指令,鍵入意義相近的ELIMINATE,或KILL可是一點用處都沒有。換句話說,電腦受的可是軍事訓練,一個口令、一個動作。口令錯了,
別想通過。因此,電腦是個效率高、不會抱怨的好幫手。可是要它幫忙,你得先知道如何和它溝通,學會它用的「語言」。當然,這裡談到的可是「程式語言」〔programming language,或稱人造語言(artificial language)〕,而不是人們日常使用的自然語言(像漢語、英語、冰島語、班圖語)。

用過一陣子電腦的人也許對上述的狀況有了幾次經驗,或多或少認為使用電腦就如在用僵化的機器語言。問題是,假設我們把上面的磁碟機操作系統換成負責管理文件檔案的祕書,有任何人能接受這樣的幫手嗎?

主管:請你幫我把這個檔案處理掉。

祕書:(毫無動作)對不起,我不懂「處理掉」。

主管:麻煩你「殺」了這個檔案。

祕書:(仍無動作)對不起,不懂「殺」。

主管:把這個檔案「消掉」。

祕書:(尚無動作)對不起,不懂「消掉」。

主管﹕「刪除」這個檔案﹗

祕書:是(開始處理檔案)。

上述情況幾乎不可能在實際生活中發生。因為只要是懂中文的人都知道那個主管的要求是什麼,不會堅持非聽到「刪除」這個詞,不去執行相對的動作。既然我們不會容忍一個這麼麻煩的人來幫忙處理檔案,為什麼要忍受這麼挑剔的電腦系統來管理自己的檔案呢?

其實,回顧這十數年來資訊工業與科學的急速發展,對一般人所產生的最大衝擊,是在短時間內,電腦由少數科學家所獨占、獨用的複雜機器,變成了絕大多數人都可以操作擁有的資訊產品。也就是說,電腦已經真正是人人買得起,買得到了。可是,並不是人人都會用電腦,也不是所有的資訊都可以用電腦處理。我們知道舉世矚目的日本新世代電腦科技研究所(Institute for New Generation
Computer Technology,簡稱ICOT),致力於研究第五代電腦的目的乃在:藉人人都可以使用的智慧型電腦,促成另一波的資訊革命。該研究所所長K.Fuchi提到四個研究重點中,有兩個是和人類使用的語言有關的,一是自然語言處理(natural language processing, NLP)的研究;二是知識表達與推理(knowledge representation and inference)的研究。這兩項研究的重要性在以下的前提上:那就是說,下一代智慧型電腦成敗關鍵之一,在於這個電腦能否有效處理人類使用的自然語言。

我們每天使用,幾乎是「生而知之」的日常語言,為什麼會是資訊科技發展的瓶頸呢?這裡頭牽涉到很多人們日常運用,卻從未觀察到的語言知識。

語言與語言學

語言學就是以科學方法研究人類的語言。語言學不但為電腦處理自然語言提供了理論基礎,其實語言學的數學模式基礎與資訊科學的理論基礎,根本就是相通的。

讀者應該注意到本文中提到人類使用的語言時,都用「自然語言」這個蠻累贅的名詞,以別於電腦所用的福傳(FORTRAN)、C等程式語言。語言這名詞所指的是個用以溝通表達的系統。在此一用法時,每個語言裡都有詞彙(lexicon);詞彙裡列舉了語言裡的單位;如自然語言中的詞,或程式語言中的字符(character)與變數(variable)等。簡單說來,詞彙規定了這個語言裡的詞有那些。比如說,漢語的詞彙規定「幽默」是個詞,而「默幽」不是一個詞。除了詞彙外,語言學理論模式裡還有句法(syntax)、語意(semantics)、語用(pragmatics)、語音(phonology及phonetics)等部分,本文主要談的是「句法」與「語意」。

句法與語意

句法規定句子中各個成分的排列方式;而語意則規定這些成分如何組合成意義。我們舉個最簡單的例子來說明句法。假設我們的「語言」所要表達的內容是簡單的四則運算,大家腦子裡最快想到的當然是小學的算術課本:

(1+2+3+6+10)=    (1) 

讀者可以毫不遲疑地在等式右邊寫上正確的答案「22」。這是因為我們都熟習這個「語言」的表達方式,可以把這些符號轉換成相對的意義,即牽涉到五個數字的加法運算。可是,如果等式是如下呢?

+(1 2 3 6 10)=       (2)

可能有不少讀者對上面的等式不知所云。其實,兩個等式可以表達同樣的意義。所不同的是在例(2)中,我們使用了科學上常用的波蘭式記法。例(1)和(2)有何不同呢?只在兩種「語言」(記法)句法不同。傳統記法中規定運算符號「+」要出現在每兩個數字中,而波蘭式記法則規定運算符號出現在所有受影響的數字左邊。句法不同,然而表達的語意相同,就是把這五個數目加起來。

由上例可看出來,即使表達的內容只限於四則運算這麼小的範圍,而句法差異十分明顯(運算符號在數字間或右左邊),對於不熟悉這個語言的人來說,都會造成理解上的困難。使用電腦程式的人也都知道,執行同一步驟,換了不同的語言,就要寫不同的程式。這是因為這些程式語言的句法和語意各不相同,有經驗的軟體工程師也都知道,每個程式語言各有其表達內容上的限制,特別適合做某些工作而無法表達另一些工作,如福傳適合科學運算,而科博(COBOL)適合處理大量資料等。而在使用語言時,必須遵循該語言的句法規範,才能與機器溝通。否則,螢幕上出現「句法錯誤」(syntax error),可是白費力氣。

自然語言呢?我們知道英文和中文的詞序似乎相當接近,可是下面(3)句的英文沒有問題,而順序相同的(4)句中文卻怎麼念怎麼不通。

Lee came yesterday. (3)

老李來了昨天。 (4)

相反的,(5)句的英文不通,而相同詞序的中文(6)句則沒有問題。

Lee yesterday came. (5)

老李昨天來了。 (6)

在語言學家看來,上面四句中英文的對比表現的正是句法的問題。想用C語言程式,得先學會了C語言的句法規律。會說中文的人也得有中文句法的知識。而這兩者間最重要的差異之一在於,人工語言的句法是規律化,一條一條學來的(甚至可能是背起來的);而母語的語法則是幼
兒在不知不覺中習得的。

若先不論心理學家與語言學家認為相當重要的學(learning)與習(acquiring)間的差異,同樣是以符號表達意義的「語言」,同樣有這麼多人使用;同樣是根據一些句法、語意規律來運作;為什麼程式語言在電腦上得心應手,而自然語言目前在電腦上仍行不通呢?

自然語言與程式語言

人工的程式語言和自然語言最大的差異之一在於:人工語言要表達的意義狹窄多了,以福傳程式來描繪花瓣的幾何形狀、計算花瓣的面積,也許要比日常用語簡潔有效率得多;但它卻大概無法用來形容花的香味,或一個人看到花時喜悅的感覺。日常語言可以表達人類所有的思維與情緒;不管是具體的、抽象的、模糊的,或者矛盾的。可是程式語言是要機器工作的媒介,只能表達這些特定的工作
(如數學運算)。人工語言的詞彙很少,大約是幾十個或幾百個;而且一經定義就不會改變;而自然語言的詞彙很大。

中研院詞庫小組根據《國語日報詞典》取了四萬目詞做了一部電子詞典。可是這詞典只涵蓋了基本詞彙的一小部分。我們估計一個供電腦處理中文用的電子詞典需要有約十萬目詞的基本詞彙,還不包括因處理資料內容不同而異的專門詞彙。更麻煩的是,自然語言的詞彙隨時在變動;新增詞彙(如最近的「當機」、「崩盤」等)還算小事,每個詞的定義還可能隨時變動。如「外星人」這個詞,在
目前台灣報紙上指的是資源回收垃圾桶。因此,在語言學中詞態學(morphology)也是很重要的一環,詞態學研究基本與衍生(derived)詞之間的關係,並預測衍生詞的可能意義。人工的程式語言則無詞態可言。同樣的詞彙學(lexicography)對自然語言很重要;卻對人造語言毫無重要可言。

自然語言的賣點

純為指示機器執行指令而設計的程式語言,與自然語言另一個差別在於:人造程式語言很精確,而自然語言常常模糊而有多義性(ambiguity)。使用程式語言的唯一目的在執行工作,因此程式語言的設計使每一句話(每一行指令)相對的動作,定義得清楚。因為指令有多重意義的可能後果是,機器不知選那個去執行,或甚執行了錯誤的工作,如此,使用該語言的目的就完全達不到了。可是自然語言不同。自然語言是要以有限的符號(語句)去表達無限的訊息(人類所有觀察的到、想像得到的現象與思維),當然不可能是一對一。更何況很多時候說話者根本不希望把話說清楚(比如說在回答「我是不是你最愛的人」之類的問題時)。因此多義性一直是自然語言的「賣點」(design feature)。

由於自然語言的多義性,在計算語言學的理論與應用上占了很重的分量,本文特別舉了中英文的例子各一來說明。附圖說明“They saw the girl with the binoculars.”這句英文有四個可能的解釋。你能分得出幾個呢?

像圖中的多重意義來源有二:其一是詞本身就有一個以上的解釋(saw可以是「看見」的過去式,也可以是動詞「鋸」的原形);其二是結構上的差異("with the binoculars"這個介係詞片語可以修飾"the girl"也可以修飾"saw")。這是各個語言共有的現象。可是中文另有一種獨有的多義現象:

工商人士要求立法規定理想公平原則。 (7)

懂中文的人看(7)句大概立刻可了解這句話的意義,我們大致是把這句話分成以下的段落來讀:

〔工商人士〕 〔要求〕 〔立法(規定〈「理想」「公平」「原則」〉)〕 (8)

也就是說,我們認為這個句子是由「工商人士」、「要求」、「立法」、「規定」、「理想」、「公平」、「原則」等七個詞所講成的。可是,在這句子也同時可以找到「商人」、「法規」、「定理」、「平原」等另外四個中文裡的詞。

工商人士要求立法規定理想公平原則。 (9)

我們可以想像得出來,一個帶有全部中文詞彙的電腦在處理上面這句子時,不但會找到我們要的七個詞,也會找到(9)中的四個詞及其他單字詞。人們自動分辨出那個詞是相關的,那個詞是無關的,我們用的原則是什麼呢?

最後,人造程式語言不但要表達的意義限定在一定的範圍內;解釋(interprete,即把符號轉換成實質的意義或動作)人造語言也只用到事先定義好的知識。換言之,解釋人工語言所需的知識只限於事先定義於語法的知識。可是理解自然語言所需要的知識,不但包括了該語言的語法,也包括了我們得自這世界的知識或有關這世界的常識(real
world knowledge)。舉例來說,當聽到了「外星人登陸港都」這新聞報導時,我們知道指的是高雄市已開始使用資源回收垃圾桶,而不是其他星球來的人已到了高雄,也不是到了大連。這是因為聽者運用常識,選擇「外星人」、「港都」這兩個詞在句中的可能意義。

總結上面對人造語言與自然語言的比較;我們知道自然語言有句法、語意等,和程式語言相同,可用規範模式描述的特性。但是自然語言因有多義性,因牽涉到世界知識範圍而沒有限制;無法用像處理程式語言一樣定義嚴謹的少數幾條規律來解釋。可是我們也無法否認自然語言自有其獨特的共通特性(universality)這個事實。而語言學家所追求的,就是一個簡潔優雅的理論,可用來描述解釋自然語言的共通特性與各別語言的差異。資訊科學家當然是希望在處理自然語言時,借重語言學的理論與語言學家的經驗。而計算語言學家,除了研究較規範化(formal)的語言學理論外,大多數也希望藉著語言學理論,在自然語言處理的應用一舉解決兩個問題:電腦無法妥善處理自然語言以及語言學理論很難直接驗證或評比。

語言學與認知科學

談到語言學理論的驗證,就不能不提語言學可算是認知科學(cognitive sciences)之一這個事實。認知科學研究的是人類的認知行為,也就是研究與所有人類思維、知識、知覺有關的行為。所有認知行為當然都由腦神經中樞控制。可是腦一直是個「黑盒子」。也就是我們可以觀察到刺激、結果,卻不能直接去觀測腦中的活動。這也是為什麼認知科學遲到最近二十年才有較蓬勃發展的一個重要原
因。可是也正因為我們對人類的其他行為都已相當了解了,唯獨對人之所以為人的認知行為尚無法全盤解謎,而使得認知科學成為近代最吸引人、最可能有突破發展的科學之一。

語言學在認知科學中的獨特地位在於﹕人類所有認知行為中,語言行為提供了最豐富、最可靠的資料,其他認知行為不但變異的範圍較小(比如說顏色之視覺辨認),而且常常不藉語言無法取得結果(科學家怎樣才能知道受測者認為甲圖形是梯形,而乙圖形是長方形呢?)因此,欲解開人類認知行為之謎,語言學的研究似乎是支重要的鑰匙。

認知科學與人工智慧

人腦這個黑盒子,不能打開來觀測裡面的認知活動。但是,我們如何才能明白人類的認知活動呢?除了觀察送入的東西與產生的結果,推測裡面進行的步驟外﹔另一個可行的策略是造一個機器來效仿(simulate)人類的認知行為。從比較效仿的結果,來判斷效仿的模式是否可行。這就是人工智慧(artificial intelligence)和認知科學契合的地
方了。

資訊學者開始研究人工智慧時,主要目的當然不是在效仿人類的認知行為。最多也只是想仿造出一些程式或機器,來執行人類運用智慧才能作的工作。同時,假設人工智慧效仿某種人類認知行為成功,也並不表示人類認知行為就像這個程式一般;頂多也只表示該人工智慧程式,正好符合了抽象化描述認知行為的模式。然而,電腦效仿對認知科學最重要的地方在於,黑盒子既然無法打開,理論當然無法藉實驗來測試或調整,唯一的方法是藉電腦效仿。在電腦上效仿當然可以一次又一次的修改理論,並比較其預測結果,以定其優劣。效仿若不能決定那個理論是正確的,起碼能將可行的理論找出來。

資訊學者關切的重點當然不在理論模式是否正確,而在人工智慧是否可成功執行。問題是,人工智慧所要執行的既是人類的智慧行為,效仿人類認知行為的理論模式難道不比用笨方法憑空捏造強嗎?

因此,我們可以再回到本文開頭提到期待中的另一次資訊革命。人人皆會用電腦以及電腦可以直接處理與人有關的所有資訊,這兩項展望都取決於電腦是否具有處理自然語言的能力。同樣,我們可以斷言﹕電腦處理自然語言的能力,絕難脫離研究語言的理論模式而獨立發展;同時語言學理論之驗證與改進,也將與自然語言處理相輔相成。計算語言學因此應運而生。

計算語言學──理論與應用

計算語言學(computational linguistics)是個整合學科。定義這個學科,要顧及前文提到與自然語言有關的種種觀念。當然,這個定義也脫不了兩個來源學科的影響。資訊科學家所研究的對象是計算機系統。因此,葛力行(R. Grishiman)在他寫的教科書中,把計算語言學定義為:「對理解或衍生自然語言的計算機系統之研究」(the study of computer systems for understanding and generating natural language)。換句話說,從資訊科學的觀點來看,計算語言學就是如何設計出一個電腦軟體系統,使得這個系統具有語言能力。

由另一個觀點看來,語言學家研究的對象是自然語言。因此,語言學家可能給計算語言學的定義可以是:「可應用於計算機系統的語言學理論研究」,或「語言學理論運用於計算機系統之研究」。不管所採的定義為何,計算語言學都包括了:構建處理語言的計算機系統以及自然語言規範模式的研究。其中語言學所提供的是分析自然語言構造的理論:而資訊科學所提供的,則是構建計算系統的理
論與技術。

計算語言學若缺了理解或衍生自然語言的計算機系統,則與理論語言學無異。因此,要認識計算語言學必須知道它在計算機系統上的應用。

最直截了當應用計算語言學的系統有:可直接在機上做查詢的電子詞典。舉例說,市面上已可買到只有手上計算機大小的英文電子詞典,可有10萬個詞的拼音檢查與更正(spell checker),以及22萬詞的同義詞典。你忘了拼法時還可做自由檢索(wildcard search)。

除了拼音及錯別字更正外,我們也可以構建斷詞系統(segmentation)。中文斷詞的重要在上文中已介紹過了。「…公平原則…」要讀成「....公平、原則…」,還是「....公、平原、則…」當然會影響到對句子的理解。這樣的系統也可應用在音轉字的輸入方法上。光輸入「ㄩㄢˊ」,當然不知道這個音應該是「元」、「原」、「圓」,或其他的同音字。可是若輸入「ㄩㄢˊ ㄗㄜˊ」,藉著斷詞系統與電子詞典的幫助,我們可以知道這個詞是「原則」。在拼音文字中特有的應用,則有決定連字號的hyphenation routine。比如,較好的英文文書處系統,在一行字容不下時,會自動把像hyphenation這樣的長字斷開,把hyphen-(加上連字號),而把ation移到下一行。以上所提的幾樣都已有成功的商品上市了。以下的應用則或者已有商品應市,但技術仍未達理想,或者仍純在研究發展階段。這類的系統包括了更正文法錯誤的文法檢查器、自然語言查詢系統、自然語言的人機介面、篇章產生(text generation),以至於話語的辨識與理解等。

當然,計算語言學最重要的應用之一是「機器翻譯」。計算語言學之興起,可說完全來自於機器翻譯的研究與發展。機器翻譯就是利用電腦作翻譯。理想上當然是電腦可以做快速自動精確的翻譯,那麼人們就不用擔心讀到不同語言的文件或碰見語言不通的外國人了。可是由於自然語言的多義、矛盾,再加上指涉知識範圍的漫無限制,這種全自動機器翻譯,至少在可預見的將來,是不可能達到的
。目前所借重於機器翻譯的,是它可以快速處理大量文件,而且翻譯所用的詞彙可以前後一致。也就是說稱得上「信」,勉強沾上「達」的邊,而暫且不管「雅」。由以上的應用,可見計算語言學若真正有了預期的成果,具自然語言能力的電腦將突破人和機器間的藩籬,而機器翻譯將消弭不同人種間的隔閡,其影響不可限量。

現況與展望

計算語言學在國內的起步不算太早,而資訊界與語言學界有較密切的合作關係,更是近幾年的事。所幸國內從事基礎理論研究的單位如中研院、台大、清大、交大,從事實際系統開發的工研院電子所、交通部電信研究所、資策會,以及致遠科技等業者,均吸引了有志長期從事研究工作的人員。並且這些研究者的努力有了初步的具體成果﹔也藉著兩次的計算語言學學術研討會與國外專家及國內學
者切磋;加上最近計算語言學會的成立,必然更能蓬勃發展。

其實,計算語言學在中華民國,除了有積極、前瞻的影響,能鼓勵資訊科學與語言學兩個學術領域的研究,從而提升科技資訊工業發展外;更重要的,中文自有其語言的特性。漢語計算語言學的研究發展,我們不來做、不來帶頭,還有誰呢?

(本文作者保留版權)

黃居仁任職於中央研究歷史語言研究所

 

 

 
   

回到最上面

 

科學月刊全文資料庫

最佳瀏覽解析度800*600,請使用IE4.0以上版本的瀏覽器

科學月刊雜誌社.金台灣資訊事業有限公司.圖龍文化事業股份有限公司版權所有
Copyright 2000 Science Monthly and King-Taiwan Information Technology Inc. All Rights Reserved.