WordCloud词云(超详细)

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WordCloud词云(超详细)相关的知识,希望对你有一定的参考价值。

1. 安装 wordcloud 模块

  1. 网络正常情况下命令行输入pip install wordcloud,如果提示报错按以下步骤进行安装
pip install wordcloud
  1. pip安装wordcloud过程中提示pip工具版本低,需pip-10.0.1版本,需先更新pip包管理工具:
python -m pip install --upgrade pip
  1. pip更新到最新版本后还是安装wordcloud报错

先下载wordcloud‑1.4.1‑cp36‑cp36m‑win_amd64.whl安装包到本地目录, python为3.6.x版本的下载cp36的包,注意不要下cp37,安装不了的。

  1. 打开命令行窗口,进入到安装包所在目录位置如 D:\\download

  2. 输入

pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl

回车安装即可。

2. wordcloud 简介

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

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

3. wordcloud 如何将文本转化为词云

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

4. WordCloud(<参数>)介绍

  1. width:指定词云对象生成图片的宽度,默认400像素
w=wordcloud.WordCloud(width=600) 
  1. height:指定词云对象生成图片的高度,默认200像素
w=wordcloud.WordCloud(height=400) 
  1. min_font_size:指定词云中字体的最小字号,默认4号
w=wordcloud.WordCloud(min_font_size=10) 
  1. max_font_size:指定词云中字体的最大字号,根据高度自动调节
w=wordcloud.WordCloud(max_font_size=20) 
  1. font_step:指定词云中字体字号的步进间隔,默认为1
w=wordcloud.WordCloud(font_step=2) 
  1. font_path:指定文体文件的路径,默认None
w=wordcloud.WordCloud(font_path="msyh.ttc") 
  1. max_words:指定词云显示的最大单词数量,默认200
w=wordcloud.WordCloud(max_words=20) 
  1. stop_words:指定词云的排除词列表,即不显示的单词列表
w=wordcloud.WordCloud(stop_words="Python") 
  1. mask:指定词云形状,默认为长方形,需要引用imread()函数
from scipy.msc import imread

mk=imread("pic.png")
w=wordcloud.WordCloud(mask=mk) 
  1. background_color:指定词云图片的背景颜色,默认为黑色
    w=wordcloud.WordCloud(background_color="white")

示例:

text = "life is short, you need python"

w = wordcloud.WordCloud(background_color="white")  # 把词云当做一个对象
w.generate(text)
w.to_file("pywordcloud2.png")

5. 词云绘制1

关于实施乡村振兴战略的意见.txt

import jieba
import imageio
from wordcloud import WordCloud

'''
jieba支持三种分词模式:
    精确模式lcut(),试图将句子最精确地切开,适合文本分析,单词无冗余;
    全模式lcut(s, cut_all=True) ,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义,存在冗余;
    搜索引擎模式cut_for_search(s),在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
'''

with open("关于实施乡村振兴战略的意见.txt", "r") as f:
    allSentence = f.read()

print(allSentence)

re_move = [',', '。', '\\n', '\\xa0', '-', '(', ')']  # 无效数据

# 去除无关数据
for i in re_move:
    allSentence = allSentence.replace(i, "")

pureWord = jieba.lcut(allSentence)

with open("pureRuralRevitalieztion.txt", "w") as f:
     for i in pureWord:
         f.write(str(i)+" ")  # == ' '.join(pureWord),以空格拼接list中元素

with open("pureRuralRevitalieztion.txt", "r") as f:
    pureWord = f.read()

# 获取一张背景图片
mask = imageio.imread("chinamap.jpg")
word = WordCloud(background_color="white",\\
                    width=800,\\
                   height=800,
                   font_path='simhei.ttf',
                   mask=mask,
                   ).generate(pureWord)

word.to_file('乡村振兴词云.png')

# with open("pureRuralRevitalieztion.txt", "w") as f:
#     for i in pureWord:
#         f.write(i+" ")
#
#
# c = wordcloud.WordCloud()  # 配置对象参数
# c.generate(allSentence)
# c.to_file("ruralRevitalieztion.png")

6. 词云绘制2

新时代中国特色社会主义.txt

import jieba
import imageio
from wordcloud import WordCloud

with open("新时代中国特色社会主义.txt", "r") as f:
    allSentence = f.read()

print(allSentence)

re_move = [',', '。', '\\n', '\\xa0', '-', '(', ')']  # 无效数据

# 去除无关数据
for i in re_move:
    allSentence = allSentence.replace(i, "")

pureWord = jieba.lcut(allSentence)

with open("pureChinaDevelop.txt", "w") as f:
     for i in pureWord:
         f.write(str(i)+" ")

with open("pureChinaDevelop.txt", "r") as f:
    pureWord = f.read()

mask = imageio.imread("chinamap.jpg")
word = WordCloud(background_color="black",
                   width=800,
                   height=800,
                   font_path='simhei.ttf',
                   mask=mask,
                   ).generate(pureWord)

word.to_file('新时代中国词云.png')

这是当初刚学Python时嵩天老师书上的代码,那时候我学习时,把他书中的内容敲下来,注释到.py文件中,今天复习时,看到了,特地整理出来,感觉那时候记笔记真的好low,当时只会用csdn的文章,但没想过自己写文章。可能事物的发展,人的成长总是曲折缓慢吧!

加油!

感谢!

努力!

以上是关于WordCloud词云(超详细)的主要内容,如果未能解决你的问题,请参考以下文章

解决wordcloud导出图片不清楚

[python] 词云:wordcloud包的安装使用原理(源码分析)中文词云生成代码重写

wordcloud词云

QQ聊天记录生成词云--WordCloud

用Python和WordCloud绘制词云(内附让字体清晰的秘笈)

朱自清《春》的词云