马尔可夫链算法原理与实现
馬爾可夫鏈算法原理與實現
@(ML)[machine learining]
- 馬爾可夫鏈算法原理與實現
- 一概述
- 二基本流程
- 1得到語句
- 2句子出現的概率
- 3馬爾可夫假設
- 4計算條件概率
- 5結果
(一)概述
參考自《數學之美》第3章
在計算機的早期時代,約1980前,科學家們傾向于模仿人類的思維來讓計算機讀懂自然語言。經過近20年的嘗試,被證明是不可行的,目前主流是基于統計的模型來對自然語言分析。即通過分析某個句子出現的概率來判斷這個句子是否合理,從而找出最大概率的句子,就是分析的結果。
統計語言模型產生的初衷是為了解決語音識別的問題。在語音識別中,計算機需要知道一個文字序列是否能構成一個大家理解而且有意義的兔子,然后顯示或者打印給使用者。
(二)基本流程
1、得到語句
計算機得到一個文字語句。比如分析語音得出的一個文字句子。
2、句子出現的概率
假設某個語句的組成詞語為
S = w1,w2,...,wn這個句子出現的概率為:
P(S)= P(w1,w2,...,wn)利用條件概率公式,S這個序列出現的概率等于每一個詞出現的條件概率相乘:
P(S)= P(w1,w2,...,wn)= P(w1)*P(w2|w1)*P(w3|w1,w2)...P(wn|w1,w2...wn-1)其中P(w1)表示第1個詞出現的概率,P(w2|w1)表示已知第一個詞的前提下,第二個詞出現的概率。
從計算上來看,計算第1個詞出現的概率是很簡單的,第2個也不難,第3個就開始很難了,10個以后基本就不可能算了。
3、馬爾可夫假設
馬爾可夫提出了一個頗為有效的方法,他假設任意一個詞wi出現的概率只與它前面的詞wi-1有關,于是問題就變得簡單了
P(S)= P(w1,w2,...,wn)= P(w1)*P(w2|w1)*P(w3|w2)...P(wn|wn-1)4、計算條件概率
有了馬爾可夫假設之后,剩下的問題就是怎么計算條件概率了,概率定義:
即已知wi-1的條件下,wi的出現概率為(wi-1,wi)同時出現的概率除以wi-1出現的概率。
現在問題就變得簡單了,我們有大量的文本,可以統計出(wi-1,wi)與wi-1出現的概率:
其中#表示全部詞的數量,#(wi-1)表示在這些文本中wi-1出現的數量。因此
5、結果
全部條件概率出來以后,將其相乘即可得到最終結果。
簡單小結一下,這種方法的原理在于計算每個詞在其上一個詞現出的前提下出現的概率。
總結
以上是生活随笔為你收集整理的马尔可夫链算法原理与实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spark on yarn
- 下一篇: storm目录结构及在zk中的目录结构