jieba结巴分词加入自定义词典


参考 jieba官方文档

分词

返回generator

jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用

返回list

jieba.lcut 以及 jieba.lcut_for_search 直接返回 list(采用这种方式更加方便)

import jieba
jieba.cut("大连圣亚在大连")
#输出:<generator object Tokenizer.cut at 0x0000026D05FC2A48>
print([i for i in jieba.cut("大连圣亚在大连")])
#输出:['大连', '圣亚', '在', '大连']
jieba.lcut("大连圣亚在大连")
#输出:['大连', '圣亚', '在', '大连']

添加自定义词典

开发者可以指定自己自定义的词典,以便包含jieba词库里没有的词。虽然jieba有新词识别能力,但是自行添加新词可以保证更高的正确率

jieba.load_userdict(r"C:\Users\ASUS\Desktop\user_dict.txt")
print([i for i in jieba.cut("大连圣亚在大连")])
#输出:['大连圣亚', '在', '大连']

此处错误记录:当文件路径前我没有加r的时候,会报错:
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

词典格式和dict.txt一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
其中词频我不太懂指的是什么。

动态调整词典

使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。这是对“添加自定义词典”功能的补充。

使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来,这个我不太懂在干啥。

jieba.add_word("大连圣亚")
print([i for i in jieba.cut("大连圣亚在大连")])
#输出:['大连圣亚', '在', '大连']
jieba.lcut("大连圣亚在大连")
#输出:['大连圣亚', '在', '大连']
  • 13
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值