1. 程式人生 > >資料探勘乾貨總結(二)--NLP進階-詳解Jieba分詞工具

資料探勘乾貨總結(二)--NLP進階-詳解Jieba分詞工具

NLP進階-詳解Jieba分詞工具

、Jieba分詞工具

1. 三種模式

• 精確模式將句子最精確的分開適合文字分析

• 全模式句子中所有可以成詞的詞語都掃描出來速度快不能解決歧義

• 搜尋引擎模式在精確模式基礎上對長詞再次切分提高召回

2.實現的演算法

• 基於Trie樹結構實現高效的詞圖掃描生成句子中漢字所有可能成詞情況的有向無環圖(DAG)

• 採用了動態規劃查詢最大概率路徑找出基於詞頻的最大切分組合

• 對於未登入詞採用了基於漢字成詞能力的HMM模型使用了Viterbi演算法

3.實現流程

、HMM隱馬爾科夫模型

1. 

馬爾科夫模型(Markov Model)

本質一個序列中每個狀態只依賴之前有限個狀態

– N階馬爾科夫依賴之前n個狀態

– 1階馬爾科夫僅僅依賴前一個狀態即上篇文章介紹的二元模型

p(w1,w2,w3,……wn) = p(w1)p(w2|w1)p(w3|w2)……p(wn|wn-1)

應用場景

• 概率預測

• 天氣預測

三個引數

– 狀態由數字表示假設共有M

– 初始概率 πk=P(S1=k)       = k作為序列開始的次數/觀測序列總數

– 狀態轉移概率ak,l=P(St+1=l|St=k)   = l緊跟k出現的次數/k出現的總次數

2. 隱馬爾科夫模型(Hiden Markov Model)

本質對兩個序列建模

應用場景

• 機器翻譯源語言序列 <-> 目標語言序列

• 語音識別語音訊號序列 <-> 文字序列

• 詞性標註文字序列 <-> 詞性序列

五個引數

– 狀態由數字表示假設共有M

– 觀測由數字表示假設共有N

– 初始概率 πk=P(S1=k)       = k作為序列開始的次數/觀測序列總數

– 狀態轉移概率ak,l=P(St+1=l|St=k)   = l緊跟k出現的次數/k出現的總次數

– 發射概率bk(u)

=P(Ot=u|St=k)   = k對應u出現的次數/k對應觀測序列中所有情況的次數

那麼總的概率如下


待解決問題

問題1. 給定訓練語料庫D,求模型中的引數πkak,lbk(u)

問題2. 給定θ,計算一個觀測序列的概率Pθ(O)

問題3. 給定θ和觀測序列O,找到最優的隱藏狀態序列S

問題1解決

1)若資料完全S、O都已知例如詞性分詞都明確),則可以直接統計

2)若資料不完全O已知,S未知或部分未知例如未登入詞則應該採用EM演算法前向後向演算法計算出未登入詞的相關資訊如詞性和轉換概率):

前者判斷詞性後者即為狀態轉移概率ak,l為了得到這兩個資訊引出了前向概率和後向概率的兩個概念

這兩個概率也需要使用動態規劃來求解

    可以得到

問題2解決: 利用上題中的引數可以直接求得

問題3解決: viterbi演算法 

此處若採用窮舉法時間複雜度太高

因此可考慮動態規劃--維特比演算法 

至此三大問題完美解決撒花~ 

以上.

聽說,愛點讚的人運氣都不會太差哦

如果有任何意見和建議,也歡迎在下方留言~

由於部分圖片的顯示問題

還是建議大家關注這個公眾號檢視原文

關注這個公眾號,定期會有大資料學習的乾貨推送給你哦~

點選這裡檢視往期精彩內容: