Python制作简单的词云

1,092 阅读1分钟

个人博客

www.milovetingting.cn

背景图

mask.jpg

效果图

sample.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()

参考

blog.csdn.net/loveyouandc…

www.cnblogs.com/djdjdj123/p…