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

简介:

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

一,在Hanlp词典中添加未登录词
1.找到hanlp内置词典目录
位于D:hnlphanlp_codehanlpdatadictionarycustom

也就是Hanlp安装包中的datadictionarycustom下目录

image

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

image

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

image

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

image

验证结果是否正确
image

 

二,在jieba词典中添加未登录词
先来看看没添加登录词的效果

image

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

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

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

-- coding=utf8 --

import jieba
import re

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

jieba.load_userdict("D:hnlphanlp_codedict.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.验证分词是否有效

image

哦,好的,就是这样!完美!

文章来源于小鱼儿的博客

相关文章
|
3月前
|
机器学习/深度学习 自然语言处理 Java
HanLP — 词性标注
HanLP — 词性标注
33 1
|
自然语言处理
pkuseg 和 jieba 分词对比测试,结果出乎意料...
pkuseg 和 jieba 分词对比测试,结果出乎意料...
|
自然语言处理 Java Python
自然语言处理hanlp------10HanLP的词典分词实现
自然语言处理hanlp------10HanLP的词典分词实现
自然语言处理hanlp------10HanLP的词典分词实现
|
机器学习/深度学习 自然语言处理 Python
|
自然语言处理 搜索推荐
jieba分词有哪些模式,分别详细介绍
jieba分词有哪些模式,分别详细介绍
1114 0
|
自然语言处理 BI
分词
中文分词介绍
分词
|
机器学习/深度学习 人工智能 自然语言处理
分词的那些事
使用阿里云学习分词,分词就是指将连续的自然语言文本切分成具有语义合理性和完整性的词汇序列的过程。
分词的那些事
|
自然语言处理
关于分词
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本文围绕分词作一些入门资源信息介绍,偏分词应用。内容10年前的,不代表最新的内容啊。
143 0
|
自然语言处理
HanLP分词工具中的ViterbiSegment分词流程
本篇文章将重点讲解HanLP的ViterbiSegment分词器类,而不涉及感知机和条件随机场分词器,也不涉及基于字的分词器。因为这些分词器都不是我们在实践中常用的,而且ViterbiSegment也是作者直接封装到HanLP类中的分词器,作者也推荐使用该分词器,同时文本分类包以及其他一些自然语言处理任务包中的分词器也都间接使用了ViterbiSegment分词器。
1124 0
|
自然语言处理
Ansj与hanlp分词工具对比
一、Ansj1、利用DicAnalysis可以自定义词库: 2、但是自定义词库存在局限性,导致有些情况无效:比如:“不好用“的正常分词结果:“不好,用”。 (1)当自定义词库”好用“时,词库无效,分词结果不变。
1129 0