1. 程式人生 > >Ansj分詞教程步驟

Ansj分詞教程步驟

摘要: ansj是一個基於n-Gram+CRF+HMM的中文分詞的java實現. ansj分詞速度達到每秒鐘大約200萬字左右(mac air下測試),準確率能達到96%以上 Ansj目前實現了.中文分詞.詞性識別. 中文姓名識別 . 使用者自定義詞典,關鍵字提取,自動摘要,關鍵字標記等功能 可以應用到自然語言處理等方面,適用於對分詞效果要求高的各種專案.下載jar: 訪問 http://maven.nlpcn.org/org/ansj/ 最好下載最新版 ansj_seg/ 如果你用的是1.x版本需要下載tree_split.jar。 如果你用的是2.x版本需要下載nlp-lang.jar。 如果你用的是3.x以上版本只需要下載 ansj_seg-[version]-all-in-one.jar 一個jar包就能浪了。

本人使用的是ansj5.0.1版本,使用的scala呼叫的,呼叫方式與java基本一樣

原始碼:https://github.com/NLPchina/ansj_seg

使用: 分詞方式: 基本分詞:最基本的分詞.詞語顆粒度最非常小的 使用者自定義詞典Χ數字識別√人名識別Χ機構名識別Χ新詞發現Χ val parse = BaseAnalysis.parse("孫楊在里約奧運會男子200米自由泳決賽中,以1分44秒65奪得冠軍"); System.out.println(parse); result:[孫/nr,楊/nr,在/p,裡/f,約/d,奧運會/j,男子/n,200/m,米/q,自由泳/n,決賽/vn,中/f,,/w,以/p,1/m,分/q,44/m,秒/q,65/m,奪得/v,冠軍/n] 精準分詞:在易用性,穩定性.準確性.以及分詞效率上.都取得了一個不錯的平衡. 使用者自定義詞典√數字識別√人名識別√機構名識別Χ新詞發現Χ val parse = ToAnalysis.parse("孫楊在里約奧運會男子200米自由泳決賽中,以1分44秒65奪得冠軍"); System.out.println(parse); result:[孫楊/nr,在/p,裡/f,約/d,奧運會/j,男子/n,200米/m,自由泳/n,決賽/vn,中/f,,/w,以/p,1分/m,44秒/m,65/m,奪得/v,冠軍/n] nlp分詞:語法實體名抽取.未登入詞整理.只要是對文字進行發現分析等工作 使用者自定義詞典√數字識別
人名識別√機構名識別√新詞發現√ val parse = NlpAnalysis.parse("孫楊在里約奧運會男子200米自由泳決賽中,以1分44秒65奪得冠軍"); System.out.println(parse); result:[孫楊/nr,在/p,里約,奧運會/j,男子/n,200米/m,自由泳/n,決賽/vn,中/f,,/w,以/p,1分/m,44秒/m,65/m,奪得/v,冠軍/n] 面向索引分詞:故名思議就是適合在lucene等文字檢索中用到的分詞。 使用者自定義詞典√數字識別√人名識別√機構名識別Χ新詞發現Χ var parse =  IndexAnalysis.parse("主副食品") result:[主副食品/n] 在該版本中分詞效果貌似有點問題,切換成3.7.6的結果也跟上方一樣,不過看資料說是能有result:[主副食品/n, 主副食, 副食, 副食品, 食品]這種效果,有需要可以切換更舊的版本試試。載入自定義詞典:
val forest0 = Library.makeForest("E:/base.dic") System.out.println(DicAnalysis.parse("孫楊在里約奧運會男子200米自由泳決賽中,以1分44秒65奪得冠軍", forest0)); result:[孫楊/nr,在/p,里約/ns,奧運會男子200米自由泳/comb,決賽/vn,中/f,,/w,以/p,1分/m,44秒/m,65/m,奪得/v,冠軍/n] “奧運會男子200米自由泳”是加到詞典中的去停用詞:     var stopWord: Seq[String] = Seq("決賽")     var filter = new FilterRecognition()     filter.insertStopNatures("ns")     filter.insertStopWords(stopWord)     var word = "孫楊在里約奧運會男子200米自由泳決賽中,以1分44秒65奪得冠軍"     var result = DicAnalysis.parse(word).recognition(filter) result:[孫楊/nr,在/p,裡/f,約/d,奧運會/j,200米/m,中/f,,/w,以/p,1分/m,44秒/m,65/m,奪得/v] 去除了n詞性“自由泳”,和停用詞“決賽”,停用詞可以是一個String,也可以是一個java List物件動態新增詞典: UserDefineLibrary.insertWord("ansj中文分詞", "userDefine", 1000); var terms = ToAnalysis.parse("我覺得Ansj中文分詞是一個不錯的系統!我是王婆!"); System.out.println("增加新詞例子:" + terms); // 刪除詞語,只能刪除.使用者自定義的詞典. UserDefineLibrary.removeWord("ansj中文分詞"); terms = ToAnalysis.parse("我覺得ansj中文分詞是一個不錯的系統!我是王婆!"); System.out.println("刪除使用者自定義詞典例子:" + terms); result: 增加新詞例子:我/r,覺/v,得/ud,ansj中文分詞/userDefine,是/v,一/m,個/q,不/d,錯/n,的/uj,系/v,統/v,!,我/r,是/v,王婆/nr,! 刪除使用者自定義詞典例子:我/r,覺/v,得/ud,ansj/en,中文/nz,分/q,詞/n,是/v,一/m,個/q,不/d,錯/n,的/uj,系/v,統/v,!,我/r,是/v,王婆/nr,!詞性說明 漢語文字詞性標註標記集 # 1. 名詞  (1個一類,7個二類,5個三類) 名詞分為以下子類: n 名詞 nr 人名 nr1 漢語姓氏 nr2 漢語名字 nrj 日語人名 nrf 音譯人名 ns 地名 nsf 音譯地名 nt 機構團體名 nz 其它專名 nl 名詞性慣用語 ng 名詞性語素 nw 新詞 # 2. 時間詞(1個一類,1個二類) t 時間詞 tg 時間詞性語素 # 3. 處所詞(1個一類) s 處所詞 # 4. 方位詞(1個一類) f 方位詞 # 5. 動詞(1個一類,9個二類) v 動詞 vd 副動詞 vn 名動詞 vshi 動詞“是” vyou 動詞“有” vf 趨向動詞 vx 形式動詞 vi 不及物動詞(內動詞) vl 動詞性慣用語 vg 動詞性語素 # 6. 形容詞(1個一類,4個二類) a 形容詞 ad 副形詞 an 名形詞 ag 形容詞性語素 al 形容詞性慣用語 # 7. 區別詞(1個一類,2個二類) b 區別詞 bl 區別詞性慣用語 # 8. 狀態詞(1個一類) z 狀態詞 # 9. 代詞(1個一類,4個二類,6個三類) r 代詞 rr 人稱代詞 rz 指示代詞 rzt 時間指示代詞 rzs 處所指示代詞 rzv 謂詞性指示代詞 ry 疑問代詞 ryt 時間疑問代詞 rys 處所疑問代詞 ryv 謂詞性疑問代詞 rg 代詞性語素 # 10. 數詞(1個一類,1個二類) m 數詞 mq 數量詞 # 11. 量詞(1個一類,2個二類) q 量詞 qv 動量詞 qt 時量詞 # 12. 副詞(1個一類) d 副詞 # 13. 介詞(1個一類,2個二類) p 介詞 pba 介詞“把” pbei 介詞“被” # 14. 連詞(1個一類,1個二類) c 連詞  cc 並列連詞 # 15. 助詞(1個一類,15個二類) u 助詞 uzhe 著 ule 了 嘍 uguo 過 ude1 的 底 ude2 地 ude3 得 usuo 所 udeng 等 等等 云云 uyy 一樣 一般 似的 般 udh 的話 uls 來講 來說 而言 說來 uzhi 之 ulian 連 (“連小學生都會”) # 16. 嘆詞(1個一類) e 嘆詞 # 17. 語氣詞(1個一類) y 語氣詞(delete yg) # 18. 擬聲詞(1個一類) o 擬聲詞 # 19. 字首(1個一類) h 字首 # 20. 字尾(1個一類) k 字尾 # 21. 字串(1個一類,2個二類) x 字串  xx 非語素字  xu 網址URL # 22. 標點符號(1個一類,16個二類) w 標點符號 wkz 左括號,全形:( 〔  [  {  《 【  〖〈   半形:( [ { < wky 右括號,全形:) 〕  ] } 》  】 〗 〉 半形: ) ] { > wyz 左引號,全形:“ ‘ 『  wyy 右引號,全形:” ’ 』 wj 句號,全形:。 ww 問號,全形:? 半形:? wt 歎號,全形:! 半形:! wd 逗號,全形:, 半形:, wf 分號,全形:; 半形: ; wn 頓號,全形:、 wm 冒號,全形:: 半形: : ws 省略號,全形:……  … wp 破折號,全形:——   --   ——-   半形:---  ---- wb 百分號千分號,全形:% ‰   半形:% wh 單位符號,全形:¥ $ £  °  ℃  半形:$ 轉載來源:https://blog.csdn.net/a822631129/article/details/52331202