jieba:利用jieba分词

目录

三种分词模式

添加自定义词典进行分词


三种分词模式

jieba提供了三种分词模式,分别是全模式,精确模式和搜索引擎模式。

全模式下会将所有可能的词语都进行分词,精确模式下会尽可能的将句子精确切开,搜索引擎模式实在精确模式的基础上,对长词再进行划分,提高分词的召回率。使用cut和cut_for_search即可实现这三种分词模式

jieba.cut 方法接受三个输入参数:需要分词的字符串,cut_all参数用来控制是否采用全模式,HMM参数用来控制是否使用HMM模型。

jieba.cut_for_search 方法接受两个参数:需要分词的字符串,是否使用HMM模型。

import jieba 
sentence = 'jieba提供了三种分词模式,分别是全模式,精确模式和搜索引擎模式。'

# 全模式
seg_list = jieba.cut(sentence, cut_all = True)
print("全模式:"," ".join(seg_list))
# 精确模式(cut方法的默认模式)
seg_list = jieba.cut(sentence, cut_all = False)
print("精确模式:"," ".join(seg_list))
# 搜索引擎模式
seg_list = jieba.cut_for_search(sentence)
print("搜索引擎模式:"," ".join(seg_list))

输出:

 

 另:jieba分词时,python文件名不能叫jieba,否则会导致jieba没有cut属性等错误。待分词的字符串可以是unicode或UTf-8字符串、GBK字符串,但是不建议直接输入GBK字符串,可能无法预料地错误解码成UTF-8。以及上述方法返回的都是一个可迭代的generator,也可以使用jieba.lcut和jieba.lcut_for_search直接返回list。

添加自定义词典进行分词

可以自行添加词典,以便保证jieba能够识别想识别的且jieba词库中没有的词。

add_word(word, feq = None, tag = None),del_word(word) 可以很方便的动态修改词库。

suggest_freq(segment, tune = True) 可调节单个词语的词频,使其能(或不能)被分出来。

jieba.load_userdict(file) ,通过file指定词典路径或文件对象(若路径或二进制文件,则文件需为UTF-8编码),加载用户自定义词典,词典格式为一个词占一行,每一行分三部分:词语、词频(可省略)、词性(可省略),空格隔开。

import jieba 
sentence = 'jieba提供了三种分词模式,分别是全模式,精确模式和搜索引擎模式。'

seg_list = jieba.cut(sentence, cut_all = False)
print("添加前:"," ".join(seg_list))

jieba.del_word('词模式')
seg_list = jieba.cut(sentence, cut_all = False)
print("删除后:"," ".join(seg_list))

jieba.add_word('分词模式')
seg_list = jieba.cut(sentence, cut_all = False)
print("添加后:"," ".join(seg_list))

jieba.load_userdict('./word.txt')
seg_list = jieba.cut(sentence, cut_all = False)
print("添加词典后:"," ".join(seg_list))

输出:

其中,word.txt文件内容如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值