当前位置:   article > 正文

python使用结巴分词(jieba)创建自己的词典/词库_jieba.load_userdict(file_name)

jieba.load_userdict(file_name)

原文地址:https://ptorch.com/news/204.html

为什么需要在python使用结巴分词(jieba)创建自己的词典/词库,因为很多时候分词给我们的结果了能刚好相反,如:不回家变成了不,回家;从上一篇文章文章我们已经讲诉了python使用结巴中文分词以及训练自己的分词词典,基本的安装和基本使用大家直接去看那篇文章即可,我们主要介绍如何python创建自己的词典。

一、创建分词字典

1、准备词典

创建一个dict.txt,然后写入你的分词,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。

  1. 不处理 nr
  2. 不还款
  3. 中国银行
  4. 根本打不开

2、编写python代码

在分词前通过jieba.load_userdict(file_name)来加载分词字典:

  1. #-*- coding:utf-8 -*-
  2. import jieba
  3. jieba.load_userdict("./dict.txt")
  4. word_list = jieba.cut("我今天不处理逾期信用贷款,因为你们中国银行的APP根本打不开")
  5. print("|".join(word_list))

3、分词对比

第一张,未添加字典

pytho结巴分词

第二张:添加了字典

python使用结巴分词(jieba)创建自己的词典/词库

可以看出,我们更加明确了用户的意图,不处理我们识别为处理,这样的事情在识别意图的时候还是比较坑的!

二、使用add_word和suggest_freq

  • 使用add_word(word, freq=None, tag=None)del_word(word)可在程序中动态修改词典。
  • 使用suggest_freq(segment, tune=True)可调节单个词语的词频,使其能(或不能)被分出来。

实现代码:

  1. #-*- coding:utf-8 -*-
  2. import jieba
  3. jieba.suggest_freq('不处理',True)
  4. jieba.add_word('不处理',tag='d')
  5. jieba.add_word('中国银行APP',tag='d')
  6. word_list = jieba.cut("我今天不处理逾期信用贷款,因为你们中国银行APP根本打不开")
  7. print("|".join(word_list))

实现的结果和上面的相同,所以不做过多的对比描述

注意:
add_word只是一次性的添加分词字典,不是直接将内容添加到结巴库中了;同时此方法的代码可能比较多,所以感觉没有方法一好

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/243312
推荐阅读
相关标签
  

闽ICP备14008679号