python 结巴分词学习

python 结巴分词学习https www toutiao com a nbsp 2019 01 0610 14 00 结巴分词 自然语言处理之中文分词器 jieba 分词算法使用了基于前缀词典实现高效的词图扫描 生成句子中汉字所有可能生成词情况所构成的有向无环图 DAG 再采用了动态规划查找最大概率路径 找出基于词频的最大切分组合 对于未登录词 采用了基于汉字成词能力

https://www.toutiao.com/a/

 

2019-01-06 10:14:00

结巴分词(自然语言处理之中文分词器)

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

python 结巴分词学习

 

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

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

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

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

一 结巴分词的安装

pip3 install jieba

二 结巴分词的主要功能

python 结巴分词学习

 

1. jieba.cut:该方法接受三个输入参数:   参数1:需要分词的字符串;   参数2:cut_all参数用来控制是否采用全模式,默认为精确模式;  cut_all=True 全模式  cut_all=false 精确(默认)模式   参数3:HMM参数用来控制是否适用HMM模型 

python 结巴分词学习

 

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

python 结巴分词学习

 

seq_list=jieba.cut(text,cut_all=True) print(seq_list) # 
  
    print(list(seq_list)) ''' ['赵', '丽', '颖', '主演', '的', '正午', '阳光', '剧', '', '', '知', '否', '知', '否', '应', '是', '绿肥', '绿肥红瘦'] ''' 
  

python 结巴分词学习

 

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

python 结巴分词学习

 

# 02精确模式 seq_list=jieba.cut(text,cut_all=False) print(list(seq_list)) ''' ['赵丽颖', '主演', '的', '正午', '阳光', '剧', ',', '知否', '知否', '应', '是', '绿肥红瘦'] '''

python 结巴分词学习

 

3 搜索引擎模式 cut_for_search

seq_list=jieba.cut_for_search(text,) print(list(seq_list)) ''' ['赵丽颖', '主演', '的', '正午', '阳光', '剧', ',', '知否', '知否', '应', '是', '绿肥', '绿肥红瘦'] '''

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

1 创建词典内容的格式

一个词语占一行(分三部分) 格式: 词语 词频 词性 如:张三 5  李四 10 eng

python 结巴分词学习

 

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

python 结巴分词学习

 

text='赵丽颖主演的正午阳光剧,知否知否应是绿肥红瘦' # 自定义词典 jieba.load_userdict('自定义词典.txt') sep_list=jieba.lcut(text) print('userdict>>>',sep_list)

python 结巴分词学习

 

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

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

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

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

2 python 实现关键提取

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 结巴分词学习

 

五 使用结巴的词云实例

1 数据准备

文档:

python 结巴分词学习

 

死了都要爱.txt

python 结巴分词学习

 

dream ispossible.txt

图片:(红心.jpg)

python 结巴分词学习

 

python 结巴分词学习

 

# 数据获取 with open('死了都要爱.txt','r',encoding='utf8')as f:  text=f.read() # with open('dream is possible.txt','r',encoding='utf8')as f: # text=f.read() #图片获取 mask=np.array(Image.open('红心.jpg'))

python 结巴分词学习

 

2 数据清洗

屏蔽不需要的数据和分词

# 数据清洗 # 屏蔽死了都要爱 STOPWORDS.add('死了都要爱') sep_list=jieba.lcut(text,cut_all=False) sep_list=" ".join(sep_list) #转为字符串

自定义画布

python 结巴分词学习

 

wc=WordCloud(  font_path=font,#使用的字体库  margin=2,  mask=mask,#背景图片  background_color='white', #背景颜色  max_font_size=25,  max_words=200,  stopwords=STOPWORDS, #屏蔽的内容 )

python 结巴分词学习

 

生成词语,保存图片

wc.generate(text) #制作词云 wc.to_file('新增图片.jpg') #保存到当地文件

3 数据展示

plt.imshow(wc,interpolation='bilinear') plt.axis('off') plt.show()

完整代码和效果展示

python 结巴分词学习

 

完整代码

图片一(未分词):

python 结巴分词学习

 

图片二(分词效果)

python 结巴分词学习

 

python 结巴分词学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200101.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:32
下一篇 2026年3月20日 上午11:32


相关推荐

  • 让Web页面中的编辑器支持黏贴或直接拖拽来添加图片「建议收藏」

    让Web页面中的编辑器支持黏贴或直接拖拽来添加图片「建议收藏」让Web页面中的编辑器支持黏贴或直接拖拽来添加图片

    2022年4月21日
    51
  • Delphi XE5 FireMonkey移动开发示例:粒子系统

    Delphi XE5 FireMonkey移动开发示例:粒子系统这个例子是参照Processing中的例子写的。  测试结果:在Windows7上,脱离开发环境的性能与Processing相当,在Android上表现良好。 源码如下:  unitExample.Particles;interfaceusesSystem.SysUtils,System.Types,System.UITypes,System.Classes,

    2022年7月18日
    19
  • 如何快速学从零开始学习3d建模?

    如何快速学从零开始学习3d建模?其实对于初学者来说,3D建模是一个专业性偏强且极其难入手的游戏制作专业技术。如果是无基础从零开始的学习的话,没有一个好的学习方法和好的指导老师的话,还是比较困难的。那么如何从零基础开始学习3D建模?一、首先得知道什么是游戏3D建模在大型的游戏研发公司,3D建模是一个非常大的职能,分为4个岗位:3D角色低模手绘,3D场景低模手绘,次世代角色高模,次世代场景高模。通常我们所说的3D建模是指低模手绘。如果你需要好的学习环境,好的学习资源,这里欢迎每一位热爱游戏动漫模型的小伙伴,想要学习.

    2022年5月4日
    54
  • 按位异或的深入理解[通俗易懂]

    按位异或的深入理解[通俗易懂]异或运算:首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:  0^0=0,   1^0=1,   0^1=1,   1^1=0按位异或的3个特点:(1)0^0=0,0^1=1 0

    2022年6月6日
    48
  • 两人下象棋_双人五子棋同屏

    两人下象棋_双人五子棋同屏阅读本文前,请您先点击右上角的蓝色字体“优课屋”,再点击“关注”,这样您就可以继续订阅文章了!(国际象棋怎么玩)在我门的生活中,棋类游戏种类非常的多,其中我们最常玩的棋类游戏有中国象棋,中国跳棋,五子棋,围棋,军棋的。而最近这几年我们很多人都接触到了国际象棋这个游戏,国际象棋其实和中国象棋有很多相似的地方,很多玩家也都特别喜欢玩国际象棋这个游戏。我们现在可以非常方便的在我们身边的网络棋牌…

    2022年8月29日
    5
  • VC 下 volatile 变量能否建立 Memory Barrier 或并发锁

    VC 下 volatile 变量能否建立 Memory Barrier 或并发锁VC下volatile变量能否建立MemoryBarrier或并发锁

    2022年7月15日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号