四、jieba的安装和简介
“结巴”中文分词支持繁体分词,支持自定义词典,还支持四种分词模式。
1)精确模式,试图将句子最精确地切开,适合文本分析。
2)全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义。
3)搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
4)paddle模式,利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。
它的安装方法很简单,可以直接使用PIP进行安装:
pip install jieba
它的常用函数如表12-1所示。
表12- 1 jieba库的常用函数
函数名称 | 描述 |
jieba.lcut(s) | 精确模式,返回一个列表类型。 |
jieba.lcut(s,cut_all=True) | 全模式,返回一个列表类型。 |
jieba.lcut_for_search(s) | 搜索引擎模式,返回一个列表类型。 |
jieba.add_word(w) | 向分词的词典增加新词w。 |
五、jieba库的三种分词模式
应用jieba库的三种分词模式,对字符串“jieba是优秀的中文分词第三方库”进行分词。
import jieba
s='jieba是优秀的中文分词第三方库'
result=jieba.lcut(s) #精确模式
print("精确模式:",result)
result=jieba.lcut(s,cut_all=True) #全模式
print("全模式:",result)
result=jieba.lcut_for_search(s) #搜索引擎模式
print("搜索引擎模式:",result)
#jieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持
#result = jieba.cut(s,use_paddle=True) # 使用paddle模式
# print("paddle模式:",result)
jieba.add_word('计算机编程语言') #加入新词
result=jieba.lcut(s) #精确模式
print("加入新词后的精确模式:",result)
结果如下:
精确模式: ['Python', '是', '一门', '计算机', '编程语言']
全模式: ['Python', '是', '一门', '计算', '计算机', '算机', '编程', '编程语言', '语言']
搜索引擎模式: ['Python', '是', '一门', '计算', '算机', '计算机', '编程', '语言', '编程语言']
加入新词后的精确模式: ['Python', '是', '一门', '计算机编程语言']
从结果中可以对比看到精确模式将字符串分割成等量的中文词组,而全模式则把字符串的全部分词都列出来了,冗余性比较大。搜索引擎模式首先执行精确模式,然后再对其中长词进一步切分获得最终分词结果。精确模式因为不会产生冗余,比较常用。搜索引擎模式更倾向于寻找短词语,这种方式有一定的冗余度,但冗余度相对全模式少一些。在某个项目中应该选择哪一种分词模式,要看项目的实际需求。
当加入新词“计算机编程语言”后,当遇到它时就不会再进行分词。
对于paddle模式,需要满足两个条件:jieba 的版本要在0.40版以上,并且需要安装paddlepaddle-tiny库。但是至本书出版时止,paddlepaddle-tiny支持的Python最高版本是python3.7,如果是Python高版本则不能运行。详细可查看网站https://pypi.org/project/paddlepaddle-tiny/#files。