Python之结巴分词

      小白在Long  Long ago研究过一段时间的结巴分词,当时是因为工作需要,很长时间过去了,有一点点生疏,现把之前学习的笔记整理一下,以便以后的使用,也分享一下~

     首先,需要先安装结巴分词包。

使用Anaconda prompt进行安装

pip install jieba

spyder安装第三方包可参考小白之前的博客哦(https://blog.csdn.net/Jarry_cm/article/details/90479078)

结巴分词支持三种分词模式:
精确模式:将句子最精确地切开,适合文本分析;
全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

来一个栗子~

import jieba
seg_list1 = jieba.cut("我最喜欢吃冰糖葫芦",cut_all = True)#全模式
seg_list2 = jieba.cut("我最喜欢吃冰糖葫芦",cut_all = False)#精确模式,默认状态下也是精确模式
seg_list3 = jieba.cut("我最喜欢吃冰糖葫芦")#默认
seg_list4 = jieba.cut_for_search("我最喜欢吃冰糖葫芦")#搜索引擎模式

print ("Full Mode:" + " ".join(seg_list1))
print ("Precise Mode:" + " ".join(seg_list2))
print ("Search Mode:" + " ".join(seg_list3))
print ("Default Mode:" + " ".join(seg_list4))

看一下结果:

Full Mode:我 最 喜欢 吃 冰糖 冰糖葫芦 糖葫芦 葫芦
Precise Mode:我 最 喜欢 吃 冰糖葫芦
Search Mode:我 最 喜欢 吃 冰糖葫芦
Default Mode:我 最 喜欢 吃 冰糖 葫芦 糖葫芦 冰糖葫芦

从结果可以看出,全模式是将所有可能的分词都展示出来,精确模式是将一句话精准的切分开,函数默认是使用精确模式的,搜索引擎模式,是在精确模式的基础上,又将冰糖葫芦拆分成可能的分词,对于这句话,和全模式是一样的,只是词的顺序不同。

理一下两个函数的用法:

jieba.cut该方法接受三个输入参数:

(1)需要分词的字符串;

(2)cut_all 参数用来控制是否采用全模式;

(3)HMM 参数用来控制是否使用 HMM 模型。  
jieba.cut_for_search 方法接受两个参数:

(1)需要分词的字符串;

(2)是否使用 HMM 模型。

该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8。  

        jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用  jieba.lcut 以及 jieba.lcut_for_search 直接返回 list。 

seg_list5 = jieba.lcut_for_search("我最喜欢吃冰糖葫芦")#搜索引擎模式
seg_list6 = jieba.lcut("我最喜欢吃冰糖葫芦")
print (seg_list5)
print (seg_list6)

结果为:

['我', '最', '喜欢', '吃', '冰糖', '葫芦', '糖葫芦', '冰糖葫芦']
['我', '最', '喜欢', '吃', '冰糖葫芦']

        小白这次就先总结这几个模式的区别以及用法,之后会再分享jieba联合自定义词典的使用,这个也是在语义分析中用的比较多的。

上一篇:python好玩的词云和Jieba库的使用


下一篇:Python实战案例,jieba模块学习,简单品读小说