Python常用中文分词库:jieba

中文分词,通俗来说,就是将一句(段)话按一定的规则(算法)拆分成词语、成语、单个文字。

中文分词是很多应用技术的前置技术,如搜索引擎、机器翻译、词性标注、相似度分析等,都是先对文本信息分词处理,再用分词结果来搜索、翻译、对比等。

在Python中,最好用的中文分词库是jieba。用“结巴”给一个中文分词库命名,非常生动形象,同时还带有一种程序员式的幽默感。

最好的Python中文分词组件

“结巴”中文分词:做最好的Python中文分词组件

这是jieba分词的slogan,打开jieba分词的GitHub、PyPI源,都会在简介里看到这句标语。这充分体现了jieba开发团队的愿景和目标,在目前看来,jieba已经称得上最好的Python中文分词库。

2022年4月写本文时,jieba在GitHub上已经获得了28.3K的Star,而且数量正在快速增长,足够证明jieba的受欢迎程度非常高。

jieba除了有Python语言的版本,也有C++、JAVA、iOS等十几门编程语言的版本,从PC端到移动端,都可以支持。这点值得给jieba的维护团队点赞,说不定未来,jieba可以做所有语言里最好的中文分词组件。

jieba的使用方法

Step1. 安装jieba

pip install jieba

jieba是第三方库,需要先安装才能使用,直接使用pip安装即可,jieba兼容Python2和Python3,安装命令都一样。如果安装慢,可以添加-i参数指定镜像源。

Step2. 调用jieba进行分词

import jieba

test_content = '迅雷不及掩耳盗铃儿响叮当仁不让世界充满爱之势'
cut_res = jieba.cut(test_content, cut_all=True)
print(list(cut_res))

运行结果:

['迅雷', '迅雷不及', '迅雷不及掩耳', '不及', '掩耳', '掩耳盗铃', 
'儿', '响叮当', '叮当', '当仁不让', '不让', '世界', '充满', '爱',
 '之', '势']

jieba分词的使用非常简单,直接导入jieba库,调用cut()方法,传入需要切分的内容,即可返回分词结果。返回结果是一个可迭代的生成器generator,可以进行遍历,也可以转换成list打印出结果。

jieba分词的四种模式

jieba分词支持四种分词模式:

1.精确模式

试图将句子最精确地切开,适合文本分析。

cut_res = jieba.cut(test_content, cut_all=False)
print('[精确模式]:', list(cut_res))
cut_res = jieba.cut(test_content, cut_all=False, HMM=False)
print('[精确模式]:', list(cut_res))
[精确模式]: ['迅雷不及', '掩耳盗铃', '儿响', '叮', '当仁不让', 
'世界', '充满', '爱之势']
[精确模式]: ['迅雷不及', '掩耳盗铃', '儿', '响', '叮', '当仁不让',
 '世界', '充满', '爱', '之', '势']

精确模式是最常用的分词模式,分词结果不存在冗余数据。

HMM参数默认为True,根据HMM模型(隐马尔可夫模型)自动识别新词。如上面的例子中,HMM为True,结果中将“儿响”、“爱之势”识别成了新词,HMM为False,这些字只能单独成词,分成单个文字。

2.全模式

把句子中所有可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义。

cut_res = jieba.cut(test_content, cut_all=True)
print('[全模式]:', list(cut_res))
[全模式]: ['迅雷', '迅雷不及', '迅雷不及掩耳', '不及', '掩耳', '掩耳盗铃', 
'儿', '响叮当', '叮当', '当仁不让', '不让', '世界', '充满', '爱', '之', '势']

全模式从待分词内容的第

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值