【python 自然语言处理】画画词云图

主要内容
1、需要一张背景图(hang.jpg)
2、需要文本数据(comments.txt)
3、需要中文字体文件(simsun.ttc)

背景图:hang.jpg
这里写图片描述

效果图:

这里写图片描述

# encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import jieba.analyse           # 导入结巴分词
import numpy as np             # numpy
from wordcloud import WordCloud, STOPWORDS    # 词云工具和自带的的停用词
from PIL import Image              # 图片处理
import matplotlib.pyplot as plt

def handle(filename, stopword):
    with open(filename, 'r') as f:
        data = f.read()

    wordlist = jieba.analyse.extract_tags(data, topK=100)   # 分词,取前100
    wordStr = " ".join(wordlist)
    print wordStr

    hand = np.array(Image.open('hang1.jpg'))    # 打开一张图片,词语以图片形状为背景分布

    my_cloudword = WordCloud(
        # wordcloud参数配置
        width=1024,
        height=768,
        background_color = 'white',   # 背景颜色设置白色
        mask = hand,                  # 背景图片
        max_words = 300,              # 最大显示的字数
        stopwords = stopword,         # 停用词
        max_font_size = 100,           # 字体最大值
        font_path='simsun.ttc',  # 设置中文字体,若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字
        random_state=3,  # 设置有多少种随机生成状态,即有多少种配色方案
    )

    my_cloudword.generate(wordStr)          # 生成图片
    my_cloudword.to_file('wordcloud.png')    # 保存
    plt.imshow(my_cloudword)  # 显示词云图
    plt.axis('off')  # 是否显示x轴、y轴下标
    plt.show()  # 显示

if __name__ == '__main__':


    handle('comments.txt', STOPWORDS)
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东华果汁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值