python小项目——词云制作

 

  • 所谓词云:

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

 

        随着python的迅速崛起,人们发现可以使用python来实现很多有趣的小作品。这款词云也是非常吸引我,因此专门去翻了翻前辈们的足迹,自己实现了一次。

 

       首先我们需要明确实现这个功能需要一些什么库

WordCloud  #词云制作 最关键的库:用来形成词云
PIL.Image   #(opencv简洁版)绘制图像,图像解析 opencv(BGR)  matplotlib(2d)
numpy   #将图形转化为矩阵数组
jieba  #中文分词  根据中文语境 自定义分词

 

 

 

  • 纯英文文本的词云生成代码:
import numpy as np    #将图案轮廓转化成数组存储
import PIL.Image as image   #图像分析
import matplotlib.pyplot as plt     #绘图
from wordcloud import WordCloud       #词云

filename = "text_ep.txt"  #文本位置及文件名
with  open(filename) as f:
    mytext = f.read()   #读取  存入mytext
mask = np.array(image.open("mask.jpg"))       #打开词云图案读取轮廓   轮廓数组化   

wordcloud = WordCloud(mask= mask).generate( mytext) 



plt.imshow(wordcloud,interpolation = 'bilinear') #bilinear双线性插值
plt.axis("off")
wordcloud.to_file('Wordcloud.png')

注:双线性插值制图详解传送门

 

 

 

  • 中文分词词云生成代码:(这里需要用到 jieba 这个汉语分词库)
    from wordcloud import WordCloud  #词云制作   文字字体大小尺寸等
    import PIL.Image as  image   #(opencv简洁版)绘制图像 opencv(BGR)  matplotlib(2d)
    import  numpy as np   #将图形转化为矩阵
    import jieba  #中文分词
    
    def transfrom_zh(text):  #接收文本
        word_list = jieba.cut(text)  #加空格断词
        result = ' '.join(word_list)
        return  result
    
    
    filename = "text_zh.txt"
    with open(filename,encoding='utf-8') as f:
        mytext = f.read()  #读取文本
        mytext = transfrom_zh(mytext)   #删除标点  空格断词转换
        mask = np.array(image.open("mask.jpg"))   #图像轮廓转换为数组
        wordcloud = WordCloud(
            mask= mask ,   #遮罩
            font_path = 'C:\Windows\Fonts\STZHONGS.TTF' #中文字体名(点击属性查看,选英文名的汉字字体)不加报错 默认路径C:\Windows\Fonts\STZHONGS.TTF 华文中宋
        ).generate(mytext)
    
    image_1 = wordcloud.to_image()
    image_1.show()

 

 

                               清明节网上随手找的文章,用右下角的mask做的词云,非常开心呢~给你看下我的图:

总结:

   词云制作的代码不是很多,用到了很多的python自带库,难度一般,需要对库函数做进一步的理解。

祝大家学业有成!也祝自己~     一起努力!!!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kinnisoy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值