python+wordcloud+jieba实现制作词云

看起来酷炫的词云,用python轻松实现

“词云”:是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

1.安装相关库

词云库(wordcloud):pip install wordcloud

词文分割库(jieba):pip install jieba    详情说明请点击

2.实现源码

from wordcloud import WordCloud
import jieba
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

def get_wordcloud():
    file_path='./三毛经典语录.txt'
    background_image_1=np.array(Image.open('./love2.jpg'))
    background_image_2 = np.array(Image.open('./suoda.jpg'))
    background_image_3 = np.array(Image.open('./namei.jpeg'))
    background_image=[background_image_1,background_image_2,background_image_3]
    with open(file_path,'r',encoding='utf-8') as f:
        txt=f.read()
        # jieba.cut 词文分割,返回列表 cut_all=False为精确模式
        wordlist = jieba.cut(txt, cut_all=False)
        # 将列表元素以空格拼接起来
        jieba_txt = " ".join(wordlist)

    # 用了三张不同的效果图,循环10次 (看着玩。。)
    i=0
    while i<10:
        for image in background_image:
            # 生成词云
            wordcloud = WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 调用系统自带字体(微软雅黑)
                                  background_color='white',  # 背景色
                                  max_words=500,  # 最大显示单词数
                                  max_font_size=60,  # 频率最大单词字体大小
                                  mask=image  # 自定义显示的效果图
                                  ).generate(jieba_txt)

            plt.imshow(wordcloud, interpolation='bilinear')
            plt.axis('off')
            plt.show()
        i+=1

if __name__ == '__main__':
    get_wordcloud()

3. 运行结果

原图:

效果图:

参考:https://www.cnblogs.com/jiangchengzi93812/p/9450455.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值