大家好,我是才哥。
继之前出过表格拆分与合并小工具、pdf转word小工具后,今天我们迎来了。
记得在去年早些时候,我还不太熟悉python的时候,为了看看我们用户的评价和公开聊天信息关键词,在网上找了一些代码进行简单的参数修改就为出一张简单的词云图来。不过效果就很差了,没有停用词和自定义关键词等等概念,做出来的效果也差强人意不过似乎也还凑合当时不太会的偶。
其实,在往期的很多推文中都出现过词云制作的身影,今天我们就把它们封装起来,做成一个小工具分享给大家吧。
先看效果:
占位(视频)
接下来,我们介绍这个小工具的制作过程。
简单来说,我们希望这个小工具在绘制词云图的时候可以自定义删除不想要的词、显示一些特殊汉字组合词(自定义关键词),同时词云的形状和字体能自定义等等。
那么,拆解需求,我们大致梳理出核心功能如下:
- 确定待绘制词云的文本,三种情况(必填,否则会提示需要先选择待绘制文本)
- 通过选定文本文件(txt文件)
- 通过手动输入或复制粘贴文本
- 以上两种方式均采取的时候会自动合并文本内容
- 确定停用词(停用词就是词云图中不会出现的词,选填)
- 通过选定文本文件(txt文件,每行一个停用词)
- 通过手动输入停用词(词之间用“/”分开)
- 以上两种方式均采取的时候会自动合停用词
- 确定自定义关键词(关键词就是希望出现在词云图中的词,由于本工具采用jieba库,某些汉字组合词不一定是常规的词组,需要手动添加)
- 通过手动输入停用词(词之间用“/”分开)
- 可选择词云字体
- 我这里是windows环境,且主要用于中文字符的词云绘制,所以小工具里只选择了5种字体供选择
- 可选择背景图
- 词云绘制时候形状背景图这里设定的是选定背景图文件即可
- 对图片要求是白色底+深色形状轮廓
- 词云绘制
- 点击按钮执行绘制程序
基本功能点确定后,我们开始进行GUI设计。
基于功能点,我们可以先在草稿本上进行简单的,然后再通过开发库进行设计,这里依旧采用的是,主要是简单方便。
基于手稿设计,我们编码如下:
其包含的控件如下:
- 文本
- 输入文本框
- 文件浏览
- 多行文本框
- 下拉框
- 程序输出显示框
- 按钮
除了主界面之外,我们在绘制完词云图之后希望能直接弹窗展示,因此也需要一个用于浏览图片的界面与功能,这部分整体放在后续功能实现模块讲解。
当我们明确功能点以及有了GUI布局后,就开始着手实现功能逻辑。
3.1. 词云绘制功能
关于词云绘制功能更详细的介绍大家可以参考之前的《》。
这里我们调用的也是库,编写一个词云绘制的函数,按照核心功能需求,这个函数接收的参数分别是:
- 待绘制词云的文本内容data
- 自定义关键词
- 停用词
- 背景图
- 字体
函数编写如下:
接着,我们编写GUI的交互逻辑。
3.2. GUI交互逻辑
我们在前面有提到,对于绘制好的词云图,希望可以弹出自动预览,这里实现这个功能,采用的是的控件,传递参数是图片的地址。
然后,我们再对主界面的交互逻辑进行实现:
注:以下部分功能其实也可以封装成函数调用,大家有兴趣自行处理哈。
由于在选择字体的时候,我们提供的是名称下拉框,所以这里需要创建一个字体名称与文件名的字典表,根据我们选定的字体组,这里创建的字典如下:
基于此,词云绘制小工具就编码完成啦。
词云绘制小工具启动页
2021年高考语文各卷话题作文热词:
由于依赖库中存在一些依赖配置文件如库的和文件、库的文件和一些图标文件以及库的文件,我们直接用常规的打包命令是无法将这些配置文件一并打包进去的,虽然能够成功打包成文件,但是启动会失败。
由于本案例中还存在一些动态调用的库方式,所以就算将依赖文件打进去也会有找不到模块的问题。整得来说就是,常规的打包方式不太奏效,但是一两句话也说不太情况。所以我们后续将针对pyinstaller打包做一些比较全面的介绍,敬请期待啦。
以上就是本文全部内容,如果你感兴趣,点个赞和在看支持一下呗。