posts - 2,  comments - 0,  trackbacks - 0

          數學之美 系列一 -- 統計語言模型

          http://googlechinablog.com/2006/04/blog-post.html


          2006年4月3日 上午 08:15:00

          從本周開始,我們將定期刊登 Google 科學家吳軍寫的《數學之美》系列文章,介紹數學在信息檢索和自然語言處理中的主導作用和奇妙應用。

          發表者: 吳軍, Google 研究員

          前言

          也 許大家不相信,數學是解決信息檢索和自然語言處理的最好工具。它能非常清晰地描述這些領域的實際問題并且給出漂亮的解決辦法。每當人們應用數學工具解決一 個語言問題時,總會感嘆數學之美。我們希望利用 Google 中文黑板報這塊園地,介紹一些數學工具,以及我們是如何利用這些工具來開發 Google 產品的。

          系列一: 統計語言模型 (Statistical Language Models)

          Google 的使命是整合全球的信息,所以我們一直致力于研究如何讓機器對信息、語言做最好的理解和處理。長期以來,人類一直夢想著能讓機器代替人來翻譯語言、識別語 音、認識文字(不論是印刷體或手寫體)和進行海量文獻的自動檢索,這就需要讓機器理解語言。但是人類的語言可以說是信息里最復雜最動態的一部分。為了解決 這個問題,人們容易想到的辦法就是讓機器模擬人類進行學習 - 學習人類的語法、分析語句等等。尤其是在喬姆斯基(Noam Chomsky 有史以來最偉大的語言學家)提出 “形式語言” 以后,人們更堅定了利用語法規則的辦法進行文字處理的信念。遺憾的是,幾十年過去了,在計算機處理語言領域,基于這個語法規則的方法幾乎毫無突破。

          其實早在幾十年前,數學家兼信息論的祖師爺 香農 (Claude Shannon)就提出了用數學的辦法處理自然語言的想法。遺憾的是當時的計算機條件根本無法滿足大量信息處理的需要,所以他這個想法當時并沒有被人們重視。七十年代初,有了大規模集成電路的快速計算機后,香農的夢想才得以實現。

          首先成功利用數學方法解決自然語言處理問題的是語音和語言處理大師賈里尼克 (Fred Jelinek)。當時賈里尼克在 IBM 公司做學術休假 (Sabbatical Leave),領導了一批杰出的科學家利用大型計算機來處理人類語言問題。統計語言模型就是在那個時候提出的。

          給大家舉個例子:在很多涉及到自然語言處理的領域,如機器翻譯、語音識別、印刷體或手寫體識別、拼寫糾錯、漢字輸入和文獻查詢中,我們都需要知道一個文字序列是否能構成一個大家能理解的句子,顯示給使用者。對這個問題,我們可以用一個簡單的統計模型來解決這個問題。

          如 果 S 表示一連串特定順序排列的詞 w1, w2,…, wn ,換句話說,S 可以表示某一個由一連串特定順序排練的詞而組成的一個有意義的句子。現在,機器對語言的識別從某種角度來說,就是想知道S在文本中出現的可能性,也就是數 學上所說的S 的概率用 P(S) 來表示。利用條件概率的公式,S 這個序列出現的概率等于每一個詞出現的概率相乘,于是P(S) 可展開為:

          P(S) = P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)

          其 中 P (w1) 表示第一個詞w1 出現的概率;P (w2|w1) 是在已知第一個詞的前提下,第二個詞出現的概率;以次類推。不難看出,到了詞wn,它的出現概率取決于它前面所有詞。從計算上來看,各種可能性太多,無法 實現。因此我們假定任意一個詞wi的出現概率只同它前面的詞 wi-1 有關(即馬爾可夫假設),于是問題就變得很簡單了。現在,S 出現的概率就變為:

          P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)…
          (當然,也可以假設一個詞又前面N-1個詞決定,模型稍微復雜些。)

          接 下來的問題就是如何估計 P (wi|wi-1)。現在有了大量機讀文本后,這個問題變得很簡單,只要數一數這對詞(wi-1,wi) 在統計的文本中出現了多少次,以及 wi-1 本身在同樣的文本中前后相鄰出現了多少次,然后用兩個數一除就可以了,P(wi|wi-1) = P(wi-1,wi)/ P (wi-1)。

          也許很多人不相信用這么簡單的數學模型能解決復雜的語音識別、機器翻譯等問題。其實不光是常人,就連很多語言學家都曾質疑過這種方法的有效性,但事實證明,統計語言模型比任何已知的借助某種規則的解決方法都有效。比如在 Google 的中英文自動翻譯中,用的最重要的就是這個統計語言模型。去年美國標準局(NIST) 對所有的機器翻譯系統進行了評測,Google 的系統是不僅是全世界最好的,而且高出所有基于規則的系統很多。

          現 在,讀者也許已經能感受到數學的美妙之處了,它把一些復雜的問題變得如此的簡單。當然,真正實現一個好的統計語言模型還有許多細節問題需要解決。賈里尼克 和他的同事的貢獻在于提出了統計語言模型,而且很漂亮地解決了所有的細節問題。十幾年后,李開復用統計語言模型把 997 詞語音識別的問題簡化成了一個 20 詞的識別問題,實現了有史以來第一次大詞匯量非特定人連續語音的識別。

          我是一名科學研究人員 ,我在工作中經常驚嘆于數學語言應用于解決實際問題上時的神奇。我也希望把這種神奇講解給大家聽。當然,歸根結底,不管什莫樣的科學方法、無論多莫奇妙的解決手段都是為人服務的。我希望 Google 多努力一分,用戶就多一分搜索的喜悅。
          posted on 2009-05-27 00:03 iConnect 閱讀(112) 評論(0)  編輯  收藏 所屬分類: 數學&算法&數據結構
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(2)

          文章分類(17)

          文章檔案(16)

          收藏夾(17)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 秦安县| 丹阳市| 遵义市| 元朗区| 鄄城县| 开江县| 柏乡县| 襄城县| 酒泉市| 闻喜县| 神池县| 涿州市| 西宁市| 阿克陶县| 环江| 吉木乃县| 晋中市| 禄劝| 武宣县| 海丰县| 大田县| 吉木乃县| 湘乡市| 乌兰察布市| 凌云县| 建平县| 玉门市| 溧水县| 屏山县| 松原市| 巴南区| 合作市| 肇州县| 红安县| 察雅县| 房产| 门源| 赣榆县| 肃宁县| 中超| 内丘县|