自然語言處理 MP最大概率中文分詞

2021-10-08 20:52:11 字數 1220 閱讀 7986

課程作業,只完成了最基本的演算法,還有不足的地方,例如一些多位數的分詞方式等,大家可以適當參考。

1.語言模型說明

語言模型為bigram,儲存在乙個(n*n)的numpy矩陣lm中,訓練過程:

laplace平滑僅在計算的二維計數表的每乙個位置進行+1操作處理後極大似然估計得到概率:

kn平滑處理後某個位置的概率為

其中d=0.75,n1+ 代表大於1的gram數

2.詞網路構建說明

詞網路使用圖的資料結構構成:

因為句子是乙個有序的序列,所以認為節點圖中的開頭是固定的,節點轉移方向也是固定的,所以通過指標為其新增了方向性,**實現時定義了節點類node存放節點資訊:

3.詞網路和最大概率演算法的實際使用

考慮到對長句而言其詞網路結構可能會很複雜,所以對節點做出幾點調整:

prev指標僅指向帶給當前節點最大概率的節點,即每個節點僅有乙個入點,該入點 即為其baw

next指標沒有實質性作用,故刪除

prob屬性由二元概率p(wi|wi-1)集合改為累計概率p(wi|wi-1)p(wi-1|wi-2)…p(w1|)

主要思想是令每個節點的累計概率最大,當有多個自由節點(next為空,後刪除next後存入陣列pre)滿足node.endpos == w(startpos) 時對其攜帶的概率進行運算

node.prob * p(wi|wi-1)

進行比較後取使其最大的節點為當前節點的baw。如此從最後乙個節點「」(實際中使用「\n」代替了』』)向前遞迴則可以獲得累計概率最大的分詞結果,下圖給出了節點「的」的前向結果(途中虛線表示節點「的」的前向節點通過比對四個自由節點帶來的實際最大累計概率產生):

5.未登陸詞處理

僅當乙個startpos=i時不存在候選詞時認為該位置存在乙個未登入詞。由於詞表中沒有出現過所以其對應的kn平滑計算結果會出錯,所以使用詞表中的最小概率值代替了未登入詞的概率。

實現**:

宗成慶,統計自然語言處理

speech and language processing

自然語言處理 中文分詞原理

1.1中文分詞概述 中文分詞 將乙個漢字序列分成乙個乙個的單獨的詞。分詞 將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2中文分詞方法 一般有以下三類 基於詞典匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1.2.1 基於詞典 字串匹配 機械分詞法 匹配的分詞方法 按照一定的策略...

自然語言處理1 分詞

分詞是自然語言處理的基礎,分詞準確度直接決定了後面的詞性標註 句法分析 詞向量以及文字分析的質量。英文語句使用空格將單詞進行分隔,除了某些特定詞,如how many,new york等外,大部分情況下不需要考慮分詞問題。但中文不同,天然缺少分隔符,需要讀者自行分詞和斷句。故在做中文自然語言處理時,我...

自然語言處理入門 中文分詞原理

1.中文分詞原理介紹 1.1 中文分詞概述 中文分詞 chinese word segmentation 指的是將乙個漢字序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2 中文分詞方法介紹 現有的分詞方法可分為三大類 基於字串匹配的分詞方法 基於理解的分...