【环境】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);

}

HanLP的自定义词典使用方式与注意事项介绍的更多相关文章

  1. 在使用Hanlp配置自定义词典时遇到的问题

    要使用hanlp加载自定义词典可以通过修改配置文件hanlp.properties来实现.要注意的点是: 1. root根路径的配置: hanlp.properties中配置如下: #本配置文件中的路 ...

  2. Hanlp配置自定义词典遇到的问题与解决方法

    本文是整理了部分网友在配置hanlp自定义词典时遇到的一小部分问题,同时针对这些问题,也提供另一些解决的方案以及思路.这里分享给大家学习参考. 要使用hanlp加载自定义词典可以通过修改配置文件han ...

  3. hanlp使用自定义词典抽取关键词

    1.在data/dictionary/custom/路径下新建文件 myDict.txt.,添加新的单词,单词,词性,词频.并删除当前文件夹下的bin文件, 2.在hanlp配置文件中的CustomD ...

  4. MapReduce实现与自定义词典文件基于hanLP的中文分词详解

    前言: 文本分类任务的第1步,就是对语料进行分词.在单机模式下,可以选择python jieba分词,使用起来较方便.但是如果希望在Hadoop集群上通过mapreduce程序来进行分词,则hanLP ...

  5. HanLP自定义词典注意事项

    对于词典,直接加载文本会很慢,所以HanLP对于文本文件做了一些预处理,生成了后缀名为.txt.bin的二进制文件. 这些二进制文件相当于缓存,避免了每次加载去读取多个文件. 通过这种txt和bin结 ...

  6. IK-Analyzer(5.3.1)动态配置自定义词典

    参考文献:http://blog.csdn.net/fatpanda/article/details/37911079 jar包: IK-Analyzer-extra-5.3.1.jar IKAnal ...

  7. HanLP代码与词典分离方案与流程

    之前在spark环境中一直用的是portable版本,词条数量不是很够,且有心想把jieba,swcs词典加进来, 其他像ik,ansi-seg等分词词典由于没有词性并没有加进来. 本次修改主要是采用 ...

  8. python调用jieba(结巴)分词 加入自定义词典和去停用词功能

    把语料从数据库提取出来以后就要进行分词啦,我是在linux环境下做的,先把jieba安装好,然后找到内容是build jieba PKG-INFO setup.py test的那个文件夹(我这边是ji ...

  9. Asp.Net 自定义储存Session方式

    介绍 由于针对于自定义Session存储方式比较少,所以整理了使用自定义Session的方式.用于构建自定义会话存储提供程序代码,而不是使用默认的 SessionStore 介绍 背景 本文使用的是m ...

随机推荐

  1. Collection集合复习方法回顾

    Collection集合方法: add()  //添加元素 remove()    //移除元素 size()                                     //返回集合长度 ...

  2. 登陆网页模板 - 1 (HTML+CSS)

    一个用HTML和CSS写的简单登录页面,主要是用CSS来进行修饰美化的 这个登陆界面有输入账号和密码的表单,还有登陆和注册两个按键,点击按键分别会输出“您已成功登陆,稍后会跳转到您需要的页面~”,“您 ...

  3. Unity 3D第三人称视角、用途广泛限定角度(视角不能360度翻转)

    Unity第三人称相机视角控制 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...

  4. Gym101986: Asia Tsukuba Regional Contest(寒假自训第12场)

    A .Secret of Chocolate Poles 题意:有黑白两种木块,黑色有1,K两种长度: 白色只有1一种长度,问满足黑白黑...白黑形式,长度为L的组合种类. 思路:直接DP即可. #i ...

  5. 配置apache-maven-3.6.0时所遇到的坑(一)

    在命令行窗口中输入:mvn  -v    或 直接    mvn    时报错:“错误: 找不到或无法加载主类 org.codehaus.plexus.classworlds.launcher.Lau ...

  6. Linux Distribution 分支

    https://distrowatch.com/ DistroWatch是一个包含了各种Linux发行版及其他自由/开放源代码的类Unix操作系统的新闻.人气排名.以及其他一般信息等的网站.它包含了数 ...

  7. MySQL安装配置错误\日常使用错误

    1.出现报错---应用程序无法正常启动0xc000007b 安装direct 9.0 安装vc++ 2005 安装vc++ 2008 安装vc++ 2012(x64和x86都要装) 安装 .NET4. ...

  8. 20165313 《Java程序设计》第四周学习总结

    教材学习总结 public:1.用在类前.2.用在方法前 .3. 用在成员变量前 private:用在成员变量前 final1.用在类前2.用在方法前3.用在成员变量前 static:1.所有对象公有 ...

  9. MySQL Transaction--两阶段提交事务

    分布式事务两阶段提交 在分布式事务中,需要协调所有分布式原子事务参与者,并决定提交或回滚分布式事务,因此采用两阶段提交协议: 第一阶段为请求阶段或表决阶段,事务协调者通知事务参与者准备提交或取消事务, ...

  10. pycharm 的操作1