python使用结巴分词的方法介绍

jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(DAG), 再采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。


jieba分词支持三种分词模式:


1. 精确模式, 试图将句子最精确地切开,适合文本分析:


2. 全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;


3. 搜索引擎模式,在精确模式的基础上,对长词再词切分,提高召回率,适合用于搜索引擎分词。


一 结巴分词的安装


pip3 install jieba


二 结巴分词的主要功能


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

  参数1:需要分词的字符串; 

  参数2:cut_all参数用来控制是否采用全模式,默认为精确模式;

          cut_all=True 全模式

          cut_all=false 精确(默认)模式

  参数3:HMM参数用来控制是否适用HMM模型    


2. jieba.cut_for_search:该方法接受两个参数:

  参数1:需要分词的字符串;

  参数2:是否使用HMM模型,

该方法适用于搜索引擎构建倒排索引的分词,粒度比较细。

 


3. jieba.cut 以及jieba.cut_for_search

返回的结构都是可以得到的generator(生成器)

 


4. jieb.lcut 以及 jieba.lcut_for_search 

直接返回list

 


5.jieba.Tokenizer(dictionary=DEFUALT_DICT)

新建自定义分词器,

可用于同时使用不同字典,

jieba.dt为默认分词器,所有全局分词相关函数都是该分词器的映射。

 


三 结巴分词的三种模式

import  jieba


text='赵丽颖主演的正午阳光剧,知否知否应是绿肥红瘦'

1 全模式 cut_all=True

seq_list=jieba.cut(text,cut_all=True)

print(seq_list) #<generator object Tokenizer.cut at 0x0000026EB6F0CD58>

print(list(seq_list))

'''

['赵', '丽', '颖', '主演', '的', '正午', '阳光', '剧', '', '', '知', '否', '知', '否', '应', '是', '绿肥', '绿肥红瘦']

'''

 


2  精确模式 (默认模式) cut_all =False

# 02精确模式

seq_list=jieba.cut(text,cut_all=False)

print(list(seq_list))

'''

['赵丽颖', '主演', '的', '正午', '阳光', '剧', ',', '知否', '知否', '应', '是', '绿肥红瘦']

'''

 


3 搜索引擎模式 cut_for_search

seq_list=jieba.cut_for_search(text,)

print(list(seq_list))

'''

['赵丽颖', '主演', '的', '正午', '阳光', '剧', ',', '知否', '知否', '应', '是', '绿肥', '绿肥红瘦']

'''

 


四 自定义分词器(jieba.Tokenizer)

1 创建词典内容的格式 

一个词语占一行(分三部分)

格式: 词语 词频 词性

如:张三  5

    李四  10 eng



2 自定义词典的导入(load_userdict)

text='赵丽颖主演的正午阳光剧,知否知否应是绿肥红瘦'


# 自定义词典

jieba.load_userdict('自定义词典.txt')

sep_list=jieba.lcut(text)

print('userdict>>>',sep_list)

 


userdict>>> ['赵丽颖', '主演', '的', '正午', '阳光剧', ',', '知否', '知否', '应是', '绿肥红瘦']

 


 五 利用jieba 进行关键词的抽取

1 基于TF-IDF算法的关键词抽取

  详解自然语言处理之TF-IDF模型和python实现


2 python 实现关键提取

 


jieba.analyse.extract_tags(text,topK=20,withWeight=False,allowPOS=())

'''

    text:为待提取的文本;

    topK:返回几个TF/IDF权重最大的关键字,默认值为20;

    withWeight:是否一并返回关键词权重值,默认False;

'''

jieba.analyse.TFIDF(idf_path=None) #新建tf-idf实例,idf_path为IDF实例


文章标签: python 结巴分词

文章来源于网络,如若侵权,请联系作者删除,谢谢!

转载请注明来自于网址:http://sdzbquansheng.com/python/70.html

发表评论:

评论记录:

未查询到任何数据!