過程分析
1.添加新詞需要確定無緩存文件,否則無法使用成功,因爲詞典會優先加載緩存文件
2.再確認緩存文件不在時,打開本地詞典按照格式添加自定義詞彙。
3.調用分詞函數重新生成緩存文件,這時會報一個找不到緩存文件的異常,不用管,因爲加載詞典進入內存是會優先加載緩存,緩存不在當然會報異常,然後加載詞典生成緩存文件,最後處理字符進行分詞就會發現新添加的詞彙可以進行分詞了。
操作過程圖解:
1、有緩存文件的情況下:
1 System.out.println(HanLP.segment("張三丰在一起我也不知道你好一個心眼兒啊,一半天歡迎使用HanLP漢語處理包!" +"接下來請從其他Demo中體驗HanLP豐富的功能~"))
2
3 //首次編譯運行時,HanLP會自動構建詞典緩存,請稍候……
4 //[張/q, 三豐/nz, 在/p, 一起/s, 我/rr, 也/d, 不/d, 知道/v, 你好/vl, 一個心眼兒/nz, 啊/y, ,/w, 一半天/nz, 歡迎/v, 使用/v, HanLP/nx, 漢語/gi, 處理/vn, 包/v, !/w, 接下來/vl, 請/v, 從/p, 其他/rzv, Demo/nx, 中/f, 體驗/v, HanLP/nx, 豐富/a, 的/ude1, 功能/n, ~/nx]
5
6
1. 打開用戶詞典–添加 ‘張三丰在一起’ 爲一個 nz詞性的新詞
2.2 原始緩存文件下運行–會發現不成功,沒有把 ‘張三丰在一起’ 分詞一個nz詞彙
1 System.out.println(HanLP.segment("張三丰在一起我也不知道你好一個心眼兒啊,一半天歡迎使用HanLP漢語處理包!" +"接下來請從其他Demo中體驗HanLP豐富的功能~"))
2
3 //首次編譯運行時,HanLP會自動構建詞典緩存,請稍候……
4 //[張/q, 三豐/nz, 在/p, 一起/s, 我/rr, 也/d, 不/d, 知道/v, 你好/vl, 一個心眼兒/nz, 啊/y, ,/w, 一半天/nz, 歡迎/v, 使用/v, HanLP/nx, 漢語/gi, 處理/vn, 包/v, !/w, 接下來/vl, 請/v, 從/p, 其他/rzv, Demo/nx, 中/f, 體驗/v, HanLP/nx, 豐富/a, 的/ude1, 功能/n, ~/nx]
5
3.1 刪除緩存文件 bin
3.2 再次運行程序,此時會報錯—無法找到緩存文件
1 System.out.println(HanLP.segment("張三丰在一起我也不知道你好一個心眼兒啊,一半天歡迎使用HanLP漢語處理包!" +"接下來請從其他Demo中體驗HanLP豐富的功能~"));
2
3 /**首次編譯運行時,HanLP會自動構建詞典緩存,請稍候……
4 十月 19, 2018 6:12:49 下午 com.hankcs.hanlp.corpus.io.IOUtil readBytes
5 WARNING: 讀取D:/datacjy/hanlp/data/dictionary/custom/CustomDictionary.txt.bin時發生異常java.io.FileNotFoundException: D:\datacjy\hanlp\data\dictionary\custom\CustomDictionary.txt.bin (系統找不到指定的文件。) 找不到緩存文件
6
7
8 [張三丰在一起/nz, 我/rr, 也/d, 不/d, 知道/v, 你好/vl, 一個心眼兒/nz, 啊/y, ,/w, 一半天/nz, 歡迎/v, 使用/v, HanLP/nx, 漢語/gi, 處理/vn, 包/v, !/w, 接下來/vl, 請/v, 從/p, 其他/rzv, Demo/nx, 中/f, 體驗/v, HanLP/nx, 豐富/a, 的/ude1, 功能/n, ~/nx]
9
10 */