作者:杜振东 涂铭
1. 社区活跃
2. 功能丰富
3. 提供多种编程语言实现
4. 使用简单
Jieba分词结合了基于规则和基于统计两类方法。首先基于前缀词典进行词图扫描,前缀词典是指词典中的词按照前缀包含的顺序排列,如词典中出现了“上”,之后以“上”开头的词都会出现在一起,如词典中出现“上海”一词,进而会出现“上海市”等词,从而形成一种层级包含结构。
其次,基于标注语料、使用动态规划的方法可以找出最大概率路径,并将其作为最终的分词结果。对于未登录词,Jieba使用了基于汉字成词的HMM模型,采用了Viterbi算法进行推导。
02 Jieba的3种分词模式
下面是使用这3种模式的对比。
import jiebasent = '中文分词是文本处理不可或缺的一步!'seg_list = jieba.cut(sent, cut_all=True)print('全模式:', '/ ' .join(seg_list)) seg_list = jieba.cut(sent, cut_all=False)print('精确模式:', '/ '.join(seg_list)) seg_list = jieba.cut(sent) print('默认精确模式:', '/ '.join(seg_list))seg_list = jieba.cut_for_search(sent) print('搜索引擎模式', '/ '.join(seg_list))可以看到,在全模式和搜索引擎模式下,Jieba会把分词的所有可能都打印出来。一般直接使用精确模式即可,但是在某些模糊匹配场景下,使用全模式或搜索引擎模式更适合。
涂铭,数据架构师和人工智能技术专家,曾就职于阿里,现就职于腾讯。对大数据、自然语言处理、图像识别、Python、Java等相关技术有深入的研究,积累了丰富的实践经验。
推荐语:腾讯、国家标准委AI专家撰写,详解NLP和人机交互,从算法、实战3维度讲解聊天机器人原理、实现与工程实践。

