HanLP自定義詞典注意事項

對於詞典,直接加載文本會很慢,因此HanLP對於文本文件作了一些預處理,生成了後綴名爲.txt.bin的二進制文件。 這些二進制文件至關於緩存,避免了每次加載去讀取多個文件。 經過這種txt和bin結合的方式,HanLP一方面方便用戶編輯查看詞典,另外一方面bin方便加載,這種方式可謂是兼兩者之長,設計上堪稱典範。java

打開hanlp的data目錄data\dictionary\custom,刪除全部的.txt.bin文件,這樣一來,HanLP下次加載詞典時會自動構建.txt.bin,這樣一來,你對文本文件所作的更改纔會生效。對於HanLP中的字典,每次更改以後,都必須從新生成bin才能夠,不然不會生效。 實際上,這種方式不夠智能,能夠改進爲檢查文件日期的方式,若是當前目錄下的最新的詞典文件比bin文件新,那麼bin文件失效,須要從新構建bin。 構建bin的過程是比較緩慢的,它須要把全部的相關文本文件中的詞語合併到一個裏面,每次構建大概須要2min,構建完成以後下次啓動就很快了。緩存

更改hanlp.properties,添加mine.txt.測試

#自定義詞典路徑,用;隔開多個自定義詞典,空格開頭表示在同一個目錄,使用「文件名 詞性」形式則表示這個詞典的詞性默認是該詞性。優先級遞減。
#另外data/dictionary/custom/CustomDictionary.txt是個高質量的詞庫,請不要刪除
CustomDictionaryPath=data/dictionary/custom/mine.txt; CustomDictionary.txt; 現代漢語補充詞庫.txt; 全國地名大全.txt ns; 人名詞典.txt; 機構名詞典.txt; 上海地名.txt ns;data/dictionary/person/nrf.txt nrf

在data/dictionary/custom/目錄下新建mine.txt,添加一些詞語。好比裏面加上」蘭陵笑笑生「。設計

隨便編一個程序測試一下code

List<Term> res = HanLP.segment("蘭陵笑笑生笑道:你他孃的真是個天才");
    System.out.println(res);//[蘭陵笑笑生/nr, 笑/v, 道/q, :/w, 你/r, 他/r, 娘/n, 的/uj, 真/d, 是/v, 個/q, 天才/n]
    for (String i : HanLP.Config.CustomDictionaryPath) {
        System.out.println(i);
    }
相關文章
相關標籤/搜索