HMM 中文分詞

隱馬爾科夫模型 HMM 通常用于處理時(shí)間序列數(shù)據(jù)亡容,數(shù)據(jù)包含長度一樣的隱藏狀態(tài)和觀測序列忍疾,可以通過觀測數(shù)據(jù)預(yù)測出隱藏狀態(tài)沸毁。例如在分詞時(shí)问窃,觀測序列是 ”我喜歡計(jì)算機(jī)“亥鬓,其中每個(gè)字對應(yīng)的隱藏狀態(tài)是 ”SBEBME“。HMM 也可以用于語音識別泡躯,給定一段音頻 (觀測序列)贮竟,識別出里面的每個(gè)文字 (隱藏狀態(tài))。

1. 馬爾科夫模型

假設(shè)系統(tǒng)擁有不同的狀態(tài)较剃,每個(gè)時(shí)刻狀態(tài)都會(huì)發(fā)生變化咕别,我們可以用馬爾科夫模型總結(jié)出系統(tǒng)狀態(tài)變化的規(guī)律。以天氣變化為例写穴,現(xiàn)在有三種天氣 {晴天惰拱,雨天,多云}啊送,和很多天的天氣狀態(tài)序列 D1, D2, D3,..., DM偿短。則我們可以根據(jù)前 n 天的天氣,預(yù)測第 M+1 個(gè)天氣狀態(tài)的概率馋没。

馬爾科夫模型

這也稱為 n 階馬爾科夫模型昔逗,即當(dāng)前狀態(tài)僅依賴于前面 n 個(gè)狀態(tài),通常比較常用的是一階馬爾科夫模型篷朵,即當(dāng)前預(yù)測的狀態(tài)僅依賴于前一時(shí)刻的狀態(tài)勾怒。

一階馬爾科夫模型可以定義一個(gè)狀態(tài)轉(zhuǎn)移矩陣 TT 的行數(shù)和列數(shù)均等于狀態(tài)個(gè)數(shù)声旺,T 描述了從一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài)的概率笔链,如下圖所示。

一階馬爾科夫模型狀態(tài)轉(zhuǎn)移矩陣

即如果今天是雨天腮猖,則明天是晴天的概率是 0.3鉴扫。除了狀態(tài)轉(zhuǎn)移矩陣,還需要定義一個(gè)初始概率向量 I澈缺,表示第一天時(shí)坪创,每種天氣狀態(tài)的概率。初始概率向量如下:

初始概率向量

總的來說姐赡,定義一個(gè)一階馬爾科夫模型需要:

  • 狀態(tài):晴天误堡、雨天、多云
  • 狀態(tài)轉(zhuǎn)移矩陣 T
  • 初始概率向量 I

馬爾科夫模型還有一個(gè)性質(zhì)雏吭,不管今天的天氣如何锁施,在很多天之后的狀態(tài)分布會(huì)收斂到一個(gè)固定的概率分布,稱為穩(wěn)態(tài)分布。例如第一天是晴天悉抵,給定的 T 如上文所示肩狂,則很多天 (n天) 之后的概率分布 p 為:

n 天后的概率分布

這是因?yàn)?T 自乘無窮次之后,每一行的數(shù)值都是一樣的姥饰,因此不管第一天天氣如何傻谁,無窮天后的概率分布都是穩(wěn)定的。

穩(wěn)態(tài)分布

2. 隱馬爾科夫模型

2.1 HMM

有的時(shí)候我們只能看到觀察的序列列粪,而不能直接看到隱藏的狀態(tài)审磁,此時(shí)就需要使用隱馬爾科夫模型。例如有一個(gè)被關(guān)在一個(gè)密閉的房間里岂座,沒辦法查看到天氣态蒂,但是可以通過一個(gè)濕度計(jì)查看濕度。

由于濕度 (觀察狀態(tài)) 和天氣 (隱藏狀態(tài)) 之間存在聯(lián)系费什,HMM 可以根據(jù)給出的觀測狀態(tài)序列钾恢,估計(jì)出對應(yīng)的隱藏狀態(tài)序列,同時(shí)可以對未來的隱藏狀態(tài)和觀察狀態(tài)進(jìn)行預(yù)測鸳址。

隱馬爾科夫模型還需要增加一個(gè)發(fā)射概率矩陣 E瘩蚪,E 的行數(shù)等于隱藏狀態(tài)個(gè)數(shù),列數(shù)為觀察狀態(tài)個(gè)數(shù)稿黍,Eij 表示隱藏狀態(tài)為 i 時(shí)疹瘦,觀察狀態(tài)為 j 的概率。

發(fā)射概率矩陣

總的來說巡球,定義一個(gè)一階隱馬爾科夫模型以下參數(shù)言沐,這些就是 HMM 的參數(shù):

  • 隱藏狀態(tài) S:晴天、雨天辕漂、多云
  • 觀察狀態(tài) O:干燥呢灶、適中吴超、潮濕
  • 狀態(tài)轉(zhuǎn)移矩陣 T
  • 初始概率向量 I
  • 發(fā)射概率矩陣 E

2.2 隱馬爾科夫模型的三個(gè)問題

隱馬爾科夫模型比較常見的三個(gè)問題分別是:評估問題钉嘹,解碼問題和學(xué)習(xí)問題。

評估問題:我們已經(jīng)知道模型的參數(shù) (S, O, T, I, E)鲸阻,給定一個(gè)觀測序列 X (例如 干燥跋涣、干燥、潮濕鸟悴、....陈辱、適中),評估問題要計(jì)算出得到這樣一個(gè)觀測序列 X 的概率值细诸。求解評估問題的方法有前向算法后向算法沛贪。

