赞
踩
【今日知图】替换
- r 替换当前字符
- R 替换当前行光标后的字符
0.说在前面1.结巴分词三种模式2.自定义字典3.动态修改字典4.词性标注及关键字提取5.高级使用6.作者的话
微信群讨论了jieba,这里我将学到的jieba分享一波,大家一起来学习一下。
默认模式
- s_list=jieba.cut("我来到北京清华大学",cut_all=True) # 默认为False
- print("[全模式]:"+'/'.join(s_list))
精确模式
- s_list=jieba.cut("我来到北京清华大学",) # 默认是精确模式cut_all=False
- print("[默认模式]:"+'/'.join(s_list))
搜索引擎模式
- s_list=jieba.cut_for_search("小米毕业于中科院计算所,后来在日本东京大学留学深造") # 搜索引擎模式
- print("[默认模式]:"+'/'.join(s_list))
以上结果
- [全模式]:我/来到/北京/清华/清华大学/华大/大学
- [默认模式]:我/来到/北京/清华大学
- [默认模式]:小米/毕业/于/中科/计算/中科院/计算所/中科院计算所/,/后来/在/日本/东京/大学/日本东京大学/留学/深造
jieba默认分词
- test_string=("医疗卫生事业是强国安民的光荣事业,是为实现中国梦奠定基础的伟大事业。")
- words=jieba.cut(test_string)
- print('jieba默认分词效果')
- print('/'.join(words))
加载自定义字典
- # 自定义字典 test_string.txt
- 光荣事业 4 nz
- 中国梦 4 nl
- 奠定基础 4 nz
- # 自定义字典实现
- jieba.load_userdict('test_string.txt')
- words=jieba.cut(test_string)
- print("加载自定义字典后,分词效果")
- print('/'.join(words))
以上结果
- jieba默认分词效果
- 医疗卫生/事业/是/强国/安民/的/光荣/事业/,/是/为/实现/中国/梦/奠定/基础/的/伟大事业/。
- 加载自定义字典后,分词效果
- 医疗卫生/事业/是/强国/安民/的/光荣事业/,/是/为/实现/中国/梦/奠定基础/的/伟大事业/。
- t=jieba.suggest_freq(('医疗','卫生'),True)
- print(t)
- print('/'.join(jieba.cut(test_string, HMM=False)))
- t=jieba.suggest_freq(('中国梦'),True)
- print(t)
- print('/'.join(jieba.cut(test_string, HMM=False)))
以上结果
- 0
- 医疗/卫生事业/是/强国/安民/的/光荣事业/,/是/为/实现/中国/梦/奠定基础/的/伟大事业/。
- 9
- 医疗/卫生事业/是/强国/安民/的/光荣事业/,/是/为/实现/中国梦/奠定基础/的/伟大事业/。
- import jieba.posseg as pseg
- words=pseg.cut(test_string)
- for word, flag in words:
- print('%s %s' % (word, flag))
以上结果
医疗 n 卫生事业 n 是 v 强国 n 安民 nr 的 uj 光荣事业 nz , x 是 v 为 p 实现 v 中国梦 nl 奠定基础 nz 的 uj 伟大事业 nz 。 x
自定义处理:
- ----------自定义字典文件test_string.txt--------
- 光荣事业 4 nz
- 中国梦 4 nl
- 奠定基础 4 nz
- ----------issue.py----------
- import jieba
- test_string=("医疗卫生事业是强国安民的光荣事业,是为实现中国梦奠定基础的伟大事业。")
- words=jieba.cut(test_string)
- print('jieba默认分词效果')
- print('/'.join(words))
- # 加载自定义字典
- jieba.load_userdict('test_string.txt')
- words=jieba.cut(test_string)
- print("加载自定义字典后,分词效果")
- print('/'.join(words))
- ----------output----------
- 医疗卫生/事业/是/强国/安民/的/光荣/事业/,/是/为/实现/中国/梦/奠定/基础/的/伟大事业/。
- 加载自定义字典后,分词效果
- 医疗卫生/事业/是/强国/安民/的/光荣事业/,/是/为/实现/中国/梦/奠定基础/的/伟大事业/。
问题
观察以上output会发现,光荣事业跟奠定基础按照了字典文件进行了合并,但是中国梦并没有,这是什么问题呢?
于是得出以下结论:
那如何解决呢?
直接改变主字典路径(0.28 之前的版本是不能指定主词典的路径的,有了延迟加载机制后,你可以改变主词典的路径),不用jieba默认的:
- jieba默认分词效果
- 医疗卫生/事业/是/强国/安民/的/光荣/事业/,/是/为/实现/中国/梦/奠定/基础/的/伟大事业/。
- 加载自定义字典后,分词效果
- 医疗/卫生/事业/是/强国安民/的/光荣事业/,/是/为/实现/中国梦/奠定基础/的/伟大事业/。
如果您觉得本公众号对您有帮助,欢迎转发,更多内容请关注本公众号知识图谱系列!
需要源代码的点击阅读原文,即可获取,不要忘记star哦!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。