自然語言處理中常用的維特比算法

抽象層面來看Viterbi

t 時刻的狀態(tài)會依賴于 t-1 時刻 的狀態(tài)和 t 時刻的可觀察的狀態(tài)。

上述中,t 時刻的狀態(tài) 和 t-1時刻的狀態(tài)稱之為隱狀態(tài),也是需要求出的狀態(tài),可觀察的狀態(tài)為顯狀態(tài)

Viterbi算法解決的問題是:通過顯狀態(tài)序列 ** 求出 最有可能的隱狀態(tài)序列**

顯狀態(tài):有限個 隱狀態(tài):有限個 且 較少

怎么求 ? 概率

當前 已知 t-1 t t+1時刻 的觀察序列 以及 觀察序列到某個隱狀態(tài)的概率 以及隱狀態(tài)之間的轉(zhuǎn)移概率 ,可以推斷出 t-1 t t+1 時刻的 隱狀態(tài)序列

在 t-1 時刻隱狀態(tài)事件發(fā)生, 與 t 時刻 隱狀態(tài)事件同時發(fā)生的概率= t-1時刻該隱狀態(tài)事件發(fā)生的概率 * t-1時刻該隱狀態(tài)事件 轉(zhuǎn)移到 t時刻事件 的 轉(zhuǎn)移概率 * t 時刻隱狀態(tài)發(fā)生時出現(xiàn)當前顯狀態(tài)的條件概率?!?】

概率最大時即為此顯狀態(tài)對應的最有可能的隱狀態(tài)。依次計算,可得全部時刻隱狀態(tài)序列

舉例

以經(jīng)典的天氣事件為例,通過某個人的行為表現(xiàn)推測當天的天氣(當然反過來也行),

取 t=2,第 1、 2、 3 天的天氣的狀態(tài)(晴,雨)為隱狀態(tài),我個人的行為(散步,購物,打掃)為顯狀態(tài)。定義

(1) 某天天氣晴天或者雨天的概率,比如為0.6 0.4 稱為 初始概率

(2) t-1 天天氣狀態(tài)轉(zhuǎn)移到 t 天天氣狀態(tài)的轉(zhuǎn)移概率,假如第一天下雨,第二天下雨的概率為0.7 第二天天晴概率為 0.3 稱為 轉(zhuǎn)移概率

(3) 某種天氣狀態(tài)出現(xiàn)時,我個人行為發(fā)生的條件概率,即 下雨情況我可能干嘛的概率,如散步0.1 購物 0.4 打掃 0.5 稱為 發(fā)射概率

假設(shè)連續(xù)三天,我的行為分別為 散步 購物 打掃 那 這三天的天氣最有可能是什么樣的?

根據(jù)公式 【1】,依次計算第一天、第二天、第三天的天氣發(fā)生概率,取最大值的序列為最后的結(jié)果。 如此處計算的結(jié)果為 晴-> 雨-> 雨。 事實上一定是這樣嗎?當然不是,以上概率的設(shè)定,計算的結(jié)果都是很粗糙的,只是表明算法的作用,效果跟具體的數(shù)據(jù)有關(guān)系。

應用

那么,這種求隱狀態(tài)序列的算法,在自然語言處理有什么作用呢? 可解決很多序列標注問題

比如,詞性標注,給定詞的序列,根據(jù)算法計算最有可能的詞性序列

比如,命名實體識別,給定詞的序列,根據(jù)算法計算最有可能的 實體序列

比如,自動添加標點符號,給定詞的序列,詞性的序列,根據(jù)算法計算最有可能的標點序列

公眾號:netrookie
原文:http://netrookie.cn/viterbi/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容