Jieba
# 介绍
jieba库是一个第三方中文分词函数库。
由于中文文本中的单词不是通过空格或者标点符号分割,中文及类似语言存在一个重要的"分词"问题,所以就需要此类语言有一个分词库来进行分词。
# 安装方式
pip3 install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
# 分词原理
- jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了默认的单词,它还提供增加自定义中文单词的功能。jieba还提供精确模式、全模式、搜索引擎模式三种分词模式。
# 使用
# 精确模式
将句子最精确地切开,适合文本分析。
jieba.lcut(str)
- 该函数默认为精确模式,它会将字符串分割成等量的中文词组,返回结果是列表类型。
import jieba
text = "一心一意孤行"
data = jieba.lcut(text)
print(data)
>> ['一心', '一意孤行']
1
2
3
4
5
2
3
4
5
# 全模式
把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。
jieba.lcut(str, cut_all=True)
- 该函数指定
cut_all=True
参数则为全模式,它会将字符串中的所有可能的分词都列出来,冗余性最大,返回结果是列表类型。
import jieba
text = "一心一意孤行"
data = jieba.lcut(text, cut_all=True)
print(data)
>> ['一心', '一心一意', '一意', '一意孤行', '孤行']
1
2
3
4
5
2
3
4
5
# 搜索引擎模式
在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
搜索引擎模式更倾向于寻找短词语,这种方式具有一定冗余度,但冗余度相比全模式较少。
jieba.lcut_for_search(str)
- 该函数为搜索引擎模式,该模式首先执行精确模式,然后再对其中长词进一步切分获得最终结果。
import jieba
text = "一心一意孤行"
data = jieba.lcut_for_search(text)
print(data)
>> ['一心', '一意', '孤行', '一意孤行']
1
2
3
4
5
2
3
4
5
# 添加自定义单词
当默认词库不能满足我们的需求时,比如词库中没有一些网络热词,我们可以先添加自定义单词再进行分词查找。
jieba.add_word()
- 该函数用于添加自定义单词。
import jieba
text = "一心一意孤行奥利给"
print(jieba.lcut(text))
>> ['一心', '一意孤行', '奥利', '给']
jieba.add_word("奥利给")
text = "一心一意孤行奥利给"
print(jieba.lcut(text))
>> ['一心', '一意孤行', '奥利给']
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8