利用隱馬爾可夫(HMM) 進(jìn)行詞性標(biāo)注

引言

文章根據(jù)udacity自然語(yǔ)言處理進(jìn)行整理,提供給初學(xué)者進(jìn)行參考诱篷。主要圍繞隱馬爾可夫的基本實(shí)現(xiàn)原理和維特比算法進(jìn)行介紹。

相關(guān)參考學(xué)習(xí)視頻:

udacity--自然語(yǔ)言處理(PS:國(guó)外導(dǎo)師視頻課程尤泽,中文字幕脆淹。課程簡(jiǎn)潔易懂签杈、生動(dòng)形象瘫镇。具有項(xiàng)目實(shí)戰(zhàn)、導(dǎo)師項(xiàng)目審核特色答姥。比較推薦入門铣除。點(diǎn)擊此處可獲得課程優(yōu)惠券

1. 概述

在自然語(yǔ)言中,一個(gè)句子通常是由多個(gè)詞組成鹦付、包含形容詞尚粘、名詞、動(dòng)詞等等敲长。如下面的這個(gè)句子:Mary had a little lamb 郎嫁。如何找出每個(gè)詞對(duì)應(yīng)的詞性是問題的重點(diǎn)。這里將探討如何使用隱馬爾可夫模型進(jìn)行詞性標(biāo)注祈噪。

隱馬爾可夫模型還用于語(yǔ)音識(shí)別和語(yǔ)音生成泽铛、機(jī)器翻譯、生物信息學(xué)基因識(shí)別和計(jì)算機(jī)視覺人類手勢(shì)識(shí)別辑鲤,等等盔腔。

2. 隱馬爾可夫模型

介紹馬爾可夫模型的基本原理。

假設(shè)標(biāo)記句子 “Jane will spot Will ” 的方式是名詞月褥、情態(tài)動(dòng)詞弛随、動(dòng)詞、名詞宁赤。

需要計(jì)算兩種概率舀透,一是轉(zhuǎn)移概率,即名詞后面是情態(tài)動(dòng)詞决左、情態(tài)動(dòng)詞后面是動(dòng)詞愕够、動(dòng)詞后面是名詞的概率;另一種是發(fā)射概率哆窿,即 N 名詞是Jane链烈、情態(tài)動(dòng)詞是 will 等等的概率厉斟。如下圖

發(fā)射概率的計(jì)算

如下圖的一些句子挚躯,可以看作是語(yǔ)料。每個(gè)句子做了標(biāo)注擦秽。

發(fā)射概率的計(jì)算码荔,如果單詞是n(名詞) 漩勤,那該單詞是 Mary 或 Jane 的概率。為此缩搅,可先創(chuàng)建一個(gè)這樣的表格越败,如下圖所示。N硼瓣、M究飞、V 分別表示詞性。其中 Mary 在語(yǔ)料句子中作為 N 出現(xiàn)了 4次堂鲤。

之后將每列除以條目之和亿傅,獲得這些數(shù)字。如此就計(jì)算出了相應(yīng)的發(fā)射概率瘟栖。注意單詞可以重復(fù)出現(xiàn)葵擎,例如 will 即是名詞又是情態(tài)動(dòng)詞。

轉(zhuǎn)移概率的計(jì)算

首先需要給每個(gè)句子添加一個(gè)開始和結(jié)束的標(biāo)簽半哟。當(dāng)然這些標(biāo)簽也可以作為詞性〕曷耍現(xiàn)在創(chuàng)建計(jì)數(shù)表,計(jì)算每個(gè)詞性出現(xiàn)的次數(shù)寓涨。如下圖的 3 盯串,表示名詞N 后面出現(xiàn)的情態(tài)動(dòng)詞 M 的次數(shù)為 3 次。

為了計(jì)算概率缅茉,需要將每行中的條目除以行中條目的和嘴脾。如下圖情態(tài)動(dòng)詞動(dòng)詞M之后是名詞N的概率為 1/4; M情態(tài)動(dòng)詞之后是動(dòng)詞V的概率為 3/4 蔬墩。這個(gè)就是轉(zhuǎn)移概率译打。

最后一步就是將轉(zhuǎn)移概率和發(fā)射概率合并。形成馬爾可夫模型拇颅。如下圖所示

根據(jù)上圖的馬爾可夫模型奏司。來看具體的實(shí)現(xiàn)原理。從 <S> 開始樟插, <S> 到 N 的概率為 韵洋,即轉(zhuǎn)移概率為 3/4 。當(dāng) Jane 為 N 名詞時(shí)概率為 2/9 黄锤,即發(fā)射概率 2/9 搪缨。

再?gòu)?N 轉(zhuǎn)移到 M 的,轉(zhuǎn)移概率為1/3 鸵熟,生成 Will 的發(fā)射概率為 3/4 副编。然后再到 V ,最后后到 <E> 結(jié)束流强。如此計(jì)算痹届,便得到了一條句子的所有概率呻待。

