jieba分词和好玩的词云

jieba分词和好玩的词云

一,jieba库的安装与使用

1,jieba库的安装

推荐用清华大学的镜像网站在cmd中输入:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba(超级快)

2,jieba库的使用,

1,jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型

2,jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8

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

4,jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。

结巴分词分为三种模式:精确模式(默认)、全模式和搜索引擎模式,下面对这三种模式分别举例介绍:

 1 import jieba
 2 
 3 seg_list = jieba.cut("盛年不重来一日难再晨及时宜自勉岁月不待人", cut_all=True)
 4 print("Full Mode: " + "/ ".join(seg_list))  # 全模式
 5 
 6 seg_list = jieba.cut("盛年不重来一日难再晨及时宜自勉岁月不待人", cut_all=False)
 7 print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
 8 
 9 seg_list = jieba.cut("盛年不重来一日难再晨及时宜自勉岁月不待人")  # 默认是精确模式
10 print(", ".join(seg_list))
11 
12 seg_list = jieba.cut_for_search("盛年不重来一日难再晨及时宜自勉岁月不待人")  # 搜索引擎模式
13 print(", ".join(seg_list))

效果:

 

二,wordcloud库的安装与使用

1,wordcloud库的安装

经过我一下午的斗争找到了一条稳又快的方法:

1 安装Microsoft Visual C++ Build Tools     

链接:https://pan.baidu.com/s/1R74OkNwvpwkde93P1hchGA
提取码:42k4

2 在cmd中输入pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wordcloud (是不是很眼熟?没错也是清华的镜像网站)

2,wordcloud库的使用

wordcloud 库把词云当作一个WordCloud对象

  • wordcloud.WordCloud()代表一个文本对应的词云
  • 可以根据文本中词语出现的频率等参数绘制词云
  • 绘制词云的形状、尺寸和颜色均可设定
  • 以WordCloud对象为基础,配置参数、加载文本、输出文件

w= wordcloud.WordCloud()


w.generate()

向WordCloud对象中加载文本txt
>>>w.generate("Python and WordCloud")

w.to_file(filename)

将词云输出为图像文件,.png或.jpg格式
>>>w.to_file("outfile.png")

1 import wordcloud
2 c=wordcloud.WordCloud()            #1.配置对象参数
3 c.generate("wordcloud by python")  #2.加载词云文本
4 c.to_file("pywordcloud.png")       #3.输出词云文件

wordcloud如何将文本转化为词云

  • 1.分隔:以空格分隔单词
  • 2.统计:单词出现次数并过滤
  • 3.字体:根据统计配置字号
  • 4.布局:颜色环境尺寸

配置对象参数

w= wordcloud.WordCloud(<参数>)

 

 

 

 

 

 

 

 三,实例--分析《祝福》

代码:

 1 import numpy as np
 2 from PIL import Image
 3 import re
 4 import jieba
 5 from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS
 6 import  matplotlib.pyplot as plt
 7 with open('祝福.txt','r',encoding='gbk') as f:
 8     word= (f.read())
 9     f.close()
10 image=np.array(Image.open('aixin.jpeg')) 
11 font='C:\\Users\\86156\\Desktop\\学习\\Python\\hyzt132_downcc\\hy132\\f001.ttf' 
12 resultword=re.sub("[A-Za-z0-9\[\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\'\,\[\]\.\<\>\/\?\~\。\@\#\\\&\*\%]", "",word) 
13 wordlist_after_jieba = jieba.cut(resultword) 
14 wl_space_split = " ".join(wordlist_after_jieba) 
15 my_wordcloud = WordCloud(
16     scale=4,
17     font_path=font,
18     mask=image,
19     background_color='white',
20     max_words = 100,
21     max_font_size = 60,
22     random_state=20).generate(wl_space_split) 
23 plt.imshow(my_wordcloud)
24 plt.axis("off") 
25 plt.show() 
26 my_wordcloud.to_file('result.jpg')

效果:

 

posted @ 2020-04-14 22:13  酒久  阅读(350)  评论(0编辑  收藏  举报