前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >掌握一项装逼的技能

掌握一项装逼的技能

作者头像
大家一起学编程
发布2021-03-27 16:12:45
3350
发布2021-03-27 16:12:45
举报

一款制作词云的软件!

01、什么是词云?

我们要制作词云,那什么是词云呢?

【中文】词云。又称文字云。

【英文】wordle

【释义】由词汇组成类似云的彩色图形。

还是不懂吗?那来看一下具体事例:

02、代码实现

怎么样!是不是很不错,是不是有点小心动,请压抑住心中的躁动,不要急,慢慢来。

首先,是词云的代码实现:

1.需要使用到的模块:

pip install jieba(结巴)#真搞不懂写这个模块的人,怎么用拼音来写,这个模块有点容易让人误解,加注释

pip install wordcloud

注:在安装时可能会出现错误,需要使用其他环境,在文章后面获取连接。

pip install scipy

pip install matplotlib

代码语言:javascript
复制
import jieba.analyse
from wordcloud import WordCloud,ImageColorGenerator
from scipy.misc import imread
import matplotlib.pyplot as plt
from tkinter import *

2.生成词云代码实现:

代码语言:javascript
复制
class wc:
   def __init__(self,txt_file,img_file,font_file):
      self.txt = open(txt_file,'r').read()
      self.tags = jieba.analyse.extract_tags(self.txt,topK=100)
      #topK说白了就是返回几个关键词
    self.text = ' '.join(self.tags) #把分词链接起来,加空格因为英文靠空格分词
    self.img = imread(img_file)
      self.wc = WordCloud(font_path=font_file,background_color='white',max_words=200,mask=self.img,max_font_size=40)
      ###直接在这里进行猜###
      #font_path指的是字体文件路径,因为wordcloud自带的字体不支持中文所以我们要指定一个字体文件,否者输出的图片全是框框
      #background_color 默认是黑色 我设置成白色
      #max_words最大显示的词数
      #mask 背景图片
      #max_font_size 最大字体字号
      self.word_cloud = self.wc.generate(self.text)

   def show_wc(self):
      # img_color = ImageColorGenerator(self.img)
      plt.imshow(self.word_cloud)
      # plt.imshow(self.wc.recolor(color_func=img_color))
      #可以通过 plt.imshow(self.wc.recolor(color_func=img_color))使图片颜色跟字体颜色一样
      plt.axis("off")
      plt.savefig("词云.png")#保存图片
      plt.show()#弹出窗口显示图片

3.用窗口实现:

代码语言:javascript
复制
def window(self):
   window = Tk()
   window.title("在线生成词云")
   window.geometry("500x500+500+200")
   Label(window,
            text="在线生成词云",  # 标签的文字
            # bg='green',  # 背景颜色
            font=('楷体', 17),  # 字体和字体大小
            # width=15, height=2  # 标签长宽
            ).grid(row=0, column=0)  # 固定窗口位置
   Label(window,text="请输入文件路径:").grid(row=2, column=0)
   self.a = Text(window, width=40, height=2)
   self.a.insert(1.0,"文件.txt")
   self.a.grid(row=2, column=1)
   Label(window,text="请输入图片路径:").grid(row=3, column=0)
   self.c = Text(window, width=40, height=2)
   self.c.insert(1.0, "图片.jpg")
   self.c.grid(row=3, column=1)
   Button(window, text="生成词云", bg="lightblue", command=self.click).grid(row=4, column=1)
   window.mainloop()

4.点击事件触发,重新调用生成词云的方法

代码语言:javascript
复制
def click(self):
   self.f = self.a.get(1.0, END).strip().replace("\n", "").encode().decode()
   self.tu = self.c.get(1.0, END).strip().replace("\n", "").encode().decode()
   mywc = wc(self.f,self.tu,'STXINGKA.TTF')
   mywc.show_wc()

5.启动运行

代码语言:javascript
复制
if __name__=='__main__':
   mywc = wc("文件.txt","图片.jpg",'STXINGKA.TTF')
   mywc.window()

到此,所有的代码编写完成,需要用到的图片,材料,已经打包上传网盘,公众号和后台回复 “词云” 获取源代码,已及图片文件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大家一起学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01、什么是词云?
  • 02、代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档