Python制作简单的词云

背景图

https://img1.sycdn.imooc.com/614848dc00011a9210200992.jpg

效果图

https://img2.sycdn.imooc.com/614848dd0001aec108700772.jpg

代码

from os import path

import jieba

from wordcloud import WordCloud

from PIL import Image

import numpy as np

import matplotlib.pyplot as plt

 

 

def handle_data():

    """

    处理文本数据

    :return:

    """

    # 读取数据

    with open("data.txt", "r") as f:

        txt = f.read()

 

    # 去除无效数据

    re_move = [",", "。", " ", '\n', '\xa0']

    for i in re_move:

        txt = txt.replace(i, " ")

 

    # 使用精确分词模式

    word = jieba.lcut(txt)

 

    # 保存数据

    with open("data_handled.txt", 'w') as file:

        for i in word:

            file.write(str(i) + ' ')

 

 

def generate_image():

    """

    生成图片

    :return:

    """

    # 读取数据

    with open("data_handled.txt", "r") as file:

        txt = file.read()

 

    # 图片路径

    d = path.dirname(__file__)

 

    # 生成mask

    mask = np.array(Image.open(path.join(d, "mask.jpg")))

 

    # 生成word

    word = WordCloud(

        background_color="white",

        width=800,

        height=800,

        mask=mask,

        # 字体路径,WordCloud默认不支持中文,这里的SimHei.ttf需要下载放到系统字体库目录下

        font_path='SimHei.ttf'

    ).generate(txt)

 

    # 保存图片

    word.to_file('world_cloud.png')

 

    # 使用plt库显示图片

    plt.imshow(word)

 

    plt.axis("off")

 

    plt.show()

 

 

if __name__ == '__main__':

    handle_data()

    generate_image()

 

.

posted on 2021-11-25 09:34  itips  阅读(57)  评论(0编辑  收藏  举报