自然語言基礎之分詞 標註 命名實體識別

2022-04-22 12:51:38 字數 1491 閱讀 2954

一、hmm隱馬爾可夫模型分詞、詞性標註、命名實體識別

hmm是用來描述隱含未知引數的統計模型,經典的例子:乙個東京的朋友每天根據天氣決定當天的活動中的一種,我每天只能在twitter上看到她發的「今前天去公園散步了、昨天購物、今天清理房間了!」,那麼我可以根據她發的推特推斷東京這三天的天氣。在這個例子裡,觀測狀態序列是活動,隱藏狀態序列是天氣。

任何乙個hmm都可以通過下列五元組描述:

:param obs:  觀測序列

:param states: 隱藏狀態序列

:param start_p: 初始狀態概率(隱藏狀態,天氣)

:param trans_p:狀態轉移矩陣概率 (隱藏狀態、)

:param 觀測序列概率(在時刻t隱藏狀態條件下,生成觀測序列的概率)

用python**來描述如下:

求解最可能的天氣:

維特比演算法:實際是用動態規劃解隱馬爾可夫模型**問題,即用動態規劃求概率最大路徑(最優路徑)。這時一條路徑對應著乙個狀態序列。

求解最可能的隱藏狀態序列是hmm的三個典型問題之

一、通常用維特比演算法解決。維特比演算法就是求解hmm上的最短路徑(-log(prob),也即是最大概率)的演算法

思路如下:第一天天晴還是下雨可以算出來:

1、定義v[時間][今天天氣] =  概率,注意今年天天氣指的是,前幾天的天氣確定下來了(概率最大)今天天氣是x的概率,這裡的概率 就是乙個累乘的概率

2、因為第一天我的朋友去散步了,所以第一天下雨的概率v[第一天][下雨] = 初始概率[下雨]*觀測概率[下雨][散步] = 0.6*0.1=0.06,同理可得v[第一天][天晴] = 0.24。因為第一天朋友出門了,她一般喜歡在

晴天的時候散步,所以第一天天晴的概率比較大,直覺上來看也是這樣。

3、從第二天開始,對於這種每天天氣y,都有前一天天氣是x的概率*x轉移到y的概率*y天氣下朋友進行這天這種活動的概率。因為前一天天氣x有兩種可能,所以y的概率有兩個,選取其中較大乙個作為v[第二天][天氣y]的概率,同時將今天的天氣加入到結果序列中

4、比較v[最後一天][下雨]和[最後一天][天晴]的概率,找出較大的哪乙個對應的序列,就是最終結果。

只需從時刻t=1開始,遞推地計算在時刻t狀態為i的各條部分路徑的最大概率,直至得到時刻t=t狀態為i的各條路徑的最大概率。時刻t=t的最大概率即為最優路徑的概率。

具體hmm應用在分詞系統,可以將天氣當成「標籤」,活動當成「字或者詞」。那麼nlp幾個問題可以轉化為:

詞性標註:給定乙個詞的序列(句子),找出最可能的詞性序列(標籤是詞性)。

分詞:給定乙個字的序列,找出最可能的標籤序列(bmes),比如結巴分詞目前就是利用bmes標籤來分詞的,

命名實體識別:給定乙個詞的序列,找出最可能的標籤序列(內外符號:[內]表示詞屬於命名實體,[外]表示不屬於)。如ictclas實現的人名識別、翻譯人名識別、地名識別都是用同乙個tagger實現的。

自然語言處理之 命名實體識別 1

命名實體識別是定位文件中的專有名詞或命名實體的過程,而且這些不同的命名實體被分成了不同的類別,如 人名,地名,機構名等。可以使用斯坦福標註器來實現ner。如果命名實體存在,就用ne標記來標註。import nltk nltk.download maxent ne chunker sentences1...

HMM與分詞 詞性標註 命名實體識別

hmm 隱馬爾可夫模型 是用來描述隱含未知引數的統計模型,舉乙個經典的例子 乙個東京的朋友每天根據天氣決定當天的活動中的一種,我每天只能在twitter上看到她發的推 啊,我前天公園散步 昨天購物 今天清理房間了!那麼我可以根據她發的推特推斷東京這三天的天氣。在這個例子裡,顯狀態是活動,隱狀態是天氣...

Python自然語言處理之分詞原理

入坑自然語言處理,最基本的就是要做文字挖掘,而首先要做的就是文字的預處理。自然語言處理的主要流程可以表示為 文字 分句 分詞 詞性標註 短語分析 句法分析 語義分析 語篇分析 理解 分句這部分一般有標點符號分割,便於處理。於是首先要做的就是分詞。英文單詞天然有空格隔開容易按照空格分詞,但是也有時候需...