Hanlp配置自定義詞典遇到的問題與解決方法

 

本文是整理了部分網友在配置hanlp自定義詞典時遇到的一小部分問題,同時針對這些問題,也提供另外一些解決的方案以及思路。這裏分享給你們學習參考。java

要使用hanlp加載自定義詞典能夠經過修改配置文件hanlp.properties來實現。學習

要注意的點是:編碼

1.root根路徑的配置:orm

hanlp.properties中配置以下:input

#本配置文件中的路徑的根目錄,根目錄+其餘路徑=完整路徑(支持相對路徑)string

#Windows用戶請注意,路徑分隔符統一使用/it

root=D:/Project/public_sentiment_monitor/plugin/hanlp1.6.8/io

2.自定義詞典路徑的配置,配置文件中已經指明瞭相應的用法。配置

hanlp.properties中配置以下:plugin

#自定義詞典路徑,用;隔開多個自定義詞典,空格開頭表示在同一個目錄,使用「文件名 詞性」形式則表示這個詞典的詞性默認是該詞性。優先級遞減。

#全部詞典統一使用UTF-8編碼,每一行表明一個單詞,格式聽從[單詞] [詞性A] [A的頻次] [詞性B] [B的頻次] ... 若是不填詞性則表示採用詞典的默認詞性。

CustomDictionaryPath=data/dictionary/custom/hanlp_custom.txt; 搜狗金融詞庫.txt n; CustomDictionary.txt; 現代漢語補充詞庫.txt; 全國地名大全.txt ns; 人名詞典.txt

3.配置文件作好之後,自定義詞典不起做用問題

(1). 須要先刪除custom文件夾下的全部bin文件,而後再使用hanlp,hanlp會自動加載一個新的bin文件,自定義詞典就可使用了。

貌似加載出的bin文件只有CustomDictionaryPath這一行配置中的第一個文件對應的bin,可是內容應該是將全部的自定義詞典都包含了的。

(2). 若是自定義詞典txt文件中存在含有空格的詞, 好比說"16 金立債 nz 100"這種配置,回致使自定義詞典加載程序將"16"認爲是詞,"金立債"認爲是詞性,"nz"認爲是詞頻,而後出現Java報錯: 

java.lang.NumberFormatException: For input string: "nz"

      雖然仍然生成了bin文件,可是實際上自定義詞典中的全部詞都是沒法使用的。因此在生成自定義詞典txt文件的過程當中,必定要注意詞中是否含有空格,是否符合"詞 詞性 詞頻"的格式。

(3)如何將含有空格的詞加入自定義詞典中:

CustomDictionary = JClass('com.hankcs.hanlp.dictionary.CustomDictionary')

CustomDictionary.add('攻城 獅')

相關文章
相關標籤/搜索