本文涉及jieba.cut、jieba.addword、jieba.load_userdict这3个函数
运行环境:IPython
import jieba;
for w in jieba.cut("我爱Python"):
print(w)
输出:
Building prefix dict from the default dictionary ...
Loading model from cache D:\TEMP\jieba.cache
Loading model cost 1.150 seconds.
Prefix dict has been built succesfully.
我
爱
Python
可以看到,该句的分词成功。
接下来来对分词界中一个很污很难的测试样例进行分词:
for w in jieba.cut("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"):
print(w)
输出:
工信处
女干事
每月
经过
下属
科室
都
要
亲口
交代
24
口
交换机
等
技术性
器件
的
安装
工作
输出结果表示准确率很高。
seg_list = jieba.cut("真武七截阵和天罡北斗阵哪个更厉害呢?")
for w in seg_list:
print(w)
输出结果:
真武
七截阵
和
天罡
北斗
阵
哪个
更
厉害
呢
?
从这里可以看到,一些比较偏的(比如这里小说中的特殊词汇——武功招式)就不可以被正确分词了,add_word函数提供了解决方法:
jieba.add_word('真武七截阵') #add_word保证添加的词语不会被cut掉
jieba.add_word('天罡北斗阵')
seg_list = jieba.cut("真武七截阵和天罡北斗阵哪个更厉害呢?")
for w in seg_list:
print(w)
输出结果:
真武七截阵
和
天罡北斗阵
哪个
更
厉害
呢
?
那么自然就会想到,如果靠add_word人工添加词,这样的效率实在太低了,load_userdic提供了解决方法:
jieba.load_userdict('金庸武功招式.txt')
#添加词库矫正jieba分词
#“金庸武功招式”所在词库地址:http://pinyin.sogou.com/dict/,下载到的是.scel格式文件,可使用 深蓝词库转换 将文件格式转换为txt格式