之后將所有概率進(jìn)行相乘。得到了這個(gè)句子的概率為 0.0003858 队腐。這個(gè)值可能比較小蚕捉,但考慮到可以生成大量長(zhǎng)度不等的句子,該值已經(jīng)很大了柴淘。

通常做法是從所有可能的詞性組合中選擇生成概率最高的句子迫淹。如在下面的兩個(gè)句子中,生成的句子一樣为严,但詞性不同 千绪,導(dǎo)致概率也不一樣。選擇最大概率的組合作為最終的句子梗脾。

路徑裁剪

如果從所有可能的詞性組合中選擇生成概率最高的句子荸型。假如有這樣的一個(gè)句子: Jane will spot Will? 和 對(duì)應(yīng)的三種詞性 N、M炸茧、V瑞妇。找出所有可能的詞性組合。這里得到的詞性組合就等于 3 的4次方梭冠,即 81 種辕狰。這呈現(xiàn)一種指數(shù)計(jì)算,如果句子越長(zhǎng)控漠,那句子組合數(shù)量也將越大蔓倍。最終是需要找到概率最大的路徑,如果有 81 種路徑組合盐捷,意味著需要計(jì)算 81 次偶翅。這會(huì)影響計(jì)算效率到此需要使用 維特比算法來減少計(jì)算量。

在使用維特比算法之前碉渡,先進(jìn)行裁剪聚谁。我們計(jì)算概率是將所有的發(fā)射概率和轉(zhuǎn)移概率相乘,但如果路徑中有0 值滞诺,則可不用計(jì)算形导,因?yàn)?0 乘以任何數(shù)都為 0 。 如下圖中的概率值:

(備注: 下圖中僅對(duì) Jane will spot Will 做了發(fā)射概率的標(biāo)示习霹,即 Jane 是 N 名詞的概率為 2/9 朵耕。對(duì)照發(fā)射概率表為 2/9 。)

到此刪除發(fā)射概率和轉(zhuǎn)移概率中只要有 0 出現(xiàn)的路徑×芤叮現(xiàn)在可得到如下圖的模型阎曹。到此裁剪后的路徑為 4 條。

將4條路徑上的概率相乘,得到的結(jié)果進(jìn)行比較芬膝。可得到概率最大的路徑形娇,也就是最后需要的路徑锰霜。

維特比算法

在上面使用路徑裁剪的方式,將 81 種詞性組合路徑刪減為 4 種伟骨。還有一種算法歉摧,只查看兩個(gè)路徑并合并他們安聘。

如下圖,在 N 這個(gè)點(diǎn)上友存。有兩種路徑可以到達(dá)√招疲可分別計(jì)算兩種路徑的概率屡立,可發(fā)現(xiàn)左邊的路徑比右邊的路徑概率小很多。因此將忽略左邊的路徑搀军,而采用右邊的路徑膨俐。這是維特比算法的基本思想。

來看維特比算法的具體實(shí)現(xiàn)罩句。再利用上圖中使用的? Jane will spot Will 句子和 N焚刺、M、V 詞性门烂。

根據(jù)發(fā)射概率表和轉(zhuǎn)移概率表乳愉。從 <S> 到 N 的轉(zhuǎn)移概率為 3/4 。 對(duì)應(yīng)的 Jane 是 N 的概率為 2/9 屯远。同樣的 <S> 到 M 的轉(zhuǎn)移概率為 1/4 蔓姚,Jane 是 N 的概率為 0 。<S> 到 V 的轉(zhuǎn)移概率為 0 慨丐,Jane 是 V 的概率為 0 赂乐。

因此生成節(jié)點(diǎn)的概率是 發(fā)射概率 * 轉(zhuǎn)移概率。即 <S> 到 N 的轉(zhuǎn)移概率和 Jane 是N的發(fā)射概率 :? (3/4) * (2/9) = 1/6 咖气。同理計(jì)算? <S> 到 M 的轉(zhuǎn)移概率和 Jane 是M的發(fā)射概率分別為 0 挨措。

再轉(zhuǎn)到下個(gè)單詞 will ,有三個(gè)路徑指向 N崩溪、即轉(zhuǎn)移概率分別是 1/9浅役、1/4 和 1。同時(shí) will 是 N 的發(fā)射概率為 1/9 伶唯。如此再計(jì)算三個(gè)路徑上概率值觉既,保留最大的概率值。似乎 1/6 * 1/9 * 1/9 是最大值。

