python 制作 多种 词云

2022-08-03,,,

在互联网时代里,数据为王,如何让数据更好的呈现,这就是我们使用python的一个原因。
除了各种绚丽的图表之外,还可以通过“词云”来呈现,比如:

放在博客中,是不是也是很炫酷呢?接下来让我们用python实现“词云”吧!

安装 wordcloud 库

环境要求
  • python(官网下载安装)
  • vscode,pycharm

笔者目前在Windows系统和macOS系统都已经测试过,此篇主要针对Windows系统(不要问我为啥用Windows,谁让macOS上无法使用Visio画图软件呢,不要问我明明是后端开发为啥用Visio画图呢,说多了都是泪,呜呜)
好了,现在安装wordcloud(显而易见,这个类库就叫 词-云)

pip install wordcloud

使用Mac,请使用 pip3 install wordcloud

问题1 :socket.timeout : the read operation timeout

如果出现这个问题,请大家重新输入pip install wordcloud ,多次尝试
如果下载速度特别慢,我这里也有解决方案哦,请大家将pip 更换成国内镜像,比如清华、豆瓣、阿里,具体方法请大家点击《python 更换 pip 镜像》

问题2 : Microsoft Visual C++ 14.0 is required

在Windows 10 系统上安装时,出现这个问题:

    Microsoft Visual C++ 14.0 is required

解决方法在另一篇博客中,如果出现了这个问题,请大家点击《Microsoft Visual C++ 14.0 is required解决方案》(当然不希望大家出现问题)

问题3 :command ’ cl.exe’ failed: No such file or directory

我在安装时,解决了上面的问题2,结果又出现了问题3,当时就抓狂了!在Mac上直接就安装成功了,Windows系统幺蛾子可是真多!!!,没办法也得解决呀,请大家点击《command ’ cl.exe’ failed: No such file or directory解决办法》

到这里大家的 windcloud 类库应该已经安装成功了(如果还没有,那就请大家根据具体问题去搜集下资料啦,也可以留言给我哦)

提供数据

这里呢,搜集了下比较长一些的英文绕口令,大家可以试一下,反正笔者舌头已经打转了。。。


Peter Piper picked a peck of pickled peppers.A peck of pickled peppers Peter Piper picked.If Peter Piper picked a peck of pickled peppers.Where's the peck of pickled peppers Peter Piper picked?

在Windows上,可以保存为 test.text ,放在此python文件同级目录下
在Mac上,可以保存为 test.json

简单代码(生成方形图片)

Talk is cheap. Show me the code

屁话少说,放码过来。

from wordcloud import WordCloud
import PIL .Image as image

with open("./test.txt") as fp:
          text=fp.read()
          #print(text)
          #将文本放入WordCoud容器对象中并分析
          WordCloud = WordCloud().generate(text)
          image_produce = WordCloud.to_image()
          image_produce.show()

如果一切顺利,那么会弹出你生成的图片,该图片会储存在你的系统。详细位置一般为:C:\Users\xxxxxx\AppData\Local\Temp 中。

是不是很有成就感呢?别着急,下面咱们继续进行更“炫”的操作

简单代码(带形状图片)

大家可能看到了,上面呈现的呢,是一个方形的图片,底色也是黑色的,那怎么才能生成其他的形状呢?比如圆形、云形、心形、人形等等呢?

咱们需要引入 numpy

    pip install numpy

我们需要提供一些不同的底图,这里我随便找了几张图

咱们直接上代码!

 from wordcloud import WordCloud
import PIL .Image as image
import numpy as np

with open("./test.txt") as fp:
    text = fp.read()
    # print(text)
    mask = np.array(image.open("./heart.png"))
    wordcloud = WordCloud(
        background_color='white',
        mask=mask
    ).generate(text)
    image_produce = wordcloud.to_image()
    image_produce.show()

简单代码(汉字)

**英文有绕口令,咱们中文就没有吗?哼,咱们汉字是老祖宗,但是同样的代码就是不管用,那咱们就要使用包 **jieba 了!

pip install jieba

经典的喇嘛来啦!

从南边来了个喇嘛,提拉着五斤塔嘛。从北边来个哑吧,腰里别着个喇叭,提拉塔嘛的喇嘛,要拿塔嘛换别喇叭哑巴的喇叭,别喇叭的哑巴,不愿意拿喇叭换提拉塔嘛喇嘛的塔嘛。提拉塔嘛的喇嘛拿塔嘛打了别喇叭的哑巴一塔嘛,别喇叭的哑巴,拿喇叭打了提拉塔嘛的喇嘛一喇叭。也不知提拉塔嘛的喇嘛拿塔嘛打坏了别喇叭哑巴的喇叭。也不知别喇叭的哑巴拿喇巴打坏了提拉塔嘛喇嘛的塔嘛。提拉塔嘛的喇嘛敦塔嘛,别喇叭的哑巴吹喇叭。
from wordcloud import WordCloud
import PIL .Image as image
import numpy as np
import jieba

def trans_CN(text):
    word_list = jieba.cut(text)
    # 分词后在单独个体之间加上空格
    result = " ".join(word_list)
    return result;


with open("./raokoling.txt") as fp:
    text = fp.read()
    text  = trans_CN(text)
    # print(text)
    # Windows系统C\Windows\Fonts默认有字体,Mac下可以下载一个字体
    mask = np.array(image.open("./heart.png"))
    wordcloud = WordCloud(
        mask=mask,
        font_path = "C:\\Windows\\Fonts\\msyh.ttc"
    ).generate(text)
    image_produce = wordcloud.to_image()
    image_produce.show()

好啦,大家可以继续深入了解下 jieba 类库,还是很强大的。
如果觉得有收获,希望大家点个赞呀!

本文地址:https://blog.csdn.net/Laravelchen/article/details/107332535

《python 制作 多种 词云.doc》

下载本文的Word格式文档,以方便收藏与打印。