一個數學家數了數小說中 20000 個字母,然後誕生了語言識別模型

2021-01-15 開源中國

語言識別模型源於一個數學家讀小說的故事。

1913年,俄羅斯數學家安德雷·安德耶維齊·馬爾科夫拿起一本俄羅斯文學的經典作品,亞歷山大·普希金的歌劇小說《尤金·奧涅金》。不過馬爾科夫只是為了測試自1909年發展起來的概率論。數學家更想看到一個個字母後面的數學結構。

那時的概率論主要用來分析輪盤賭局和硬幣翻轉等現象,認為之前的結果不會影響到的當前事件的可能性。但是馬爾科夫不贊同,他覺得大多數事情都有因果關係,他想要通過概率分析一些事情,並建立模型。

德雷·安德耶維齊·馬爾科夫

《尤金·奧涅金》成為馬爾科夫的試驗材料。他的假設聽上去匪夷所思——這本經典文學作品中,某個位置會出現什麼字母,某種程度上取決於它之前的字母。

計算機還沒出現的1913,馬爾科夫抄錄了《尤金·奧涅金》書中的前 20000 個字母,不包括標點和空格。然後按10*10的排列方式,填在200個網格中,開始逐行逐列對元音字母進行計數。統計完發現,43%的字母是元音,57%是輔音。

馬爾科夫還將這些字母分成成對的元音和輔音組合,結果是:1104個元音對、3827個輔音對、15069個元音-輔音和輔音-原因對。從統計學看,這證明,在普希金文本中的任何給定字母,如果是元音,則下一字母可能是輔音,反之亦然。

馬爾科夫用這個結果證明《尤金·奧涅金》的文本不是字母的隨機分布,而是具有可以建模的基本統計的性質。後來,人們稱馬爾科夫這是給自己的數學技能找到一個實際用途——用鏈模型來模擬俄羅斯文學中輔音和元音的頭韻法。

鏈模型就是馬爾科夫鏈,又稱離散時間馬爾科夫鏈,指在狀態空間中,從一個狀態轉換到另一個狀態的隨機過程,該過程是「無記憶」性質的,下一狀態的概率分布只能由當前狀態決定。

馬爾科夫在隨機過程領域的研究成果還有馬爾科夫決策過程,它提供面對部分隨機、部分可由人類決策的狀態下,如何進行決策,經過演化,被廣泛應用在機器人學、自動化控制等領域。

在馬爾科夫鏈衍和馬爾科夫決策過程理論基礎上,20世紀60年代,Leonard E. Baum 和其它一些作者描述了一種隱性馬爾科夫模型,這是大多數現在自動語音識別系統的基礎。

維基百科上有一個事例來解釋隱形馬爾科夫模型。

假設你有一個住的很遠的朋友,他會每天打電話說當天做了什麼。他只會做三件事:公園散步、購物、清理房間,他根據天氣選擇做什麼事。你不知道他住處每天的天氣怎麼樣,但是你知道總趨勢,在他告訴你每天做了什麼事情的基礎上,你要猜測他所在地的天氣狀況。

也就是說,在這個隱形馬爾科夫模型中,「雨」和「晴」的狀態對你來說是隱藏的,可觀察的數據就是「公園散步」、「購物」、「清理房間」,那麼用 Python 寫下來就是:

在這些代碼中,start_probability 代表第一次打電話的不確定性,此時概率分布不平均。transition_probability 表示基於馬爾科夫鏈模型的天氣變遷。emission_probability 表示了你朋友每天做某件事的概率。

再以語音系統為例,隱形馬爾科夫模型在語音處理上,可以通過隱藏條件猜測下一個音,具體可從語義和發音兩方面看。一是單字的發音有前後關係,如英語中的"They are"常常發音成"They're",或是"Did you"會因為"you"的發音受"did"的影響,常常發音成"did ju"。

語音識別需要考慮到每個音節的前後關係,才能有較高的準確率。二是,句子中的前後字節間的關係,比如英文中動詞後常接固定介詞或對應名詞,中文也類似。

當然,從馬爾科夫數字母,到隱性馬爾科夫模型的提出,再到語言識別、生成模型應用,期間還有很多人提出了各種各樣的理論。其中影響比較大的是資訊理論創造者克勞德·艾爾伍德·香農。

香農對馬爾科夫數字母背後的思想很是著迷,像馬爾科夫一樣,香農嘗試建立語言的統計模型,通過統計規則生成文本。

香農最初的實驗,通過26個字母加1個空格,共計27個符號,隨機抽取字母生成句子,每個字母概率相同,得到:

XFOML RXKHRJFFJUJ ZLPWCFWKCYJ FFJEYVKCQSGHYD QPAAMKBZAACIBZLHJQD

香農說生成的這句話毫無意義,因為當我們交流時,不會選擇同等概率的字母組合。正如馬爾科夫的實驗表明,輔音比元音更可能出現。但是在更高的粒度上,E 比 S 更普遍,S 比 Q 更普遍。