同樣的方式計(jì)算M和V瞪讼,并保留最大的概率值钧椰。重復(fù)的方式進(jìn)行,知道句子末尾符欠。如此可得到如下的結(jié)果嫡霞,忽略0的路徑

如何找到最佳路徑,可從后往前追蹤希柿。即 <E> -> N -> V -> M -> M -> N -> <S> 這便是最佳路徑诊沪。

3. 相關(guān)文獻(xiàn)

語(yǔ)音和語(yǔ)言處理圖書的隱馬爾可夫模型和詞性標(biāo)注。

4. 項(xiàng)目實(shí)現(xiàn)

在 notebook 中曾撤,使用?Pomegranate?庫(kù)構(gòu)建隱馬爾可夫模型端姚,并使用通用標(biāo)簽集進(jìn)行詞性標(biāo)注。在使用更大型的標(biāo)簽集對(duì)實(shí)際文本語(yǔ)料庫(kù)進(jìn)行標(biāo)注時(shí)挤悉,隱馬爾可夫模型的準(zhǔn)確率達(dá)到了 96% 以上渐裸。隱馬爾可夫模型還用于語(yǔ)音識(shí)別和語(yǔ)音生成、機(jī)器翻譯装悲、生物信息學(xué)基因識(shí)別和計(jì)算機(jī)視覺人類手勢(shì)識(shí)別橄仆,等等。

項(xiàng)目可訪問此 github 衅斩,使用 jupyter notebook 打開盆顾。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市畏梆,隨后出現(xiàn)的幾起案子您宪,更是在濱河造成了極大的恐慌,老刑警劉巖奠涌,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宪巨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡溜畅,警方通過查閱死者的電腦和手機(jī)捏卓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慈格,“玉大人怠晴,你說我怎么就攤上這事≡±Γ” “怎么了蒜田?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)选泻。 經(jīng)常有香客問我冲粤,道長(zhǎng)美莫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任梯捕,我火速辦了婚禮厢呵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘傀顾。我一直安慰自己襟铭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布锣笨。 她就那樣靜靜地躺著,像睡著了一般道批。 火紅的嫁衣襯著肌膚如雪错英。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天隆豹,我揣著相機(jī)與錄音椭岩,去河邊找鬼。 笑死璃赡,一個(gè)胖子當(dāng)著我的面吹牛判哥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碉考,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼塌计,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了侯谁?” 一聲冷哼從身側(cè)響起锌仅,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墙贱,沒想到半個(gè)月后热芹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惨撇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年伊脓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魁衙。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡报腔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出剖淀,到底是詐尸還是另有隱情榄笙,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布祷蝌,位于F島的核電站茅撞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜米丘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一剑令、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拄查,春花似錦吁津、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至稍算,卻和暖如春典尾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糊探。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工钾埂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人科平。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓褥紫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親瞪慧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子髓考,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 什么是熵(Entropy) 簡(jiǎn)單來說,熵是表示物質(zhì)系統(tǒng)狀態(tài)的一種度量弃酌,用它老表征系統(tǒng)的無(wú)序程度绳军。熵越大,系統(tǒng)越無(wú)序...
    Detailscool閱讀 3,684評(píng)論 0 59
  • 簡(jiǎn)單介紹 隱馬爾可夫模型是關(guān)于時(shí)序(順序)的概率模型矢腻,描述由一個(gè)隱藏的馬爾可夫鏈隨機(jī)生成不可觀測(cè)的狀態(tài)隨機(jī)序列门驾,再...
    wensong_kevin閱讀 504評(píng)論 0 0
  • 在講隱馬模型之前,首先要了解下多柑,啥是馬爾可夫模型奶是。 馬爾可夫模型 幾個(gè)條件 當(dāng)前狀態(tài)只與前一個(gè)狀態(tài)相關(guān) 一個(gè)狀態(tài)到...
    一心一意弄算法閱讀 1,957評(píng)論 0 5
  • 馬爾可夫模型簡(jiǎn)介: 馬爾可夫模型個(gè)人認(rèn)為這個(gè)概念應(yīng)該是從 隨機(jī)過程 里面提出來的,由馬爾可夫過程過來的概念竣灌。實(shí)際上...
    Milkmilkmilk閱讀 2,058評(píng)論 0 4
  • HMM簡(jiǎn)介 ??對(duì)于算法愛好者來說聂沙,隱馬爾可夫模型的大名那是如雷貫耳。那么初嘹,這個(gè)模型到底長(zhǎng)什么樣及汉?具體的原理又是什...
    山陰少年閱讀 10,526評(píng)論 0 9