2021-3-31 19:15:52 [显示全部楼层]
8474浏览
查看: 8474|回复: 11

[项目分享] 词云生成器——Mind+Python模式

[复制链接]
词云是什么?它就是一个词云
词云生成器——Mind+Python模式图1

词云是用词来填充一张图片来表达作者的想法

如上图,表达了作者,也就是我,对螺蛳粉的强烈喜爱

那词云怎么做呢?

百度了一下,有些网站做词云要收费、带水印、或操作比较麻烦,

于是我试着用Mind+的Python模式来做了一个词云生成器.

【第一步】:创建一个Python项目
1.1打开Mind+(1.7.0RC2.0版本),选择Python模式。

词云生成器——Mind+Python模式图2

1.2建立一个Python项目,并以“.py”结尾。

词云生成器——Mind+Python模式图3

1.3和Python的世界打个招呼。

词云生成器——Mind+Python模式图4
【第二步】:加载库文件

选择创作词云所需要的五个库文件,操作如下图所示:

每个库文件的简介在软件里都写的有,但具体理解它的功能和用法,还需要一些项目实操练习才可理解。

词云生成器——Mind+Python模式图5

词云生成器——Mind+Python模式图6

词云生成器——Mind+Python模式图7

词云生成器——Mind+Python模式图8

词云生成器——Mind+Python模式图9

【第三步】:建立好“词”和“云”

3.1准备好词云所需要的“词”和“云”

“云”也就是图片,我们找到一张轮廓清晰的“.jpg”格式的图片。

然后在桌面建立一个“.txt”格式的文档,将各种词或者语句放入文本中。

词云中显示的“词”就是从该文本中提取的。

参考如下:
词云生成器——Mind+Python模式图11

词云生成器——Mind+Python模式图12

3.2将准备好的“词”和“云”放入Python项目的文件夹中.

操作如下图所示:

词云生成器——Mind+Python模式图13

词云生成器——Mind+Python模式图14

到这一步,其实,你就可以直接打开我的程序用起来了。

词云生成器——Mind+Python模式图19

打开后,双击词云对应的“.py”文件,

就会看到如下程序

词云生成器——Mind+Python模式图10

【参数调整说明】

1、程序中“图案形状”对应的就是原始的图片名称;

2、“文本”对应的就是前面建立的“txt”文件名称;

3、“成品图”对应的就是输出的图片的名称。

词云生成器——Mind+Python模式图17
词云生成器——Mind+Python模式图18

4、如果想要调整词云上显示的字体,

找到设置字体的程序(第五行):

font_path="C:\Windows\Fonts\HGXK_CNKI.TTF",max_words=200

HGXK_CNKI.TTF”则是不同字体的名称,

所以只需要修改这个名称即可。

接下来可按照如下操作找到名称:

    4.1任意打开一个文件夹,按照下图所示输入:“Windows\Fonts”

词云生成器——Mind+Python模式图20

    4.2找到自己想要的字体,鼠标右键点击查看属性

词云生成器——Mind+Python模式图15

    4.3复制对应的名称,粘贴到程序中就好啦。

词云生成器——Mind+Python模式图16

以上就是在不需要仔细研究程序的基础上,修改一下参数即可实现创作词云的效果。

对于爱学习的小朋友们来说,我们就来了解下各程序的含义:

import wordcloud #调用词云库
import jieba #调用结巴库(能够将句子分成一个一个的词)
import numpy as np#调用numpy库,并命名为np
from PIL import Image#从PIL库中调用Image功能

w=wordcloud.WordCloud(width=1000,height=700,background_color="white",font_path="C:\Windows\Fonts\HGXK_CNKI.TTF",max_words=200)
#设置词云的尺寸(背景颜色白色,字体设置'在字体目录文件中找到字体名称',最多显示200个词)

maskpic = np.array(Image.open("图案形状.jpg"))
#选择词云的图片,“np.array”将图片转换成数组,在程序中命名为“maskpic”
w.mask=maskpic
#设置词云的图片为“maskpic”。“w.”是“wordcloud.”的缩写,代表词云库的内置功能调用。
w.color_func=wordcloud.ImageColorGenerator(maskpic)
#重置词云图片“maskpic”的颜色

f=open("文本.txt",encoding="utf-8")
#将读取的词云文本,在程序中命名为“f”,“utf-8”是解码文档用。
txt=f.read()#“txt”储存读取的文本
a=jieba.lcut(txt)#用jieba的精准分词模式将文本分开成词语,并储存在“a”中
b=" ".join(a)#拼接分开好的文本“a”,储存在“b”中

w.generate(b)#将文本“b”进行拼接
w.to_file("成品图.png")  #导出图片文件




END

词云图.zip

36.19 KB, 下载次数: 347

附件

Forgotten  版主

发表于 2024-5-8 13:51:52

本帖最后由 Forgotten 于 2024-5-8 13:53 编辑
小青Andy 发表于 2024-1-8 13:24
字体报错,换过字体 更新过pip pillow包,都不行    raise ValueError("Only supported for TrueType fonts ...

提示“raise ValueError("Only supported for TrueType fonts") ValueError: Only supported for TrueType fonts”是因为wordcloud这个库新版本的问题,卸载掉已经安装的库,然后指定安装1.8.0版本就行。
  1. pip install wordcloud==1.8.0
复制代码



词云生成器——Mind+Python模式图1词云生成器——Mind+Python模式图2


参考链接

回复

使用道具 举报

szjuliet  版主

发表于 2021-3-31 19:58:59

本帖最后由 szjuliet 于 2021-3-31 20:06 编辑

一份有味道的词云嘿嘿
回复

使用道具 举报

春秋大仙  高级技师 来自手机

发表于 2021-3-31 20:20:44

Storm 发表于 2021-3-31 19:15
词云是什么?它就是一个词云
词云是用词来填充一张图片来表达作者的想法
如上图,表达了作者,也就是我,对 ...

螺狮粉产业文化推广大使
回复

使用道具 举报

Storm  高级技师
 楼主|

发表于 2021-4-1 10:11:18

不吃螺蛳粉,三分不够准!
回复

使用道具 举报

rzyzzxw  版主

发表于 2021-4-1 11:02:46

看饿了
回复

使用道具 举报

小卢  学徒

发表于 2021-4-1 14:46:28

厉害!!
回复

使用道具 举报

小青Andy  学徒

发表于 2024-1-8 13:24:09

字体报错,换过字体 更新过pip pillow包,都不行    raise ValueError("Only supported for TrueType fonts")
ValueError: Only supported for TrueType fonts
MonJanuary-202401083047..png
回复

使用道具 举报

x9hJ1IuzChxa  学徒

发表于 2024-3-8 20:52:18

小青Andy 发表于 2024-1-8 13:24
字体报错,换过字体 更新过pip pillow包,都不行    raise ValueError("Only supported for TrueType fonts ...

你好,你这个问题解决了吗?我也是同样的问题,尝试了很久也调整不了
回复

使用道具 举报

DFBJeEqYNRj  学徒

发表于 2024-5-6 15:46:59

x9hJ1IuzChxa 发表于 2024-3-8 20:52
你好,你这个问题解决了吗?我也是同样的问题,尝试了很久也调整不了

同问,一直报错,无法解决
回复

使用道具 举报

mp5oYCbqOiRq  学徒

发表于 2024-5-17 22:11:05

啊啊啊!抄了半小时才发现可以复制!
回复

使用道具 举报

少东  高级技师

发表于 4 天前

加深了一遍印象
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail