此文整理的基礎是建立在hanlp較早版本的基礎上的,雖然hanlp的最新1.7版本已經釋出,但對于入門來說差别不大!分享一篇比較早的“舊文”給需要的朋友!
安裝HanLPHanLP将資料與程式分離,給予使用者自定義的自由。 HanLP由三部分組成:HanLP = .jar + data + .properties ,請前往 項目首頁 下載下傳這三個部分。
1、下載下傳jar放入classpath并添加依賴。
2、下載下傳資料集HanLP 中的資料分為 詞典 和 模型 ,其中 詞典 是詞法分析必需的, 模型 是句法分析必需的,data目錄結構如下:
data
│
├─dictionary
└─model
使用者可以自行增删替換,如果不需要句法分析功能的話,随時可以删除model檔案夾。
可選資料集 3、配置檔案示例配置檔案:
#本配置檔案中的路徑的根目錄,根目錄+其他路徑=絕對路徑
#Windows使用者請注意,路徑分隔符統一使用/
root=E:/JavaProjects/HanLP/
#核心詞典路徑
CoreDictionaryPath=data/dictionary/CoreNatureDictionary.txt
#2元文法詞典路徑
BiGramDictionaryPath=data/dictionary/CoreNatureDictionary.ngram.txt
#停用詞詞典路徑
CoreStopWordDictionaryPath=data/dictionary/stopwords.txt
#同義詞詞典路徑
CoreSynonymDictionaryDictionaryPath=data/dictionary/synonym/CoreSynonym.txt
#人名詞典路徑
PersonDictionaryPath=data/dictionary/person/nr.txt
#人名詞典轉移矩陣路徑
PersonDictionaryTrPath=data/dictionary/person/nr.tr.txt
#繁簡詞典路徑
TraditionalChineseDictionaryPath=data/dictionary/tc/TraditionalChinese.txt
#自定義詞典路徑,用;隔開多個自定義詞典,空格開頭表示在同一個目錄,使用“檔案名 詞性”形式則表示這個詞典的詞性預設是該詞性。優先級遞減。
#另外data/dictionary/custom/CustomDictionary.txt是個高品質的詞庫,請不要删除
CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; 現代漢語補充詞庫.txt; 全國地名大全.txt ns; 人名詞典.txt; 機構名詞典.txt; 上海地名.txt ns;data/dictionary/person/nrf.txt nrf
配置檔案的作用是告訴HanLP資料包的位置,隻需修改第一行
root=usr/home/HanLP/
為data的 父目錄 即可,比如data目錄是 /Users/hankcs/Documents/data ,那麼 root=/Users/hankcs/Documents/ 。
l 如果選用mini資料包的話,則需要修改配置檔案:
CoreDictionaryPath=data/dictionary/CoreNatureDictionary.mini.txt
BiGramDictionaryPath=data/dictionary/CoreNatureDictionary.ngram.mini.txt
最後将HanLP.properties放入classpath即可:
對于Eclipse來講
project/bin
對于IntelliJ IDEA來講
project/target/classes
或者
project/out/production/project
Web項目的話可以放在如下位置:
Webapp/WEB-INF/lib
Webapp/WEB-INF/classes
Appserver/lib
JRE/lib
快速上手HanLP 幾乎所有的功能都可以通過工具類 HanLP 快捷調用,當你想不起來調用方法時,隻需鍵入 HanLP. ,IDE應當會給出提示,并展示HanLP完善的文檔。
推薦使用者始終通過工具類 HanLP 調用,這麼做的好處是,将來 HanLP 更新後,使用者無需修改調用代碼。
所有Demo都位于 com.hankcs.demo 下。
第一個Demo:
System.out.println(HanLP.segment("你好,歡迎使用HanLP!"));
l 記憶體要求
1.HanLP 對詞典的資料結構進行了長期的優化,可以應對絕大多數場景。哪怕 HanLP 的詞典上百兆也無需擔心,因為在記憶體中被精心壓縮過。
2.如果記憶體非常有限,請使用小詞典。 HanLP 預設使用大詞典,同時提供小詞典,請參考配置檔案章節。
3.在一些句法分析場景中,需要加載幾百兆的模型。如果發生 java.lang.OutOfMemoryError ,則建議使用JVM option -Xms1g -Xmx1g -Xmn512m。
l 寫給正在編譯 HanLP 的開發者
1.如果你正在編譯運作從Github檢出的 HanLP 代碼,并且沒有下載下傳data,那麼首次加載詞典/模型會發生一個 自動緩存 的過程。
2.自動緩存 的目的是為了加速詞典載入速度,在下次載入時,緩存的詞典檔案會帶來毫秒級的加載速度。由于詞典體積很大, 自動緩存 會耗費一些時間,請耐心等待。
3.自動緩存 緩存的不是明文詞典,而是雙數組Trie樹、DAWG、AhoCorasickDoubleArrayTrie等資料結構。
如果一切正常,您會得到類似于如下的輸出:
[你好/vl, ,/w, 歡迎/v, 使用/v, HanLP/nx, !/w]
如果出現了問題,一般是由路徑配置不對而引發的,請根據控制台輸出的警告調整。比如:
核心詞典
/Users/hankcs/JavaProjects/HanLP/data/data/dictionary/CoreNatureDictionary.txt加載失敗
說明HanLP.properties中的root項配置不對,應當去掉字尾 data/,改為:
root=/Users/hankcs/JavaProjects/HanLP/