hanlp 加载远程词库示例
说明
·目前的实现方式是以远程词库的内容重新构建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 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
hanlp 加载远程词库示例的更多相关文章
- “尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。”
远程连接服务器的数据库调试WCF程序时,可以正常访问数据库,但将程序发布成站点部署在数据库所在的服务器之后,一直报错,通过try/catch捕获得到以下报错信息: System.Exception: ...
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException
尝试加载 Oracle 客户端库时引发 BadImageFormatException 工程师给计算机诊断,就像医生给病人诊断一样,很多同样的症状,可能是由多种截然不同的原因导致的. 最近进行C# ...
- AntiModerate – 渐进式图片加载的 JavaScript 库
AntiModerate 是一个渐进式图片加载的 JavaScript 库.我们多数看到的图片显示模式,都是从上到下逐渐显示的,这是“标准式”图像:而有的图片是先出现一个很低分辨率的图像轮廓,类似加了 ...
- jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据
jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据 这个是jQuery 的底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等. $.ajax() ...
- iOS Cordova 加载远程界面
老大说,我们的项目要hybrid,要实现1.html能调用native:2.本地html调用本地html界面:3.能加载远程界面..... 因为我的项目是已有的(以下简称 项目),所以是要在已有的项目 ...
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录
电脑是win8 64位,安装oracle 11g r2 64位的,谁知道一切装完毕后,打开项目却连不上oracle数据了...首先是pl/sql连不上,装了oracle服务器,应该是不用再装客户端,p ...
- xss如何加载远程js的一些tips
在早期 , 对于xss我们是这样利用的 <script>window.open('http://xxx.xxx/cookie.asp?msg='+document.cookie)</ ...
- “尝试加载 Oracle 客户端库时引发 BadImageFormatException”的解决方案
今天要写个程序,环境是win8.1+ vs2012+ oracle,可是却出现了一个意想不到的问题: 异常!以下为数据库提示详细错误信息:尝试加载 Oracle 客户端库时引发 BadImageFor ...
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Cl ...
随机推荐
- elasticsearch(6) 映射和分析
类似关系型数据库中每个字段都有对应的数据类型,例如nvarchar.int.date等等,elasticsearch也会将文档中的字段映射成对应的数据类型,这一映射可以使ES自动生成的,也是可以由我们 ...
- L347
Even Educators Believe These 7 Myths About Learning1. Individuals learn better when they receive inf ...
- Qt终结者之粒子系统
前言 粒子系统用于模拟一些特定的模糊效果,如爆炸.烟火.雪花.水流等.使用传统的渲染技术实现粒子效果比较困难,但是使用QML粒子系统能十分方便的实现各种粒子效果,使你的界面更加炫酷,动感. QML中的 ...
- CSS内嵌样式实现打字效果
<style> *{margin:0;padding:0;} @keyframes typing { from { width: 0; } } @keyframes blink-caret ...
- Action访问Servlet API的三种方法
一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...
- 基于testng框架的web自动化测试
package baidutest; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.o ...
- 面向对象text 01 盖伦vs瑞文vs提莫
''' Text For Class: League of Legends Garen vs Riven vs Teemo ''' import random # 全局随机 import time c ...
- tp5 删除服务器文件
public function test(){ //ROOT_PATH . 'public' . DS . 'uploads' $filename = ROOT_PATH . 'public' . D ...
- Go Lang
IDE: https://www.jetbrains.com/products.html?fromMenu#type=ide Study: http://www.runoob.com/go/go-en ...
- redis持久化方案(十)
方案分为两种方式: 1>Rdb方式 介绍:redis默认的方式,redis通过快照来将数据持久化到磁盘中 a.设置持久化快照的条件 在redis.conf中修改持久化快照的条件,如下: 比如:如 ...