HanLP的自定义词典使用方式与注意事项介绍
【环境】python 2.7
方法一:使用pyhanlp,具体方法如下:
pip install pyhanlp # 安装pyhanlp
进入python安装包路径,如
/usr/lib/python2.7/site-packages/pyhanlp/static/
将http://hanlp.properties.in改名为备份文件。
mv hanlp.properties.in hanlp.properties.in.bak
修改hanlp.properties
vim hanlp.properties
将CustomDictionaryPath修改为你自定义的词典路径,如:
CustomDictionaryPath=data/dictionary/custom/self_define_dict.txt; 现代汉语补充词库.txt; 全国地名大全.txt; 人名词典.txt; 机构名词典.txt; 上海地名.txt ns; data/dictionary/person/nrf.txt nrf;
保存。
python脚本,调用pyhanlp示例:
from pyhanlp import *
print HanLP.segment("在你想要放弃的时候,想想是什么让你当初坚持走到了这里。总是有人要赢的,那为什么不能是我")
运行脚本后,系统会检查配置文件hanlp.properties,读取词库的路径,对于自定义词典,第一次会重新生成二进制文件(以后直接用)。
方法二:使用grpc调用hanlp(python调用java包常用手段)
方法三:使用hanlp调用jar包(官方文档有说明),自定义词典没设置成功。
注意事项:
对于词典,直接加载文本会很慢,所以HanLP对于文本文件做了一些预处理,生成了后缀名为.txt.bin的二进制文件。
这些二进制文件相当于缓存,避免了每次加载去读取多个文件。
通过这种txt和bin结合的方式,HanLP一方面方便用户编辑查看词典,另一方面bin方便加载,这种方式可谓是兼二者之长,设计上堪称典范。
打开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,添加一些词语。比如里面加上”兰陵笑笑生“。
随便编一个程序测试一下
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);
}
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java Spring Data www9992019com1323861OOO8Redis实战与配置参数详解 application.pr...
application.properties。Java Spring Boot 2.0连接Redis服务器,可以在配置文件 application.properties中修改控制参数,包括安全、连接池、超时等参数。 Redis作为开源分布式高并发缓存,使用范围非常广泛,主流互联网公司几乎都在使用。 Java Spring Boot 2.0实战开发Redis缓存可以参考下面的步骤,Redis安装可以直接使用Linux仓库,特定版本请使用Wget下载安装。 Java Spring Boot 2.0连接Redis服务器,可以在配置文件 application.properties中修改控制参数,包括安全、连接池、超时等参数。 下面介绍一下如何使用Java Spring Boot 2.0开发Redis缓存。 首先第一步要新建一个Java Spring Boot 2.0的项目,然后引入Spring Data Redis,Linux安装Redis服务器: 1、创建 Spring Boot 2.0 项目 使用Eclipse或者IDEA新建即可,完整的项目的代码结构如下 f8c03885b394cfb...
- 下一篇
2018再见|2019你好
前言 只有光头才能变强 Hello,首先祝大家元旦快乐!(文末有个人送书福利) 2018年自己成长了很多,这篇文章来回顾一下2018我做了什么事,展望2019年~ 背景:2019应届生,方向:Java 上半年(一月份到五月份) 在2018年年初,我就给自己定下一个目标:“在今年暑假可以找到一份实习,如果实习单位就不错就一直做下去,我不希望爸妈担心我工作的事“。对的,是一个非常简单明确的目标。 所以我在年初的时候就"一早早"开始准备面试题了。当时是把自己写过的笔记复习一遍,再根据不同的技术类型来搜搜相关的面试题巩固一下,并整理成文章记录下来。 比如Servlet技术我就整理过Servlet相关的面试题,JSP技术就整理过JSP相关的面试题,JDBC技术就整理过JDBC的面试题。反正我觉得蛮重要的知识点,都整理过一遍。 在二月份,我开始在全网上更新我的文章(也包括了微信公众号),期间也认识了不少的开发者,一起学习交流和进步(这是一件有满足感的事) 在三月份,有不少的人告诉我已经有企业在招实习生了,让我去试试。出于当时的不自信,觉得自己还没复习好,肯定是没机会的了,所以简历都没写。 后话:其...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装