為了解決這個問題,香農修改了原始實驗字母,使其更精確模擬英語中每個字母出現的概率。比如 E 出現的概率比 Q 高11%,這樣得出一個新的結果,更接近一個正確的句子:

OCRO HLI RGWR NMIELWIS EU LL NBNESEBYA THEI EEI ALHENHTTPA OOBTTVA NAH BRL

在之後的系列實驗中,香農證明了,隨著統計模型變得更加複雜,可以得到更容易理解的結果。

馬爾科夫和香農的實驗,被看做是對語言的統計屬性進行建模提供了一種新的思路,他們的語言建模和生成的統計方法為自然語言處理開創了一個新的時代。

相關焦點

  • 一個數學家數了數小說中 20000 個字母,然後誕生了語言識別模型
    語言識別模型源於一個數學家讀小說的故事。1913年,俄羅斯數學家安德雷·安德耶維齊·馬爾科夫拿起一本俄羅斯文學的經典作品,亞歷​​山大·普希金的歌劇小說《尤金·奧涅金》。不過馬爾科夫只是為了測試自1909年發展起來的概率論。數學家更想看到一個個字母後面的數學結構。那時的概率論主要用來分析輪盤賭局和硬幣翻轉等現象,認為之前的結果不會影響到的當前事件的可能性。
  • 語言識別模型的起源,一個數學家數了數小說中的 20000 字母
    語言識別模型源於一個數學家讀小說的故事。1913 年,俄羅斯數學家安德雷 · 安德耶維齊 · 馬爾科夫拿起一本俄羅斯文學的經典作品,亞歷山大 · 普希金的歌劇小說《尤金 · 奧涅金》。不過馬爾科夫只是為了測試自 1909 年發展起來的概率論。數學家更想看到一個個字母後面的數學結構。
  • 語言識別模型源於一個數學家讀小說的故事
    語言識別模型源於一個數學家讀小說的故事。1913 年,俄羅斯數學家安德雷 · 安德耶維齊 · 馬爾科夫拿起一本俄羅斯文學的經典作品,亞歷山大 · 普希金的歌劇小說《尤金 · 奧涅金》。不過馬爾科夫只是為了測試自 1909 年發展起來的概率論。數學家更想看到一個個字母後面的數學結構。
  • 無窮大是最大的數嗎? 數學中最大的數是多少?
    這最終演變成符號語言,然後在沙子、牆壁和木頭等物體上作標記。 我們已經向前發展了一大步,現在我們使用計算器和計算機   原標題:無窮大是最大的數嗎? 數學中最大的數是多少?      人類已經使用數長達千年之久。
  • 素數的魅力使得數千年來數學家們前赴後繼地投身於對它研究中
    素數,可以說是數學領域中最龐大、最古老的數據集,數學家們歷經2300年的努力一直在不斷探索它的奧秘。作為一名致力於「朗蘭茲綱領」研究的數學家,我對素數的研究歷史以及揭示素數奧秘的研究進展有著濃厚的興趣。那麼是什麼吸引無數傑出的數學家,數千年來前赴後繼地投身於素數研究中?
  • 「愛情數」是什麼?數學家:萬物皆數,數字與愛情有什麼聯繫?
    2000多年後的17世紀,法國業餘數學家費馬發現了一種與完滿數密切相關的數,這就是「親和數」,也被叫做「愛情數」,「友誼數」。所謂的親和數並不是一個數,而是一對數。親和數的定義為:每一個數是另外一個數的因數之和。其中最著名的一對親和數就是220和284。
  • 圓周率,不得不說的一個數
    圓周率與圓周率的計算+圓周率簡介圓周率π(Ratio of circumference to diameter;Pi)是圓的周長與直徑的比值,一般用希臘字母π表示,是一個在數學及物理學中普遍存在的數學常數。π也等於圓形之面積與半徑平方之比。
  • 迴文數與無釐頭的冰雹
    有趣的是,數學裡也有一種叫迴文數的遊戲。大約在公元850年,印度數學家馬哈維拉撰寫了《計算精華》一書,該書曾在南印度被廣泛使用。1912年,這部書被譯成英文在馬德拉斯(現改名金奈)出版,成為印度第一部初具現代形式的教科書。書中提到了「花環數」,即將兩整數相乘,使其乘積的數呈中心對稱,此即「迴文數」。
  • c語言abc三個數比大小_歷時8年終獲發表,日本數學家證明abc猜想,將...
    接著,我們把abc的質因數都提取出來,比如5、16、21的質因數是5、2、3、7,這些質因數相乘的結果為210,這個數比原來的三個數大得多。又比如5、27、32,它們的質因數是5、3、2,相乘結果為30,就比32小。但第二種情形極為罕見。如果a和b都是小於100的數,我們能找到3044個符合條件的abc組合,其中只有7組滿足第二種情形。
  • 自然語言處理起源:馬爾科夫和香農的語言建模實驗
    但是馬爾科夫並沒有真的在讀這篇著名的文章,而是拿起了一支筆和一張草稿紙,去掉了這本書的前 2 萬個字母中所有的標點符號和空格,記成了一長串字母。然後,他又把這些字母放進了 200 個網格中(每個網格有 10×10 個字符),並對每行每列中元音的數量進行統計,然後將這些結果進行了整理。
  • 圓周率π,不得不說的一個數
    圓周率與圓周率的計算+圓周率簡介圓周率π(Ratio of circumference to diameter;Pi)是圓的周長與直徑的比值,一般用希臘字母π表示,是一個在數學及物理學中普遍存在的數學常數。π也等於圓形之面積與半徑平方之比。
  • 一對一的數數從未開化到文明|數學與生活
    這線索就是考察在文明進步中遺留下來的未開化人的數學,另外就是觀察在幼兒當中,數的概念是怎樣建立的。首先產生的問題是,除了人類以外是否真有動物了解數?就像經濟學家亞當斯密說的那樣:「數是人類在精神上製造出來的最抽象的概念。」確實,即使像1,2這樣最簡單的數,要是和其他語言相比較,也是很抽象的,除了人之外,其他動物好像還沒有知道數的。然而有人認為鳥知道數。
  • 數也要Perfect?完美數是個什麼鬼?
    這些數都有一些神奇的特性,因此科學家們賦予它們一個美好的名字—— 完美數。早在公元前6世紀,古希臘數學家、哲學家畢達哥拉斯就發現了完美數的特性,他也是最早研究完美數的人,當時,他就已經知道6和28是完美數了。
  • 民間業餘數學家創造神跡,發現了黑洞數,震驚了整個數學界
    ,進行了嚴謹的驗證,結果發現:這300個不同的四位數中,均不超過七步操作,得出的結果就停留在6174,無法跳出來。經過多次的加減乘除迭代計算,連學生的作業本都拿來做草稿紙了,他終於發現:一個不完全相同的四位數,重新排列四位數中的四個數字得到最大和最小值,再作減法,最多7次迭代,都會得到6174這個神奇的數字!與此同時,卡普列加還發現三位數的黑洞數495。
  • 根號a是一個什麼樣的數?
    如果問a是一個什麼數?很多學生能夠很快答出這是一個任意的實數:可以是正的實數,也可以是負的實數,還可以是零,總之,字母a代表的是一個不確定的實數;如果從幾何的角度來理解數a,可以藉助數軸,理解為數軸上任意一個點所對應的數,或這個數對應的是數軸上的任意一個點.以a為底的b的對數是一個什麼樣的數呢?也就是是一個什麼樣的數呢?實際上,
  • 數中王者——葛立恆數
    今天的下午,屬於一個神奇的數字。葛立恆數!曾經被視為在正式數學證明中出現過最大的數,後來則被TREE(3)取代。先介紹下這個數是什麼,然後說幾點體會。從一些基本概念說起。也就是3↑3↑3↑3=3^7625597484987,這僅僅是最後四個箭頭的結果,前面還有762559748495個箭頭等待運算。而且每前進一個箭頭,這個數字都急劇膨脹。
  • 小學數學:怎樣數線段和角的個數?
    在一個圖形中數線段或角時,常常出現多數或少數的現象,怎樣不會出現重複或遺漏的情況呢?我們可以這樣做:一條線段上有若干個點,要數共有多少條線段,可先數出以左邊第一點為端點,其餘點為另一端點的線段的條數,然後再數出以左邊第二個點為端點,其餘點(第一個點除外)為另一個端點的線段條數,以此類推,直到數出最後一條線段為止,把這些條數相加即可。關於相交線中角的數法與線段類似,只是把線段的端點換成角的邊。
  • 無窮大是最大的數嗎?數學家都難以理解了
    無窮大只是一個概念,數學中無窮大的定義表明,無論數有多大,都可以讓它再加個1使它變得更大。通過不斷地這樣做,一個數總是可以一直永遠或「無限」變大。原來,在正式數學證明中使用過的最大數是葛立恆數,它此前作為世界上最大的數被收入于吉尼斯世界紀錄之中。它到底有多大呢?
  • Python識別完美數
    02 探索在茫茫數海中,第五個完美數(33550336)要大得多,居然藏在千萬位數的深處!它在十五世紀被人們發現,計算機問世後,藉助這一有力工具,數論愛好者們繼續探索。笛卡爾曾公開預言:「能找出的完美數是不會多的,好比人類一樣,要找一個完美人亦非易事。」時至今日,人們一直沒有發現有奇完美數的存在。於是是否存在奇完美數成為數論中的一大難題。
  • 「π日」說π:這麼複雜的一個數,是什麼來歷?
    而且,它不僅僅是無理數(根號2也是無理數),還是「超越數」——它並不能表達為任何一個有理代數方程的根,跟整個有理數的世界都是割裂的,獨立高冷到一定境界。著名數學家歐拉(Euler)提出π很可能是無理數,瑞士數學家朗伯(Johann Heinrich Lambert)在1761年首次給出了嚴密的證明,隨後,法國數學家勒讓德(Adrien-Marie Legendre)證明了π平方也是無理數;1882年,德國數學家林登曼(Ferdinand von Lindemann)給出了π是超越數的完備證明。