大快HanLP天然語言處理技術介紹算法
這段時間一直在接觸學習hadoop方面的知識,因此說對天然語言處理技術也是作了一些瞭解。網絡上關於天然語言處理技術的分享文章不少,今天就給你們分享一下HanLP方面的內容。數組
天然語言處理技術實際上是全部與天然語言的計算機處理相關聯的技術的統稱,天然語言處理技術應用的目的是爲了可以讓計算機理解和接收咱們用天然語言輸入的指令,實現從將咱們人類的語言翻譯成計算機可以理解的而且不會產生歧義的一種語言。接合目前的大數據以及人工智能,天然語言處理技術的快速發展可以很好的助力人工智能的發展。網絡
(大快DKhadoop技術架構圖)數據結構
這裏要分享的HanLP是我在學習使用大快DKhadoop大數據一體化平臺時使用到的天然語言處理技術,使用這個組建能夠很高效的進行天然語言的處理工做,好比進行文章摘要,語義判別以及提升內容檢索的精確度和有效性等。架構
本想找個通俗的案例來介紹一下HanLP,一時間也沒想到什麼好的案例,索性就從HanLp數據結構HE 分詞簡單介紹下吧。oop
首先咱們來看了解下HanLP的數據結構:學習
二分tire樹:Tire樹是一種前綴壓縮結構,能夠壓縮存大量字符串,並提供速度高於Map的get操做。HanLP中的trie樹採用有序數組儲存子節點,經過二分搜索算法檢索,能夠提供比TreeMap更快的查詢速度。大數據
不一樣於父節點儲存子節點引用的普通trie樹,雙數組trie樹將節點的從屬關係轉化爲字符內碼的加法與校驗操做人工智能
對於一個接收字符c從狀態s移動到t的轉移,需知足條件是:spa
base[s] + c = t
check[t] = s好比:base[一號] + 店 = 一號店
check[一號店] = 一號
相較於trie樹的前綴壓縮(success表),AC自動機還實現了後綴壓縮(output表)
在匹配失敗時,AC自動機會跳轉到最可能成功的狀態(fail指針)
關於HanLP分詞
1、詞典分詞
基於雙數組trie樹或ACDAT的詞典最長分詞(即從詞典中找出全部可能的詞,順序選擇最長的詞語)
輸出:[HanLP/名詞, 是否是/null, 特別/副詞, 方便/形容詞, ?/null]
2、NGram分詞
統計語料庫中的BiGram,根據轉移機率,選出最可能的句子,達到排除歧義的目的
3、HMM2分詞
這是一種由字構詞的生成式模型,由二階隱馬模型提供序列標註
被稱爲TnT Tagger,特色是利用低階事件平滑高階事件,彌補高階模型的數據稀疏問題
4、CRF分詞
這是一種由字構詞的生成式模型,由CRF提供序列標註
相較於HMM,CRF的優勢是可以利用更多特徵、對OOV分詞效果好,缺點是佔內存大、解碼慢。