愷龍 发表于 2021-10-3 09:02:29

Python 制作简单的词云

背景图
https://z3.ax1x.com/2021/10/03/4qJYtS.png
效果图
https://www.hualigs.cn/image/615900de13c93.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()



|原文链接:https://juejin.cn/post/7008833196750012452https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

zjfyue 发表于 2022-6-23 14:06:11

{:10_249:}{:10_249:}{:10_249:}
页: [1]
查看完整版本: Python 制作简单的词云