Python中jieba库的使用
jieba库是一款优秀的 Python 第三方中文分词库,利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果目录jieba库的安装与引用安装引用jiaba库分词功能说明jieba.cut 和 jieba.lcut1.精确模式2.全模式3.搜索引擎模式4. paddle模式5.向分词词典添加新词6. jieba.Tokenizer(dictionary=DEFAULT_D
jieba库是一款优秀的 Python 第三方中文分词库,利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果
目录
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()
更多推荐
所有评论(0)