什麼是自然語言處理

前幾年曾經馬少平老師的引薦,爲某科普圖書寫過一篇短文介紹自然語言處理,介紹了NLP的基本概念、任務和挑戰,可做入門參考。

一、什麼是自然語言處理

簡單地說,自然語言處理(Natural Language Processing,簡稱NLP)就是用計算機來處理、理解以及運用人類語言(如中文、英文等),它屬於人工智能的一個分支,是計算機科學與語言學的交叉學科,又常被稱爲計算語言學。由於自然語言是人類區別於其他動物的根本標誌。沒有語言,人類的思維也就無從談起,所以自然語言處理體現了人工智能的最高任務與境界,也就是說,只有當計算機具備了處理自然語言的能力時,機器纔算實現了真正的智能。

從研究內容來看,自然語言處理包括語法分析、語義分析、篇章理解等。從應用角度來看,自然語言處理具有廣泛的應用前景。特別是在信息時代,自然語言處理的應用包羅萬象,例如:機器翻譯、手寫體和印刷體字符識別、語音識別及文語轉換、信息檢索、信息抽取與過濾、文本分類與聚類、輿情分析和觀點挖掘等,它涉及與語言處理相關的數據挖掘、機器學習、知識獲取、知識工程、人工智能研究和與語言計算相關的語言學研究等。

值得一提的是,自然語言處理的興起與機器翻譯這一具體任務有着密切聯繫。機器翻譯指的是利用計算機自動地將一種自然語言翻譯爲另外一種自然語言。例如自動將英文“I like Beijing Tiananmen Square”翻譯爲“我愛北京天安門”,或者反過來將“我愛北京天安門”翻譯爲“I like Beijing Tiananmen Square”。由於人工進行翻譯需要訓練有素的雙語專家,翻譯工作非常耗時耗力。更不用說需要翻譯一些專業領域文獻時,還需要翻譯者瞭解該領域的基本知識。世界上有超過幾千種語言,而僅聯合國的工作語言就有六種之多。如果能夠通過機器翻譯準確地進行語言間的翻譯,將大大提高人類溝通和了解的效率。

《聖經》裏有一個故事說巴比倫人想建造一座塔直通天堂。建塔的人都說着同一種語言,心意相通、齊心協力。上帝看到人類竟然敢做這種事情,就讓他們的語言變得不一樣。因爲人們聽不懂對方在講什麼,於是大家整天吵吵鬧鬧,無法繼續建塔。後來人們把這座塔叫作巴別塔,而“巴別”的意思就是“分歧”。雖然巴別塔停建了,但一個夢想卻始終縈繞在人們心中:人類什麼時候才能擁有相通的語言,重建巴別塔呢?機器翻譯被視爲“重建巴別塔”的偉大創舉。假如能夠實現不同語言之間的機器翻譯,我們就可以理解世界上任何人說的話,與他們進行交流和溝通,再也不必爲相互不能理解而困擾。

事實上,“人工智能”被作爲一個研究問題正式提出來的時候,創始人把計算機國際象棋和機器翻譯作爲兩個標誌性的任務,認爲只要國際象棋系統能夠打敗人類世界冠軍,機器翻譯系統達到人類翻譯水平,就可以宣告人工智能的勝利。四十年後的1997年,IBM公司的深藍超級計算機已經能夠打敗國際象棋世界冠軍卡斯帕羅夫。而機器翻譯到現在仍無法與人類翻譯水平相比,從此可以看出自然語言處理有多麼困難!

自然語言處理興起於美國。第二次世界大戰之後,二十世紀五十年代,當電子計算機還在襁褓之中時,利用計算機處理人類語言的想法就已經出現。當時,美國希望能夠利用計算機將大量俄語材料自動翻譯成英語,以窺探蘇聯科技的最新發展。研究者從破譯軍事密碼中得到啓示,認爲不同的語言只不過是對“同一語義”的不同編碼而已,從而想當然地認爲可以採用譯碼技術像破譯密碼一樣“破譯”這些語言。

1954年1月7日,美國喬治敦大學和IBM公司合作實驗成功地將超過60句俄語自動翻譯成英語。雖然當時的這個機器翻譯系統非常簡單,僅僅包含6個語法規則和250個詞,但由於媒體的廣泛報道,紛紛認爲這是一個巨大的進步,導致美國政府備受鼓舞,加大了對自然語言處理研究的投資。實驗完成者也當即自信地撰文稱,在三到五年之內就能夠完全解決從一種語言到另一種語言的自動翻譯問題。他們認爲只要制定好各種翻譯規則,通過大量規則的堆砌就能夠完美地實現語言間的自動翻譯。

