主要應用於語音識別、音字轉換、詞性標註。
自然語言是人類交流資訊的工具。很多自然語言處理問題都可以等同於通訊系統中的解碼問題--一個人根據接收到的資訊,去猜測發話人要表達的意思。這其實就象通訊中,人們根據接收端收到的訊號去分析、理解、還原發送端傳送過來的資訊。比如一個典型的通訊系統中:其中s1,s2,s3...表示資訊源發出的訊號。o1,o2,o3...是接受器接收到的訊號。通訊中的解碼就是根據接收到的訊號o1,o2,o3...還原出發送的訊號s1,s2,s3...。
其實人們平時在說話時,腦子就是一個資訊源。人們的喉嚨(聲帶),空氣,就是如電線和光纜般的通道。聽眾耳朵的就是接收端,而聽到的聲音就是傳送過來的訊號。根據聲學訊號來推測說話者的意思,就是語音識別。這樣說來,如果接收端是一臺計算機而不是人的話,那麼計算機要做的就是語音的自動識別。同樣,在計算機中,如果我們要根據接收到的英語資訊,推測說話者的漢語意思,就是機器翻譯;如果我們要根據帶有拼寫錯誤的語句推測說話者想表達的正確意思,那就是自動糾錯。那麼怎麼根據接收到的資訊來推測說話者想表達的意思呢?人們可以利用叫做"隱含馬爾可夫模型" (HiddenMarkovModel) 來解決這些問題。以語音識別為例,當我們觀測到語音訊號o1,o2,o3時,要根據這組訊號推測出傳送的句子s1,s2,s3。顯然,人們應該在所有可能的句子中找最有可能性的一個。用數學語言來描述,就是在已知o1,o2,o3,...的情況下,求使得條件機率
P(s1,s2,s3,...|o1,o2,o3....)達到最大值的那個句子s1,s2,s3,...
當然,上面的機率不容易直接求出,於是人們可以間接地計算它。利用貝葉斯公式並且省掉一個常數項,可以把上述公式等價變換成
P(o1,o2,o3,...|s1,s2,s3....)*P(s1,s2,s3,...)
其中
P(o1,o2,o3,...|s1,s2,s3....)表示某句話s1,s2,s3...被讀成o1,o2,o3,...的可能性,而
P(s1,s2,s3,...)表示字串s1,s2,s3,...本身能夠成為一個合乎情理的句子的可能性,所以這個公式的意義是用傳送訊號為s1,s2,s3...這個數列的可能性乘以s1,s2,s3...本身可以一個句子的可能性,得出機率。
(讀者讀到這裡也許會問,你現在是不是把問題變得更復雜了,因為公式越寫越長了。彆著急,就來簡化這個問題。)人們們在這裡做兩個假設:
第一,s1,s2,s3,...是一個馬爾可夫鏈,也就是說,si只由si-1決定(詳見系列一);
第二,第i時刻的接收訊號oi只由傳送訊號si決定(又稱為獨立輸出假設,即P(o1,o2,o3,...|s1,s2,s3....)=P(o1|s1)*P(o2|s2)*P(o3|s3)...。
那麼人們就可以很容易利用演算法Viterbi找出上面式子的最大值,進而找出要識別的句子s1,s2,s3,...。
滿足上述兩個假設的模型就叫隱含馬爾可夫模型。我們之所以用“隱含”這個詞,是因為狀態s1,s2,s3,...是無法直接觀測到的。
隱含馬爾可夫模型的應用遠不只在語音識別中。在上面的公式中,如果我們把s1,s2,s3,...當成中文,把o1,o2,o3,...當成對應的英文,那麼人們就能利用這個模型解決機器翻譯問題;如果我們把o1,o2,o3,...當成掃描文字得到的影象特徵,就能利用這個模型解決印刷體和手寫體的識別。
P(o1,o2,o3,...|s1,s2,s3....)根據應用的不同而又不同的名稱,在語音識別中它被稱為“聲學模型”(AcousticModel),在機器翻譯中是“翻譯模型”(TranslationModel)而在拼寫校正中是“糾錯模型”(CorrectionModel)。而P(s1,s2,s3,...)就是我們在系列一中提到的語言模型。
在利用隱含馬爾可夫模型解決語言處理問題前,先要進行模型的訓練。常用的訓練方法由伯姆(Baum)在60年代提出的,並以他的名字命名。隱含馬爾可夫模型在處理語言問題早期的成功應用是語音識別。七十年代,當時IBM的FredJelinek(賈里尼克)和卡內基·梅隆大學的JimandJanetBaker(貝克夫婦,李開復的師兄師姐)分別獨立地提出用隱含馬爾可夫模型來識別語音,語音識別的錯誤率相比人工智慧和模式匹配等方法降低了三倍(從30%到10%)。八十年代李開復博士堅持採用隱含馬爾可夫模型的框架,成功地開發了世界上第一個大詞彙量連續語音識別系統Sphinx。
馬爾可夫模型的使用方法
它可以用來預測具有等時間隔(如一年)的時刻點上各類人員的分佈狀況。
它是根據歷史資料,預測等時間間隔點上的各類人員分佈狀況。此方法的基本思想上根據過去人員變動的規律,推測未來人員變動的趨勢。步驟如下:
①根據歷史資料推算各類人員的轉移率,遷出轉移率的轉移矩陣;
②統計作為初始時刻點的各類人員分佈狀況;
使用馬爾科夫模型進行人力資源供給預測的關鍵是確定出人員轉移率矩陣表,而在實際預測時,由於受各種因素的影響,人員轉移率是很難準確確定出來的,往往都是一種大致的估計,因此會影響到預測結果的準確性。
主要應用於語音識別、音字轉換、詞性標註。
自然語言是人類交流資訊的工具。很多自然語言處理問題都可以等同於通訊系統中的解碼問題--一個人根據接收到的資訊,去猜測發話人要表達的意思。這其實就象通訊中,人們根據接收端收到的訊號去分析、理解、還原發送端傳送過來的資訊。比如一個典型的通訊系統中:其中s1,s2,s3...表示資訊源發出的訊號。o1,o2,o3...是接受器接收到的訊號。通訊中的解碼就是根據接收到的訊號o1,o2,o3...還原出發送的訊號s1,s2,s3...。
其實人們平時在說話時,腦子就是一個資訊源。人們的喉嚨(聲帶),空氣,就是如電線和光纜般的通道。聽眾耳朵的就是接收端,而聽到的聲音就是傳送過來的訊號。根據聲學訊號來推測說話者的意思,就是語音識別。這樣說來,如果接收端是一臺計算機而不是人的話,那麼計算機要做的就是語音的自動識別。同樣,在計算機中,如果我們要根據接收到的英語資訊,推測說話者的漢語意思,就是機器翻譯;如果我們要根據帶有拼寫錯誤的語句推測說話者想表達的正確意思,那就是自動糾錯。那麼怎麼根據接收到的資訊來推測說話者想表達的意思呢?人們可以利用叫做"隱含馬爾可夫模型" (HiddenMarkovModel) 來解決這些問題。以語音識別為例,當我們觀測到語音訊號o1,o2,o3時,要根據這組訊號推測出傳送的句子s1,s2,s3。顯然,人們應該在所有可能的句子中找最有可能性的一個。用數學語言來描述,就是在已知o1,o2,o3,...的情況下,求使得條件機率
P(s1,s2,s3,...|o1,o2,o3....)達到最大值的那個句子s1,s2,s3,...
當然,上面的機率不容易直接求出,於是人們可以間接地計算它。利用貝葉斯公式並且省掉一個常數項,可以把上述公式等價變換成
P(o1,o2,o3,...|s1,s2,s3....)*P(s1,s2,s3,...)
其中
P(o1,o2,o3,...|s1,s2,s3....)表示某句話s1,s2,s3...被讀成o1,o2,o3,...的可能性,而
P(s1,s2,s3,...)表示字串s1,s2,s3,...本身能夠成為一個合乎情理的句子的可能性,所以這個公式的意義是用傳送訊號為s1,s2,s3...這個數列的可能性乘以s1,s2,s3...本身可以一個句子的可能性,得出機率。
(讀者讀到這裡也許會問,你現在是不是把問題變得更復雜了,因為公式越寫越長了。彆著急,就來簡化這個問題。)人們們在這裡做兩個假設:
第一,s1,s2,s3,...是一個馬爾可夫鏈,也就是說,si只由si-1決定(詳見系列一);
第二,第i時刻的接收訊號oi只由傳送訊號si決定(又稱為獨立輸出假設,即P(o1,o2,o3,...|s1,s2,s3....)=P(o1|s1)*P(o2|s2)*P(o3|s3)...。
那麼人們就可以很容易利用演算法Viterbi找出上面式子的最大值,進而找出要識別的句子s1,s2,s3,...。
滿足上述兩個假設的模型就叫隱含馬爾可夫模型。我們之所以用“隱含”這個詞,是因為狀態s1,s2,s3,...是無法直接觀測到的。
隱含馬爾可夫模型的應用遠不只在語音識別中。在上面的公式中,如果我們把s1,s2,s3,...當成中文,把o1,o2,o3,...當成對應的英文,那麼人們就能利用這個模型解決機器翻譯問題;如果我們把o1,o2,o3,...當成掃描文字得到的影象特徵,就能利用這個模型解決印刷體和手寫體的識別。
P(o1,o2,o3,...|s1,s2,s3....)根據應用的不同而又不同的名稱,在語音識別中它被稱為“聲學模型”(AcousticModel),在機器翻譯中是“翻譯模型”(TranslationModel)而在拼寫校正中是“糾錯模型”(CorrectionModel)。而P(s1,s2,s3,...)就是我們在系列一中提到的語言模型。
在利用隱含馬爾可夫模型解決語言處理問題前,先要進行模型的訓練。常用的訓練方法由伯姆(Baum)在60年代提出的,並以他的名字命名。隱含馬爾可夫模型在處理語言問題早期的成功應用是語音識別。七十年代,當時IBM的FredJelinek(賈里尼克)和卡內基·梅隆大學的JimandJanetBaker(貝克夫婦,李開復的師兄師姐)分別獨立地提出用隱含馬爾可夫模型來識別語音,語音識別的錯誤率相比人工智慧和模式匹配等方法降低了三倍(從30%到10%)。八十年代李開復博士堅持採用隱含馬爾可夫模型的框架,成功地開發了世界上第一個大詞彙量連續語音識別系統Sphinx。
馬爾可夫模型的使用方法
它可以用來預測具有等時間隔(如一年)的時刻點上各類人員的分佈狀況。
它是根據歷史資料,預測等時間間隔點上的各類人員分佈狀況。此方法的基本思想上根據過去人員變動的規律,推測未來人員變動的趨勢。步驟如下:
①根據歷史資料推算各類人員的轉移率,遷出轉移率的轉移矩陣;
②統計作為初始時刻點的各類人員分佈狀況;
使用馬爾科夫模型進行人力資源供給預測的關鍵是確定出人員轉移率矩陣表,而在實際預測時,由於受各種因素的影響,人員轉移率是很難準確確定出來的,往往都是一種大致的估計,因此會影響到預測結果的準確性。