ITPub博客

在Hanlp词典和jieba词典中手动添加未登录词

国内数据库 作者:lanlantian123456 时间:2018-11-08 17:08:28 0 删除 编辑

在使用Hanlp词典或者jieba词典进行分词的时候,会出现分词不准的情况,原因是内置词典中并没有收录当前这个词,也就是我们所说的未登录词,只要把这个词加入到内置词典中就可以解决类似问题,如何操作呢,下面我们来看一下:


一,在Hanlp词典中添加未登录词

1.找到hanlp内置词典目录

位于D:\hnlp\hanlp_code\hanlp\data\dictionary\custom


也就是Hanlp安装包中的data\dictionary\custom下目录



2.将未登录词以词名,词性,词频的格式添加到文件中(句首或者句尾都可以)


3.将字典的同名bin文件删除掉

执行文件时读取的是bin文件,必须删掉后等下次执行时重新生成,新字典才发挥作用



4.使用新字典重新执行文件

执行时会遇到没有相关bin文件的提示,不过放心,程序会自动生成一个新的bin文件,骚等片刻,就好了。



验证结果是否正确



 


二,在jieba词典中添加未登录词

先来看看没添加登录词的效果



好我们需要开始添加未登录词了


1.新建一个dict.txt文件,将未登录词直接添加到txt文件中


2.加载dict.txt文件

这个过程有一步要动态调整词频,因为词典默认是从词频较高的词开始匹配,调整未登录词的词频靠前,这样可以优先匹配


#-*- coding=utf8 -*-

import jieba

import re

#将添加有未登录词的词典加载进来

jieba.load_userdict("D:\hnlp\hanlp_code\dict.txt")

 

#动态调整词频,让未登录词的词频自动靠前,这样可以优先匹配

[jieba.suggest_freq(line.strip(), tune=True) for line in open("dict.txt",'r',encoding='utf8')]

 

string="TNM分期不太能明确地区分 ,以及辅助治疗(氟尿嘧啶单药或联合奥沙利铂)"

 

words=jieba.cut(string,HMM=False)

print('/'.join(words))

3.验证分词是否有效



文章来源于小鱼儿的博客 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31557723/viewspace-2219277/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-10-10

  • 博文量
    61
  • 访问量
    20259