我們每天都在說話,每天都在用語言進行交流。語言文字對我們是如此的平常,以至於絕大多數人都不會注意到語言中一些非常難以解釋的現象。昨天的漢語虛詞研究課上,我們就談到了這樣乙個有趣的問題:在表示「僅僅」的含義時,什麼時候能夠用「只」,什麼時候能夠用「光」?若不細想的話,大家或許會認為兩者的用法完全一樣。「我只吃蘋果」可以說成「我光吃蘋果」,「光有知識還不行」也可以說成是「只有知識還不行」。我們還可以舉出更多的例子來,如「別光坐著」/「別只坐著」,「光說不做」/「只說不做」等等。憑藉天生的歸納性思維,乙個正常人有充分的理由猜想,在表示「僅僅」的含義時,「只」和「光」是通用的。而事實上,現代漢語詞典中正是把「光」字解釋為「只」。有趣的是,在我們質疑只找了四個例子是否足以說明二者等價時,殊不知這句質疑本身就成了乙個反例:「只找了四個例子」不能換成「光找了四個例子」。類似地,「大會只來了748個人」也不能說「大會光來了748個人」。我們繼續猜想,是不是「光」不能用在數量詞前面呢?也不見得。當數量詞不是實指而是虛指時,我們有時也能用「光」來修飾帶有數量詞的名詞。例如,在表示「只吃幾個蘋果」、「只吃一些蘋果」的意義時,「光吃兩個蘋果」的說法是很順口的。另一些例子則表明,「光」的用法似乎與它所修飾的名詞無關。「我只當到團長」不能說成是「我光當到團長」,但怪就怪在「我只認識團長」卻又偏偏可以說成是「我光認識團長」。「當到團長」和「認識團長」有什麼不同呢?仔細揣摩兩者的意思,我們似乎體會到了一些微妙的差別:「當到團長」是乙個階段性的、進度性的、里程碑性的概念,它必須事先經過「當到連長」、「當到營長」等事件;但「認識團長」就不一樣了,沒有任何規定限制我們在「認識團長」之前必須「認識連長」。同樣的,「找出四個例子」是以「找了三個例子」為前提的,「來了748個人」也不是一下子就能實現的。
問題算是想通了,但怎麼來闡述它呢?在這個問題上,語言學陷入了乙個困境。此時,引入數理邏輯語言對於解釋這種語言現象出乎意料的方便。我們說,在副詞「只」修飾的事件所處的「域」中如果存在蘊含關係,則這裡的「只」不能用「光」來替代。例如,提起「吃兩個蘋果」,我們腦海中形成的事件集合一定是「吃乙個蘋果」、「吃兩個蘋果」、「吃三個蘋果」等等,而後者必然蘊含前者,因此「只吃兩個蘋果」不能說成「光吃兩個蘋果」。類似的,「當到團長」必然推出「當到連長」,但有「認識團長」不見得有「認識連長」,因此兩者與「只」和「光」的搭配情況是不同的。
有人或許會說,為什麼不直接說這是由「事件發生有無必然的先後順序」所引起的?事實上,不僅僅是事件先後順序,在更抽象的領域裡,上述理論同樣起作用。例如,我們可以說「x只是乙個有理數」,但絕不會說「x光是乙個有理數」,原因就在於,「x是整數」、「x是有理數」、「x是實數」等事件是有蘊含關係的,雖然它們之間並沒有時間先後的聯絡。
在研究語言學,特別是語義學時,數理邏輯符號能夠如此有效地解決問題,以至於語言學家們完全借用了整個數理邏輯體系,開創了乙個語言學分支叫做「形式語義學」。形式語義學不但把自然語言中的個體、行為、聯結詞、謂詞進行符號化,還引入了一些新的符號來表示會話中一些更加複雜的情形。例如,「明天可能要下雨」是真的,但「昨天可能要下雨」就不見得為真了。但由於數理邏輯中沒有「可能運算元」,這種普遍的會話將得不到數理邏輯形式。至於一些的確存在真假但卻很可能永遠無法判定其真假的命題,如何確定其語義形式就更加困難了,例如「goldbach猜想可能是真的」、「當初fermat可能根本就沒有證到fermat大定理」。還有一種更特殊的情況:假如乙個人說「微積分的創立完全有可能提前100年」,雖然與事實相悖,但從會話目的上看這句話確實為真。為了解決這些問題,形式語義學引入了模態運算元,將命題的「真值」擴充為可能的、必然的、偶然的(可能但不必然的)三種,這種可能性通常解釋為「所有邏輯上可能的平行世界中是否成立」。如果在某些世界中命題成立,我們稱之為「可能的」;如果在所有的世界中命題均成立,我們稱之為「必然的」;如果命題在我們所處的世界中碰巧為真,但在其它世界中不見得為真,這就被歸為「偶然的」。模態運算元有兩個,□運算元(必然運算元)和◇運算元(可能運算元),它們之間存在關係□p↔¬◇¬p和◇p↔¬□¬p。另一些常用的公理有□p→p、□(p→q)→(□p→□q)、p→□◇p等等。有了這些符號,數理邏輯便可以用於解釋各種會話場合中的語句。
利用形式語義學,自然語言中的含混和歧義能夠被非常有效地消除,便於深入研究語義關係,也便於將其轉化為計算機能夠理解的語言。語言學家甚至借用數學中的公理化方法,構建了公理語義學體系,將語義推導的過程徹底地程式化。
學科之間的促進作用永遠是相互作用的。上個世紀初,在語言學迅猛發展之時,語言學家借用並且發展了數理邏輯符號,促使數理邏輯模態運算元的產生。但是,估計語言學家們再怎麼也不會想到,隨著計算機的發展,數學科學反過來解決了語言學中的一些大問題。
隨著網路的高速發展,搜尋引擎系統急需要開發出一套中文分詞技術。如何用計算機將一句話中的詞語切分出來?建立乙個詞典並不難,難就難在當劃分方案不止一種時該如何取捨。上世紀末,不少人都在這個課題上做過嘗試。一種比較好想的演算法是,從前往後不斷匹配最長的單詞。很多場合下這種方案都是可行的,但演算法的反例也有不少,例如「北京大學/生活/動/中心」顯然錯了,這句話其實應該劃分為「北京/大學生/活動/中心」。還有人曾經提出過「最少詞語切分方案」,即當一句話有多種切分方案時,取詞語數最少的方案。這種方案的效果也不好,例如「我/也/考慮/過去/北京」顯然不對,正確的應該是「我/也/考慮/過/去/北京」。
統計語言模型出奇簡單地解決了這個問題。假設x_1, x_2, ..., x_n是乙個分詞結果,我們想要計算該序列是乙個合法句子的概率p(x_1, x_2, ..., x_n),它相當於p(x_1)·p(x_2|x_1)·p(x_3|x_1,x_2)·……·p(x_n|x_1,x_2,…,x_n-1)。為了使問題變得更加簡單,我們採用markov假設,認為乙個詞出現的概率僅僅與它前面那個詞有關。於是有p(x_1, x_2, ..., x_n) = p(x_1)·p(x_2|x_1)·p(x_3|x_2)·……·p(x_n|x_n-1),而每個p(x_i|x_i-1)的值(詞語x_i出現在x_i-1之後的概率)都可以在分析了大量語料之後統計得出。接下來,我們只需要在眾多切分方案中選擇成句概率最高的那乙個即可(這一最優化問題還可以利用動態規劃進行加速)。
這乙個模型異常簡單,但實際效果出人意料的好。事實上,這一模型不但解決了分詞問題,連語音識別、多音字注音、輸入法智慧型成句輸入等問題都一併解決了,識別準確率提公升了乙個數量級。
數學思維已經不止一次幫助人們設計語言文字的機器處理演算法了。這裡我們還可以再看看拓撲學在文字識別方面的貢獻。ocr是一種能夠把以方式儲存的文字資訊轉換為文字的技術,它可以用於將列印稿成批地掃瞄並還原回文字檔案。設計ocr系統的一大難點是,即使圖形近似匹配演算法能夠非常準確地識別出文字,若每處理一字就要與字型檔中的上萬個字一一匹配,其處理速度無論如何也不能投入實際應用。一種容易想到的權宜之計便是首先匹配字型檔中的常用字,若匹配成功則繼續處理下乙個字。這種辦法並不能從根本上解決問題。另一種頗具啟發性的想法便是將字型檔中的字形按照所佔平面空間的多少進行排序分類。這可以在一定程度上縮小匹配檢索的範圍,速度有了一些提公升。此時,拓撲學再一次顯示出了它強大的力量。我們可以從拓撲不變數出發,尋找字形的本質特徵,把字型檔中的每個字進行編碼分類。例如,「估」字就是乙個有兩個連通分量、乙個環、兩個度為三的點、乙個度為四的點組成;或者通俗地說,「估」字有兩個相互分離的部份,有乙個「洞」,有兩個三叉路口,有乙個四叉路口。我們就把「估」字編碼為2121。對於一些模稜兩可的字形,不妨允許它存在多個編碼,同屬於幾個不同的組。識別文字時,我們只需要計算出該字的編碼,然後嘗試和字型檔中有相同編碼的字形進行匹配即可。這種演算法簡潔、美觀而有效,並且更加神奇的是,這種演算法能夠直接用於各種不同的字型,甚至當上的文字傾斜、顛倒、大小不一甚至扭曲時該演算法仍然能夠有效地分析出文字的結構。拓撲思想又一次向人們展示出了它那獨特的魅力。
數學無處不在
數學無處不在 基本資訊 叢書名 數學與人文 出版社 高等教育出版社 isbn 9787040345346 出版日期 2012 年5月 開本 16開 頁碼 1 版次 1 1 所屬分類 數學 更多關於 數學無處不在 內容簡介 數學書籍 本著叢書 讓數學成為國人文化的一部分 的宗旨,我們在本輯向讀者展示 ...
數學無處不在
高中時候異常的喜歡數學,就像喜歡語文一樣。不過這兩個科目卻都是拖我大腿的學科。接觸社會和各類知識後,越發覺得數學和語文是如此的相似,同樣的美。可惜應試教育的毒遮蔽了這種美。像小學生一樣把數學僅僅當作是掰著指頭的計算大概就是發現不了這種美的根源。集合論和數理邏輯是數學的根基,數學抽象現實事物並用符號化...
《程式設計師的數學課》模組一 無處不在的數學思維01
數制是一種計算數量大小的制度,也是計數法。用大白話來說,就是數數的方法。數制中,最重要的因素是基數。假設我們設定基數為 10 來數數,那就是在用十進位制計數法 如果設定基數為 2,就是在用二進位制計數法。經常說的進製,其實就是數制 不同的數制中,使用最廣泛的就是十進位制,這與人類有 10 個手指頭是...