hanlp 加載遠程詞庫示例

說明html

·目前的實現方式是以遠程詞庫的內容從新構建CustomDictionary.trie,demo主要是爲了實現同步遠程詞庫,對性能暫不做考慮,對性能要求要以CustomDictionary.dat爲基礎實現java

按hanlp做者述 trie後期可能會取消nginx

 

目前CustomDictionary使用DAT儲存詞典文件中的詞語,用BinTrie儲存動態加入的詞語,前者性能高,後者性能低git

之因此保留動態增刪功能,一方面是歷史遺留特性,另外一方面是調試用;來可能會去掉動態增刪特性。github

·ik的方案,遠程詞庫並不含有詞性詞頻等額外信息,這裏爲了保證詞庫和複用也保持一致,默認詞性爲Nature.nz,詞頻爲1 CoreDictionary.Attribute att = new CoreDictionary.Attribute(Nature.nz, 1);web

·ik支持多個遠程詞庫,該示例只支持單項docker

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

項目只是個參考,所以代碼儘可能和ik保持一致,一個遠程詞庫,對大部分場景也夠用了瀏覽器

 

測試curl

啓動nginx做爲遠程詞庫服務

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

 

測試是否成功

 

curl http://127.0.0.1:1888/nlp/words.txt

 

啓動服務

編譯

mvn clean package -Dmaven.test.skip=true

執行

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

測試url

http://127.0.0.1:1889/hanlp?sentence=小明北飄在北京

詞庫同步任務間隔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

最後,代碼全是抄的,這個項目只是基本的搬運,可能對新手會有點幫助

 

文章轉載自 :https://github.com/cclient/hanlp-remote-dict

相關文章
相關標籤/搜索