ik分詞器 分詞原理 分詞技術及開源分詞器

2021-10-13 16:59:22 字數 2087 閱讀 3299

分詞是自然語言處理的第一步,這裡主要從序列標註的角度遞進介紹hmm如何實現分詞,然後介紹分詞工具的使用,在nlp中,分詞、詞性標註和命名實體識別都屬於標註任務,也就是對token進行分詞,對於分詞任務難點有以下幾個:

新詞的發現

未登陸此(人名、地名、商標名、公司名稱)

2. 詞典與演算法優先順序

我們 中信 仰 佛教 的 人

3. 歧義(顆粒度、交集等)

股份 **** 、鄭州天和服裝廠

分詞的演算法大致分為兩種:

1.基於詞典的分詞演算法

正向最大匹配演算法

逆向最大匹配演算法

雙向匹配分詞法

2.基於統計的機器學習演算法

hmm、crf、svm、lstm+crf

這裡列出一些開源的分詞系統:

語義分析系統 nlpchina/ansj_seghit-scir/ltp清華大學

the stanford natural language processing grouphanlp分詞器

yanyiwu/cppjiebakoth/kcws

frcchang/zpar

wks/ik-analyzer

接下來採取理論與**相結合的方式,介紹hmm分詞器的使用:

2. 隱馬爾科夫概率模型

這兩張圖比較簡單,這裡我們暫時只考慮最簡單的一階馬爾科夫模型。

第二張圖中的a,b向量也就是我們需要從訓練師資料中獲得的內容,下面從**的角度對這個問題進行說明:

1.資料準備——已分好詞的語料

2.根據語料統計轉移概率矩陣a和混淆矩陣b,這裡進行詳細說明

- 對於每個詞我們都會按照如下方式為他打上標籤:

- 根據語料我們會統計四個引數:

1.label的轉移概率矩陣,也就是a矩陣:

2.每個詞中的字出現過的狀態:

例如「,」就只有s這一種狀態

3.接下來就統計每個狀態對應的每個字出現過的頻率,利用這個頻次計算混淆概率b

4.計算下每個label出現的次數

5.統計下y0,也就是初始狀態的概率,顯然m,e不可能出現在開頭

將上述統計值轉為頻率值,就是最開始ppt中的a,b,y0矩陣

上述的統計值就是我們得到的hmm模型引數,接下來就利用維特比演算法來進行decode,維特比的原理大致如下:

注意網上好多hmm的維特比解碼演算法是錯誤的,無法處理未登入詞,主要是對於未登入詞的處理,詳細過程見**。

這裡可以看一下分詞結果!

這只是乙個練手的小demo。

使用海量分詞

-使用海量分詞首先要設定jdk,注意紅色部分的說明

- 黃色部分就是壓縮包中的lib下的檔案路徑

- test.py 中給出了分詞新增字典和控制分詞粒度的**

ES自帶分詞器及IK分詞器筆記

1 自帶分詞簡單了解 post analyze post analyze post analyze 1.max token length 最大token長度,預設255。2.stopwords 預定義的停止詞列表,如 english 或包含停止詞列表的陣列,預設是 none 3.stopwords ...

ik分詞器安裝

官方demo es中plugins最終結果 es中conf analysis ik的最終結果 執行 plugin安裝 1.查詢es程序 ps ef grep elastic 2.殺掉es程序 kill 9 2382 程序號 3.重啟es sh elasticsearch d 1.通過rest方式建立...

ik分詞器安裝

lucene的ik分詞器早在2012年已經沒有維護了,現在我們要使用的是在其基礎上維護公升級的版本,並且開發為elasticsearch的整合外掛程式了,與elasticsearch一起維護公升級,版本也保持一致,最新版本 6.3.0 上傳課前資料中的zip包,解壓到elasticsearch目錄的...