然而,事實是理解人類語言遠比破譯密碼要複雜得多,因此研究進展非常緩慢。1966年的一份研究報告總結髮現,經過十年之久的研究,結果遠遠未能達到預期,因此支持資金急劇下降,使自然語言處理(特別是機器翻譯)的研究陷入長達二十年的低潮。直到二十世紀八十年代,隨着電子計算機的計算能力的飛速提高和製造成本的大幅下降,研究者又開始重新關注自然語言處理這個極富挑戰的研究領域。三十年滄海桑田,此時研究者已經認識到簡單的語言規則的堆砌無法實現對人類語言的真正理解。研究發現,通過對大量的文本數據的自動學習和統計,能夠更好地解決自然語言處理問題,如語言的自動翻譯。這一思想被稱爲自然語言處理的統計學習模型,至今方興未艾。

那麼,自然語言處理到底存在哪些主要困難或挑戰,吸引那麼多研究者幾十年如一日孜孜不倦地探索解決之道呢?

二、自然語言處理的主要困難

自然語言處理的困難可以羅列出來很多,不過關鍵在於消除歧義問題,如詞法分析、句法分析、語義分析等過程中存在的歧義問題,簡稱爲消歧。而正確的消歧需要大量的知識,包括語言學知識(如詞法、句法、語義、上下文等)和世界知識(與語言無關)。這帶來自然語言處理的兩個主要困難。

首先,語言中充滿了大量的歧義,這主要體現在詞法、句法及語義三個層次上。歧義的產生是由於自然語言所描述的對象――人類活動非常複雜,而語言的詞彙和句法規則又是有限的,這就造成同一種語言形式可能具有多種含義。

例如單詞定界問題是屬於詞法層面的消歧任務。在口語中,詞與詞之間通常是連貫說出來的。在書面語中,中文等語言也沒有詞與詞之間的邊界。由於單詞是承載語義的最小單元,要解決自然語言處理,單詞的邊界界定問題首當其衝。特別是中文文本通常由連續的字序列組成,詞與詞之間缺少天然的分隔符,因此中文信息處理比英文等西方語言多一步工序,即確定詞的邊界,我們稱爲“中文自動分詞”任務。通俗的說就是要由計算機在詞與詞之間自動加上分隔符,從而將中文文本切分爲獨立的單詞。例如一個句子“今天天氣晴朗”的帶有分隔符的切分文本是“今天|天氣|晴朗”。中文自動分詞處於中文自然語言處理的底層,是公認的中文信息處理的第一道工序,扮演着重要的角色,主要存在新詞發現和歧義切分等問題。我們注意到:正確的單詞切分取決於對文本語義的正確理解,而單詞切分又是理解語言的最初的一道工序。這樣的一個“雞生蛋、蛋生雞”的問題自然成了(中文)自然語言處理的第一條攔路虎。

其他級別的語言單位也存在着各種歧義問題。例如在短語級別上,“進口彩電”可以理解爲動賓關係(從國外進口了一批彩電),也可以理解爲偏正關係(從國外進口的彩電)。又如在句子級別上,“做手術的是她的父親”可以理解爲她父親生病了需要做手術,也可以理解爲她父親是醫生,幫別人做手術。總之,同樣一個單詞、短語或者句子有多種可能的理解,表示多種可能的語義。如果不能解決好各級語言單位的歧義問題,我們就無法正確理解語言要表達的意思。

另外一個方面,消除歧義所需要的知識在獲取、表達以及運用上存在困難。由於語言處理的複雜性,合適的語言處理方法和模型難以設計。

例如上下文知識的獲取問題。在試圖理解一句話的時候,即使不存在歧義問題,我們也往往需要考慮上下文的影響。所謂的“上下文”指的是當前所說這句話所處的語言環境,例如說話人所處的環境,或者是這句話的前幾句話或者後幾句話,等等。假如當前這句話中存在指代詞的時候,我們需要通過這句話前面的句子來推斷這個指代詞是指的什麼。我們以“小明欺負小亮,因此我批評了他”爲例。在其中的第二句話中的“他”是指代“小明”還是“小亮”呢?要正確理解這句話,我們就要理解上句話“小明欺負小亮”意味着“小明”做得不對,因此第二句中的“他”應當指代的是“小明”。由於上下文對於當前句子的暗示形式是多種多樣的,因此如何考慮上下文影響問題是自然語言處理中的主要困難之一。

再如背景知識問題。 正確理解人類語言還要有足夠的背景知識。舉一個簡單的例子,在機器翻譯研究的初期,人們經常舉一個例子來說明機器翻譯任務的艱鉅性。在英語中“The spirit is willing but the flesh is weak.”,意思是“心有餘而力不足”。但是當時的某個機器翻譯系統將這句英文翻譯到俄語,然後再翻譯回英語的時候,卻變成了“The Voltka is strong but the meat is rotten.”,意思是“伏特加酒是濃的,但肉卻腐爛了”。從字面意義上看,“spirit”(烈性酒)與“Voltka”(伏特加)對譯似無問題,而“flesh”和“meat”也都有肉的意思。那麼這兩句話在意義上爲什麼會南轅北轍呢?關鍵的問題就在於在翻譯的過程中,機器翻譯系統對於英語成語並無瞭解,僅僅是從字面上進行翻譯,結果自然失之毫釐,差之千里。

