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))
[全模式]: ['迅雷', '迅雷不及', '迅雷不及掩耳', '不及', &#
"哑哈"中文分词,更快或更准确,由你来定义。通过简单定制,让分词模块更适用于你的需求。 "Yaha" You can custom your Chinese Word Segmentation efficiently by using Yaha 基本功能: 精确模式,将句子切成最合理的词。 全模式,所有的可能词都被切成词,不消除歧义。 搜索引擎模式,在精确的基础上再次驿长词进行切分,提高召回率,适合搜索引擎创建索引。 备选路径,可生成最好的多条切词路径,可在此基础上根据其它信息得到更精确的分词模式。 可用插件: 正则表达式插件 人名前缀插件 地名后缀插件 定制功能。分词过程产生4种阶段,每个阶段都可以加入个人的定制。 附加功能: 新词学习功能。通过输入大段文字,学习到此内容产生的新老词语。 获取大段文本的关键字。 获取大段文本的摘要。 支持用户自定义词典 Algorithm 核心是基于查找句子的最大概率路径来进行分词。 保证效率的基础上,对分词的各个阶段进行定义,方便用户添加属于自己的分词方法(默认有正则,前缀名字与后缀地名)。 用户可自定义使用动态规划或Dijdstra算法得到最优的一条或多条路径,再次可根据词性(中科大ictclas的作法)等其它信息得获得最优路径。 使用“最大熵”算法来实现对大文本的新词发现能力,很适合使用它来创建自定义词典,或在SNS等场合进行数据挖掘的工作。 相比已存在的结巴分词,去掉了很消耗内存的Trie树结构,以及新词发现能力并不强的HMM模型(未来此模型可能当成一个备选插件加入到此模块)。 目前状态 以上提到的核心部分以及基础功能都已得到实现。不过一些细节正在实现当中,目前还未发布版本。 一些片段的代码可以从我的代码分享得到:http://www.oschina.net/code/list_by_user?id=1180874 标签:Yaha  中文分词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值