1. 程式人生 > >大快HanLP自然語言處理技術介紹

大快HanLP自然語言處理技術介紹

com ase 發展 二階 info fail 效果 tro 什麽

大快HanLP自然語言處理技術介紹

這段時間一直在接觸學習hadoop方面的知識,所以說對自然語言處理技術也是做了一些了解。網絡上關於自然語言處理技術的分享文章很多,今天就給大家分享一下HanLP方面的內容。

自然語言處理技術其實是所有與自然語言的計算機處理相關聯的技術的統稱,自然語言處理技術應用的目的是為了能夠讓計算機理解和接收我們用自然語言輸入的指令,實現從將我們人類的語言翻譯成計算機能夠理解的並且不會產生歧義的一種語言。接合目前的大數據以及人工智能,自然語言處理技術的快速發展能夠很好的助力人工智能的發展。技術分享圖片

(大快DKhadoop技術架構圖)

這裏要分享的HanLP是我在學習使用大快DKhadoop大數據一體化平臺時使用到的自然語言處理技術,使用這個組建可以很高效的進行自然語言的處理工作,比如進行文章摘要,語義判別以及提高內容檢索的精確度和有效性等。

本想找個通俗的案例來介紹一下HanLP,一時間也沒想到什麽好的案例,索性就從HanLp數據結構HE 分詞簡單介紹下吧。

首先我們來看了解下HanLP的數據結構:技術分享圖片

二分tire樹:Tire樹是一種前綴壓縮結構,可以壓縮存大量字符串,並提供速度高於Map的get操作。HanLP中的trie樹采用有序數組儲存子節點,通過二分搜索算法檢索,可以提供比TreeMap更快的查詢速度

不同於父節點儲存子節點引用的普通trie樹,雙數組trie樹將節點的從屬關系轉化為字符內碼的加法與校驗操作

對於一個接收字符c從狀態s移動到t的轉移,需滿足條件是:

base[s] + c = t

check[t] = s比如:

base[一號] + = 一號店

check[一號店] = 一號

相較於trie樹的前綴壓縮(success表),AC自動機還實現了後綴壓縮(output表)

在匹配失敗時,AC自動機會跳轉到最可能成功的狀態(fail指針)

關於HanLP分詞

1、詞典分詞

基於雙數組trie樹或ACDAT的詞典最長分詞(即從詞典中找出所有可能的詞,順序選擇最長的詞語)技術分享圖片

輸出:[HanLP/名詞, 是不是/null, 特別/副詞, 方便/形容詞, /null]

2NGram分詞技術分享圖片

統計語料庫中的BiGram,根據轉移概率,選出最可能的句子,達到排除歧義的目的

3HMM2分詞

這是一種由字構詞的生成式模型,由二階隱馬模型提供序列標註

被稱為TnT Tagger,特點是利用低階事件平滑高階事件,彌補高階模型的數據稀疏問題

4CRF分詞

這是一種由字構詞的生成式模型,由CRF提供序列標註

相較於HMMCRF的優點是能夠利用更多特征、對OOV分詞效果好,缺點是占內存大、解碼慢。

大快HanLP自然語言處理技術介紹