由于我安装的是 Python3 ,所以我是通过 pip3 来安装 jieba 分词模块:
1 pip3 install jieba
执行完上面的一步之后,我们就已经成功安装了 jieba 分词模块了,以下我们来进行一个简单的测试,看看我们是否安装成功:
1 # -*- coding: utf-8 -*- 2 3 # 引入结巴分词模块 4 import jieba 5 6 # 定义字符串 7 s = u‘杭州今天天气如何?‘ 8 9 # 调用 jieba 分词的 cut 分词方法 10 cut = jieba.cut(s) 11 12 # 输出结果 13 print(‘【Output】‘) 14 print(cut) 15 print(‘,‘.join(cut))
下面我们来看看结果:
由上图可以得出,cut 的结果返回的是一个生成器,最后的分词结果是: 杭州,今天天气,如何,?
到了这一步,就能证明我们的结巴分词模块已经安装成功了。
结巴分词的三种模式
接下来我们需要看看结巴分词的使用,首先介绍结巴分词的三种模式:精确模式、全模式、搜索引擎模式,以下我们举例介绍:
1 # -*- coding: utf-8 -*- 2 3 # 引入结巴分词模块 4 import jieba 5 6 # 定义字符串 7 s = u‘我想元旦开车载我女朋友去杭州西湖参观和游玩。路线该怎么走?‘ 8 9 # 精确模式 10 print(‘精确模式:‘) 11 print(‘|‘.join(jieba.cut(s))) 12 print(‘\n‘) 13 14 # 全模式 15 print(‘全模式:‘) 16 print(‘|‘.join(jieba.cut(s,cut_all = True))) 17 print(‘\n‘) 18 19 # 搜索引擎模式 20 print(‘搜索引擎模式:‘) 21 print(‘|‘.join(jieba.cut_for_search(s)))
由上可见,全模式得到的分词比较多,也比较完全。
结巴分词词性
我们知道,每个词语都有其词性,比如:动词、形容词、名词等等,使用结巴分词的 posseg 这个模块,就可以得到每个词的词性,例如:
1 # -*- coding: utf-8 -*- 2 3 # 引入结巴分词词性模块 4 import jieba.posseg as psg 5 6 # 定义字符串 7 s = u‘我想元旦开车载我女朋友去杭州西湖参观和游玩。路线该怎么走?‘ 8 9 # 获取词性 10 print(‘分词结果:‘) 11 print([(x.word,x.flag) for x in psg.cut(s)])
由上图我们可以成功的得到每个词的词性,这对于我们对分词结果做进一步处理很有帮助,同时,我们还能只获取分词结果列表中的某一类词性,如:获取分词结果列表中的名词,那么我们可以这样过滤:
1 # -*- coding: utf-8 -*- 2 3 # 引入结巴分词词性模块 4 import jieba.posseg as psg 5 6 # 定义字符串 7 s = u‘我想元旦开车载我女朋友去杭州西湖参观和游玩。路线该怎么走?‘ 8 9 # 获取词性是名词的结果 10 print(‘获取词性是名词的词语:‘) 11 print([(x.word,x.flag) for x in psg.cut(s) if x.flag.startswith(‘n‘)])
以上得到的,就是我们这句话中可能是名词的词语的结果集了。如果要知道每个字母代表什么词性的话,下面我们将来介绍(按词性英文首字母排序):
1、形容词(1个一类,4个二类)
a 形容词
ad 副形词
an 名形词
ag 形容词性语素
al 形容词性惯用语
2、区别词(1个一类,2个二类)
b 区别词
bl 区别词性惯用语
3、连词(1个一类,1个二类)
c 连词
cc 并列连词
4、副词(1个一类)
d 副词
5、叹词(1个一类)
e 叹词
6、方位词(1个一类)
f 方位词
7、前缀(1个一类)
h 前缀
8、后缀(1个一类)
k 后缀
9、数词(1个一类,1个二类)
m 数词
mq 数量词
10、名词 (1个一类,7个二类,5个三类)
名词分为以下子类:
n 名词
nr 人名
nr1 汉语姓氏
nr2 汉语名字
nrj 日语人名
nrf 音译人名
ns 地名
nsf 音译地名
nt 机构团体名
nz 其它专名
nl 名词性惯用语
ng 名词性语素
11、拟声词(1个一类)
o 拟声词
12、介词(1个一类,2个二类)
p 介词
pba 介词“把”
pbei 介词“被”
13、量词(1个一类,2个二类)
q 量词
qv 动量词
qt 时量词
14、代词(1个一类,4个二类,6个三类)
r 代词
rr 人称代词
rz 指示代词
rzt 时间指示代词
rzs 处所指示代词
rzv 谓词性指示代词
ry 疑问代词
ryt 时间疑问代词
rys 处所疑问代词
ryv 谓词性疑问代词
rg 代词性语素
15、处所词(1个一类)
s 处所词
16、时间词(1个一类,1个二类)
t 时间词
tg 时间词性语素
17、助词(1个一类,15个二类)
u 助词
uzhe 着
ule 了 喽
uguo 过
ude1 的 底
ude2 地
ude3 得
usuo 所
udeng 等 等等 云云
uyy 一样 一般 似的 般
udh 的话
uls 来讲 来说 而言 说来
uzhi 之
ulian 连 (“连小学生都会”)
18、动词(1个一类,9个二类)
v 动词
vd 副动词
vn 名动词
vshi 动词“是”
vyou 动词“有”
vf 趋向动词
vx 形式动词
vi 不及物动词(内动词)
vl 动词性惯用语
vg 动词性语素
19、标点符号(1个一类,16个二类)
w 标点符号
wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <
wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >
wyz 左引号,全角:“ ‘ 『
wyy 右引号,全角:” ’ 』
wj 句号,全角:。
ww 问号,全角:? 半角:?
wt 叹号,全角:! 半角:!
wd 逗号,全角:, 半角:,
wf 分号,全角:; 半角: ;
wn 顿号,全角:、
wm 冒号,全角:: 半角: :
ws 省略号,全角:…… …
wp 破折号,全角:—— -- ——- 半角:--- ----
wb 百分号千分号,全角:% ‰ 半角:%
wh 单位符号,全角:¥ $ £ ° ℃ 半角:$
20、字符串(1个一类,2个二类)
x 字符串
xx 非语素字
xu 网址URL
21、语气词(1个一类)
y 语气词(delete yg)
22、状态词(1个一类)
z 状态词