從上面的兩個方面的主要困難,我們看到自然語言處理這個難題的根源就是人類語言的複雜性和語言描述的外部世界的複雜性。人類語言承擔着人類表達情感、交流思想、傳播知識等重要功能,因此需要具備強大的靈活性和表達能力,而理解語言所需要的知識又是無止境的。那麼目前人們是如何嘗試進行自然語言處理的呢?

三、自然語言處理的發展趨勢

目前,人們主要通過兩種思路來進行自然語言處理,一種是基於規則的理性主義,另外一種是基於統計的經驗主義。理性主義方法認爲,人類語言主要是由語言規則來產生和描述的,因此只要能夠用適當的形式將人類語言規則表示出來,就能夠理解人類語言,並實現語言之間的翻譯等各種自然語言處理任務。而經驗主義方法則認爲,從語言數據中獲取語言統計知識,有效建立語言的統計模型。因此只要能夠有足夠多的用於統計的語言數據,就能夠理解人類語言。然而,當面對現實世界充滿模糊與不確定性時,這兩種方法都面臨着各自無法解決的問題。例如,人類語言雖然有一定的規則,但是在真實使用中往往伴隨大量的噪音和不規範性。理性主義方法的一大弱點就是魯棒性差,只要與規則稍有偏離便無法處理。而對於經驗主義方法而言,又不能無限地獲取語言數據進行統計學習,因此也不能夠完美地理解人類語言。二十世紀八十年代以來的趨勢就是,基於語言規則的理性主義方法不斷受到質疑,大規模語言數據處理成爲目前和未來一段時期內自然語言處理的主要研究目標。統計學習方法越來越受到重視,自然語言處理中越來越多地使用機器自動學習的方法來獲取語言知識。

邁進二十一世紀,我們已經進入了以互聯網爲主要標誌的海量信息時代,這些海量信息大部分是以自然語言表示的。一方面,海量信息也爲計算機學習人類語言提供了更多的“素材”,另一方面,這也爲自然語言處理提供了更加寬廣的應用舞臺。例如,作爲自然語言處理的重要應用,搜索引擎逐漸成爲人們獲取信息的重要工具,涌現出以百度、谷歌等爲代表的搜索引擎巨頭;機器翻譯也從實驗室走入尋常百姓家,谷歌、百度等公司都提供了基於海量網絡數據的機器翻譯和輔助翻譯工具;基於自然語言處理的中文(輸入法如搜狗、微軟、谷歌等輸入法)成爲計算機用戶的必備工具;帶有語音識別的計算機和手機也正大行其道,協助用戶更有效地工作學習。總之,隨着互聯網的普及和海量信息的涌現,自然語言處理正在人們的日常生活中扮演着越來越重要的作用。

然而,我們同時面臨着一個嚴峻事實,那就是如何有效利用海量信息已成爲制約信息技術發展的一個全局性瓶頸問題。自然語言處理無可避免地成爲信息科學技術中長期發展的一個新的戰略制高點。同時,人們逐漸意識到,單純依靠統計方法已經無法快速有效地從海量數據中學習語言知識,只有同時充分發揮基於規則的理性主義方法和基於統計的經驗主義方法的各自優勢,兩者互相補充,才能夠更好、更快地進行自然語言處理。

自然語言處理作爲一個年齡尚不足一個世紀的新興學科,正在進行着突飛猛進的發展。回顧自然語言處理的發展歷程,並不是一帆風順,有過低谷,也有過高潮。而現在我們正面臨着新的挑戰和機遇。例如,目前網絡搜索引擎基本上還停留在關鍵詞匹配,缺乏深層次的自然語言處理和理解。語音識別、文字識別、問答系統、機器翻譯等目前也只能達到很基本的水平。路漫漫其修遠兮,自然語言處理作爲一個高度交叉的新興學科,不論是探究自然本質還是付諸實際應用,在將來必定會有令人期待的驚喜和異常快速的發展。

參考文獻
[1] 張鈸. 自然語言處理的計算模型. 中文信息學報, 2007, 21(3):3-7.
[2] 馮志偉. 《統計自然語言處理》序言. 1版. 北京: 清華大學出版社, 2008.
[3] 孫茂松. 語言計算:信息科學技術中長期發展的戰略制高點. 語言文字應用, 2005, 3:38-40.

作者簡介:劉知遠,清華大學助理研究員,中國計算機學會高級會員。2011年獲得清華大學博士學位。主要研究方向爲自然語言處理與社會計算,已在相關領域頂級會議和期刊發表論文20餘篇。[email protected]

原文鏈接: 什麼是自然語言處理

發佈了27 篇原創文章 · 獲贊 26 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章