Python3.6 结巴分词安装和使用

Posted 咖啡屋小罗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3.6 结巴分词安装和使用相关的知识,希望对你有一定的参考价值。

由于我安装的是 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 状态词

以上是关于Python3.6 结巴分词安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

结巴分词

python中文分词,使用结巴分词对python进行分词

python结巴分词

结巴分词和自然语言处理HanLP处理手记

结巴分词获取关键词时怎么过滤掉一些停用词

jieba结巴分词