jieba库是一款优秀的 Python 第三方中文分词库,利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果
目录
jieba库的安装与引用
安装
引用
jiaba库分词功能说明
jieba.cut 和 jieba.lcut
1.精确模式
2.全模式
3.搜索引擎模式
4. paddle模式
5.向分词词典添加新词
6. jieba.Tokenizer(dictionary=DEFAULT_DICT)
使用案例
《沉默的羔羊》之最多单词
jieba库的安装与引用
安装
cmd中安装:
pip install jieba
Pycharm中安装:
打开 settings(设置),打开 Project Interpreter ,点击 + 号,搜索 jieba ,install Package即可。
引用
使用jieba库之前需要:
import jieba
jiaba库分词功能说明
jieba.cut 和 jieba.lcut
- test_list = jieba.cut("今天阳光明媚", cut_all=True)
- print(test_list)
- >>> <generator object Tokenizer.cut at 0x00000201834973C0>
-
- test_list = jieba.lcut("今天阳光明媚", cut_all=True)
- print(test_list)
- >>> ['今天', '阳光', '阳光明媚', '光明', '明媚']
- # lcut 将返回的对象转化为list对象返回
1.精确模式
精确模式(cut_all=False):试图将语句最精确的切分,不存在冗余数据,适合做文本分析
- test_list = jieba.cut("今天阳光明媚", cut_all=False)
- print("精确模式: " + "*".join(test_list))
-
- >>> 精确模式: 今天*阳光明媚
2.全模式
全模式(cut_all=True):将语句中所有可能是词的词语都切分出来,速度快,但是存在冗余数据
- test_list = jieba.cut("今天阳光明媚", cut_all=True)
- print("全模式: " + "*".join(test_list))
-
- >>> 全模式: 今天*阳光*阳光明媚*光明*明媚
3.搜索引擎模式
搜索引擎模式(cut_for_search ;lcut_for_search):在精确模式的基础上,对长词再次进行切分
- test_list = jieba.cut_for_search("今天阳光明媚,是一个适合出去散步的好天气,我们现在就出发吧") # 搜索引擎模式
- print("搜索引擎模式: " + "*".join(test_list))
-
- >>> 搜索引擎模式: 今天*阳光*光明*明媚*阳光明媚*,*是*一个*适合*出去*散步*的*好*天气*,*我们*现在*就*出发*吧
4. paddle模式
paddle模式(enable_paddle):利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词,同时支持词性标注(paddle模式使用需安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1)
- # 通过enable_paddle接口安装paddlepaddle-tiny,并且import相关代码;
- jieba.enable_paddle() # 初次使用可以自动安装并导入代码
- test_list = jieba.cut(str, use_paddle=True)
- print('Paddle模式: ' + '*'.join(list(test_list)))
-
- >>> Paddle模式: 今天*阳光明媚
5.向分词词典添加新词
jieba.add_word() 向分词词典增加新词
>>>jieba.add_word(“想加入的新词”)
6. jieba.Tokenizer(dictionary=DEFAULT_DICT)
新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射
- test = "今天是一个难得的好天气"
- result = jieba.tokenize(test) # Tokenize:返回词语在原文的起始位置
- for i in result:
- print(i)
-
- >>>
- ('今天', 0, 2)
- ('是', 2, 3)
- ('一个', 3, 5)
- ('难得', 5, 7)
- ('的', 7, 8)
- ('好', 8, 9)
- ('天气', 9, 11)
使用案例
《沉默的羔羊》之最多单词
《沉默的羔羊》中文版内容,请读入内容,分词后输出长度大于等于2且出现频率最多的单词。
如果存在多个单词出现频率一致,请输出按照Unicode排序后最大的单词。
(案例使用书籍只是一个例子,大家可自行更换书籍进行实验,库使用原理相同)
- import jieba
- f = open("沉默的羔羊.txt", encoding='utf-8')
- ls = jieba.lcut(f.read())
- d = {}
- for w in ls:
- if len(w) >= 2:
- d[w] = d.get(w, 0) + 1
- maxc = 0
- maxw = ""
- for k in d:
- if d[k] > maxc :
- maxc = d[k]
- maxw = k
- elif d[k] == maxc and k > maxw:
- maxw = k
- print(maxw)
- f.close()