【NLP】一文了解词性标注CRF模型
文章目錄
- 學習目標
- CRF的概念和作用
- 關于條件隨機場與馬爾科夫假設
- 轉移概率矩陣:
- 發射概率矩陣
學習目標
- 了解CRF的概念和作用
- 了解轉移概率矩陣
- 了解發射概率矩陣
CRF的概念和作用
場景一: 假設有一堆日常生活的給小朋友排拍的視頻片段, 可能的狀態有睡覺、吃飯、喝水、洗澡、刷牙、玩耍等, 大部分情況, 我們是能夠識別出視頻片段的狀態. 但如果你只是看到一小段拿杯子的視頻, 在沒有前后相連的視頻作為前后文參照的情況下, 我們很難知道拿杯子是要刷牙還是喝水. 這時, 可以用到CRF模型.
場景二: 假設有分好詞的句子, 我們要判斷每個詞的詞性, 那么對于一些詞來說, 如果我們不知道相鄰詞的詞性的情況下, 是很難準確判斷每個詞的詞性的. 這時, 我們也可以用到CRF.
CRF(全稱Conditional Random Fields), 條件隨機場. 是給定輸入序列的條件下, 求解輸出序列的條件概率分布模型.
下面舉兩個應用場景的例子:
基本定義: 我們將隨機變量的集合稱為隨機過程. 由一個空間變量索引的隨機過程, 我們將其稱為隨機場. 上面的例子中, 做詞性標注時, 可以將{名詞、動詞、形容詞、副詞}這些詞性定義為隨機變量, 然后從中選擇相應的詞性, 而這組隨機變量在某種程度上遵循某種概率分布, 將這些詞性按照對應的概率賦值給相應的詞, 就完成了句子的詞性標注.
關于條件隨機場與馬爾科夫假設
馬爾科夫假設, 也就是當前位置的取值只和與它相鄰的位置的值有關, 和它不相鄰的位置的值無關.
應用到我們上面的詞性標注例子中, 可以理解為當前詞的詞性是根據前一個詞和后一個詞的詞性來決定的, 等效于從詞性前后文的概率來給出當前詞的詞性判斷結果.
現實中可以做如下假設: 假設一個動詞或者副詞后面不會連接同樣的動詞或者副詞, 這樣的概率很高. 那么, 可以假定這種給定隱藏狀態(也就是詞性序列)的情況下, 來計算觀測狀態的計算過程. 本質上CRF模型考慮到了觀測狀態這個先驗條件, 這也是條件隨機場中的條件一詞的含義.
轉移概率矩陣:
首先假設我們需要標注的實體類型有一下幾類:
{"O": 0, "B-dis": 1, "I-dis": 2, "B-sym": 3, "I-sym": 4}# 其中dis表示疾病(disease), sym表示癥狀(symptom), B表示命名實體開頭, I表示命名實體中間到結尾, O表示其他類型.因此我們很容易知道每個字的可能標注類型有以上五種可能性, 那么在一個句子中, 由上一個字到下一個字的概率乘積就有5 × 5種可能性, 具體見下圖所示:
最終訓練出來結果大致會如上圖所示, 其中下標索引為(i, j)的方格代表如果當前字符是第i行表示的標簽, 那么下一個字符表示第j列表示的標簽所對應的概率值. 以第二行為例, 假設當前第i個字的標簽為B-dis, 那么第i+1個字最大可能出現的概率應該是I-dis.
發射概率矩陣
發射概率, 是指已知當前標簽的情況下, 對應所出現字符的概率. 通俗理解就是當前標簽比較可能出現的文字有哪些, 及其對應出現的概率.
下面是幾段醫療文本數據的標注結果:
可以得到以上句子的轉移矩陣概率如下:
對應的發射矩陣可以理解為如下圖所示結果:
總結
以上是生活随笔為你收集整理的【NLP】一文了解词性标注CRF模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5拼音显示,HTML5:给汉字加
- 下一篇: vcpkg编译库位数总结