hanlp 載入遠端詞庫示例

adnb34g發表於2019-04-26

說明

· 目前的實現方式是以遠端詞庫的內容重新構建 CustomDictionary.trie,demo主要是為了實現同步遠端詞庫,對效能暫不作考慮,對效能要求要以CustomDictionary.dat為基礎實現

hanlp作者述 trie後期可能會取消

 

目前 CustomDictionary使用DAT儲存詞典檔案中的詞語,用BinTrie儲存動態加入的詞語,前者效能高,後者效能低

之所以保留動態增刪功能,一方面是歷史遺留特性,另一方面是除錯用;來可能會去掉動態增刪特性。

· ik的方案,遠端詞庫並不含有詞性詞頻等額外資訊,這裡為了保證詞庫和複用也保持一致,預設詞性為Nature.nz,詞頻為1 CoreDictionary.Attribute att = new CoreDictionary.Attribute(Nature.nz, 1);

· ik支援多個遠端詞庫,該示例只支援單項

多詞庫在現方案下,要作任務協作的處理,雖然不難,但改動後和 ik原碼的差距會比較大

專案只是個參考,因此程式碼儘量和 ik保持一致,一個遠端詞庫,對大部分場景也夠用了

 

測試

啟動 nginx作為遠端詞庫服務

docker run -d --name nginx -p 1888:80 -v $(pwd)/nlp:/usr/share/nginx/html/nlp nginx:1.13.12

 

測試是否成功

 

curl

 

啟動服務

編譯

mvn clean package -Dmaven.test.skip=true

執行

java -jar target/hanlp-web-2.0.0.RC2.jar

測試 url

小明北飄在北京

詞庫同步任務間隔 1分鐘,服務啟動後瀏覽器多重新整理幾次便能看到區別

如要擴充套件至本地專案

1 新增依賴

 

<dependency>

<groupId>org.apache.httpcomponents</groupId>

<artifactId>httpclient</artifactId>

<version>4.5.2</version>

</dependency>

2 複製ExtDictionary,Monitor

 

3 新增配置resources/hanlp_ext.properties

最後,程式碼全是抄的,這個專案只是基本的搬運,可能對新手會有點幫助

 

文章轉載自


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2642637/,如需轉載,請註明出處,否則將追究法律責任。

相關文章