解碼問題:已經(jīng)知道模型的參數(shù) (S, O, T, I, E),給定一個(gè)觀測序列 X,找出使觀測序列概率最大的隱藏狀態(tài)序列 Y利赋。求解的方法有 Viterbi 算法水评。

學(xué)習(xí)問題:學(xué)習(xí)問題是指在未知模型參數(shù)的時(shí)候,通過數(shù)據(jù)集學(xué)習(xí)出模型的參數(shù) (S, O, T, I, E)媚送。學(xué)習(xí)問題包監(jiān)督學(xué)習(xí)方法和非監(jiān)督學(xué)習(xí)方法中燥,如果我們同時(shí)擁有觀察序列 X 和狀態(tài)序列 Y,則可以采用監(jiān)督學(xué)習(xí)塘偎;如果只有觀測序列 X疗涉,則只能采用非監(jiān)督學(xué)習(xí),非監(jiān)督學(xué)習(xí)的算法有 Baum-Welch 算法吟秩。

3. HMM 中文分詞

HMM 可以用于中文分詞的任務(wù)咱扣,其隱藏狀態(tài)包含 4 種,分別是 SBME峰尝,S 表示單個(gè)字的詞偏窝,而 B 表示多字詞的第一個(gè)字,M 表示多字詞中間的字武学,E 表示多字詞最后一個(gè)字祭往,如下圖所示。

中文分詞

用 HMM 進(jìn)行中文分詞火窒,要通過觀察序列找出最有可能的隱藏狀態(tài)序列硼补,主要涉及學(xué)習(xí)問題解碼問題

3.1 中文分詞學(xué)習(xí)問題

可以使用已經(jīng)標(biāo)注好的數(shù)據(jù) (即有觀察序列 X 和隱藏狀態(tài)序列 Y) 的數(shù)據(jù)集進(jìn)行有監(jiān)督學(xué)習(xí)熏矿。數(shù)據(jù)集包含很多句子已骇,每個(gè)句子都有 XY。那么我們就可以通過統(tǒng)計(jì)得到 HMM 的狀態(tài)轉(zhuǎn)移矩陣票编、發(fā)射矩陣和初始概率向量褪储。

狀態(tài)轉(zhuǎn)移矩陣 TTij 表示從狀態(tài) i 轉(zhuǎn)移到狀態(tài) j 的概率,需要統(tǒng)計(jì)數(shù)據(jù)集里面從狀態(tài) i 轉(zhuǎn)移到 狀態(tài) j 的個(gè)數(shù) Aij慧域,然后除以狀態(tài) i 轉(zhuǎn)移到所有狀態(tài)的個(gè)數(shù) Ai鲤竹。

狀態(tài)轉(zhuǎn)移矩陣

例如我們可以用下面的公式計(jì)算從狀態(tài) B 轉(zhuǎn)到狀態(tài) E 的概率:

從狀態(tài) B 轉(zhuǎn)到狀態(tài) E 的概率

中文分詞的時(shí)候是不存在從狀態(tài) B 到狀態(tài) B 的,也不存在 B 到 S昔榴,所以 Count(BB) 和 Count(BS) 都是 0辛藻。

發(fā)射概率矩陣 EEij 表示在狀態(tài) i 時(shí)得到觀察值 j 的概率。計(jì)算方法是統(tǒng)計(jì)狀態(tài) i 且觀察值為 j 的個(gè)數(shù) B互订,然后除以狀態(tài) i 的個(gè)數(shù)吱肌。

初始概率向量 I:I 只要統(tǒng)計(jì)每個(gè)句子第一個(gè)狀態(tài),得到第一個(gè)狀態(tài)的概率分布即可仰禽。

3.2 中文分詞解碼問題

在學(xué)習(xí)得到 HMM 的參數(shù)后氮墨,可以通過 HMM 解碼算法 (Viterbi 算法) 求解出句子的隱狀態(tài)纺蛆,最終分詞。具體做法可以參考《統(tǒng)計(jì)學(xué)習(xí)方法》规揪。

4.參考文獻(xiàn)

《統(tǒng)計(jì)學(xué)習(xí)方法》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犹撒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粒褒,更是在濱河造成了極大的恐慌识颊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奕坟,死亡現(xiàn)場離奇詭異祥款,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)月杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門刃跛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苛萎,你說我怎么就攤上這事桨昙。” “怎么了腌歉?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵蛙酪,是天一觀的道長。 經(jīng)常有香客問我翘盖,道長桂塞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任馍驯,我火速辦了婚禮阁危,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汰瘫。我一直安慰自己狂打,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布混弥。 她就那樣靜靜地躺著趴乡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剑逃。 梳的紋絲不亂的頭發(fā)上浙宜,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天官辽,我揣著相機(jī)與錄音蛹磺,去河邊找鬼。 笑死同仆,一個(gè)胖子當(dāng)著我的面吹牛萤捆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俗或,長吁一口氣:“原來是場噩夢啊……” “哼市怎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辛慰,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤区匠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后帅腌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驰弄,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年速客,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戚篙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溺职,死狀恐怖岔擂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浪耘,我是刑警寧澤乱灵,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站七冲,受9級特大地震影響阔蛉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜癞埠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一状原、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苗踪,春花似錦颠区、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颅夺,卻和暖如春朋截,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吧黄。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工部服, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拗慨。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓廓八,卻偏偏與公主長得像奉芦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子剧蹂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355