首页/新闻资讯/正文详情

Python词云制作教程:从中文分词到蒙版配色实战

发布时间:2026/11/10 9:58:42 来源:云帆数科 栏目:资讯中心
Python词云制作教程:从中文分词到蒙版配色实战
简介这份面向文本挖掘与数据可视化初学者及中级Python学习者的PDF教程围绕词云生成展开帮助读者理解词云的概念、作用与实现路径并掌握其在报告展示、数据分析和社交媒体观察等场景中的应用方法。教程以wordcloud与matplotlib为核心系统讲解文本预处理、词频或TF-IDF权重计算、图像生成及展示保存流程配合7个由浅入深的案例覆盖最简调用、中文分词与不分词、蒙版形状、自定义配色、关键词及权重提取等实践要点。资源包内共1个PDF文件大小约2.07MB便于直接查阅与对照练习案例中的代码示例和运行结果可辅助理解参数设置与效果差异。已有109人学习或下载适合希望快速建立词云制作框架、补齐中文处理细节并动手复现完整案例的读者参考。1. 先弄明白词云到底是个什么东西你有没有过这种时候——手里攒了几百条用户留言、一整篇论文、一个产品的全部评论想跟别人说「大家主要都在聊这几件事」可一开口就卡住。总不能把原始文字一条条念一遍吧。词云就是干这个的它把一段文字里出现得多的词用更大的字号摆到同一张图上出现越频繁字就越大颜色和轮廓还能自己挑。它本质上是一张「文字的重要性地图」。你不用读完全文扫一眼就知道这段文字在讲什么、哪个词被提得最多。做它也不需要多复杂的环境Python 里两个库就够了wordcloud 负责把词排成图matplotlib 负责把图显示和保存出来。下面我从装环境开始带你跑通第一个例子再一步步换成中文、换成你想要的形状。2. 为什么值得学词云能帮你摆平的三个真实场景2.1 一屏看不懂的文字三秒看出重点我先说一个几乎人人都会遇到的场面。假设你手上有一份两万字的问卷回答或者一千条商品评价老板问你「用户到底在抱怨什么」。你从头读到尾读完第一遍脑子是糊的读完第二遍开始怀疑自己读完第三遍只记得最后那几条特别生气的。这种时候人脑对「整体分布」这件事是天然不擅长的——我们对单个故事印象很深对「哪个词被提了一千次、哪个词只被提了三次」几乎没有感觉。词云解决的第一个问题就是这件事把「频率」翻译成「大小」。文字还是那些文字但它把「出现次数」这个抽象数字变成了眼睛能直接比较的视觉尺寸。一千次的词占掉半个屏幕三次的词缩成一个小点。你不用统计不用做表扫一眼就知道重心在哪。这背后其实是文本挖掘里一个很朴素的思路先把文本拆成一个个词数每个词出现多少次再按次数决定它在画面上的权重。词云只是把这个过程的结果画了出来。所以学词云你顺手就把「词频统计」「文本预处理」这两个最基础的文本分析动作摸了一遍——这也是为什么我建议零基础的人从它入手它门槛低但该有的环节一个不少。2.2 报告、作业、汇报里最容易救场的一张图第二个场景更实际。你做完一份分析PPT 里全是表格和折线图数字很准但台下的人已经开始低头看手机了。这时候你在中间插一张词云画面上「续航」「发热」「客服」三个词大得刺眼剩下的一堆小词密密麻麻铺在后面——你不用开口解释观众自己就看懂了结论。这就是词云在「报告和演示」里的价值它是信息压缩。一张图里塞进了几百个词观众花两秒钟接收到的信息量可能比看三页表格还多。而且它对观众没有门槛不管是技术评审还是给完全不懂数据的同事看都能一眼接住。对学生来说也是同理。做课程作业、做课题汇报、做社团活动的反馈整理一张词云能让你的结论看起来有分量得多。它不替代严谨的统计分析但在「先让人有兴趣听你讲」这一步它的性价比高得离谱。包括社交媒体上那种「某款产品口碑如何」的快速判断很多时候也是先出一张词云看整体情绪倾向再决定要不要深挖。2.3 它是文本挖掘里花时间最少的第一步第三个理由稍微「功利」一点但我认为对零基础的人最重要词云是整个文本处理领域里最快能出成果的入口。你不需要先学机器学习不需要懂模型甚至不需要理解什么是向量。装两个库读一个文本文件十行代码屏幕上就出来一张图。这种「立刻看到东西」的反馈对刚入门的人来说非常重要——它让你知道自己在学的东西是真的能跑起来的而不是一堆概念堆在那里。而且它天然是个「探索工具」。拿到一份陌生的数据你不知道里面有什么先跑一张词云看看哪些词冒出来了往往就能发现你原本没预料到的方向。比如你以为用户在夸物流结果词云里「包装」大得吓人那你就知道下一步该去查包装相关的记录了。这种「先看一眼再决定往哪挖」的动作在数据分析里叫探索性分析词云是最省力的实现方式之一。另外词云还支持多语言。英文、中文、日文都能做只是中文多一道分词的工序——这个我们后面会专门讲。所以你现在学的东西不会只对一种文本有用。综合下来这三个理由其实指向同一件事投入很小产出很快而且产出的东西能直接用。对刚接触 Python 课程资源、想找个练手项目的人来说没有比这更合适的起点了。3. 零基础第一次动手装好环境跑通十行代码3.1 先把 Python 和一个顺手的编辑器准备好刚开始学的人最容易在这一步就卡住然后怀疑自己不适合学编程。其实这一步没有任何技术含量只是流程没走顺。第一件事是装 Python。资源里演示用的是 Python 3.7你现在装 3.8 以上的版本也完全没问题代码写法没变。安装的时候有一个选项一定要勾上——把 Python 加到系统环境变量里Windows 上那个长长的 Add Python to PATH 勾选框。勾了它你在命令行里敲python才能直接调用不勾后面装库的时候会一直报「不是内部或外部命令」很多人卡在这一步其实就是一个勾的事。第二件事是选编辑器。编辑器就是你写代码的地方它不影响代码本身能不能跑。资源里用的是 PyCharm你用别的编辑器也完全可以代码是通用的。对零基础的人来说选编辑器的标准只有一个能新建一个文件夹、能在里面新建 .py 文件、能点运行。不要一上来折腾各种插件和配置那是熟手干的事。第三件事也是新手最容易忽略的把文本文件和代码文件放在同一个文件夹里。听起来是废话但后面所有的路径报错八成都是因为它。我自己的习惯是每做一个新例子就建一个新文件夹里面放三样东西代码文件、文本文件、以后生成的图片。一个例子一个文件夹互不干扰出问题了也好找。提示不要把所有练习都堆在一个文件夹里。文件一多你自己都记不清哪个 txt 对应哪段代码排查起来会非常痛苦。装完之后验证一下打开命令行或者编辑器的终端敲python --version能打印出版本号比如 Python 3.7.x 或者 3.10.x就说明装好了。如果提示找不到命令回去检查环境变量那个勾。3.2 装三个库wordcloud、matplotlib、jiebaPython 本身不带画词云的功能得装第三方库。这一步用 pip 命令就行在命令行里敲pip install wordcloud matplotlib jieba这三行一次装完。我解释一下每个是干什么的你心里有个数后面看代码就不会懵wordcloud核心库。你把一段文本丢给它它负责统计词频、决定每个词摆在哪、字号多大、颜色怎么配最后给你一个词云对象。matplotlib画图库。wordcloud 生成的词云对象本身还不是图片文件得靠 matplotlib 把它「显示出来」或者「存下来」。你可以把它理解成相机的取景器。jieba中文分词库。做英文词云用不上它但中文必须用——原因第四章会详细讲。装的过程可能会等一会儿因为 wordcloud 依赖一个图形库体积不小。如果下载特别慢可以换成国内的镜像源命令行后面加个-i参数指向镜像地址具体地址网上一搜就有这里不展开。装完验证pip list在打印出来的一长串列表里找找有没有 wordcloud、matplotlib、jieba。有就成没有的话可能是装到了别的 Python 环境里这时候把pip换成python -m pip再试一次。3.3 第一个例子十行代码生成一张词云好环境齐了现在跑第一个例子。资源里的案例 01 是「最简调用」我把它稍微改得更稳一点加了文件关闭和编码处理# -*- coding: utf-8 -*- from wordcloud import WordCloud import matplotlib.pyplot as plt # 打开文本文件encodingutf-8 避免中文乱码 with open(text.txt, r, encodingutf-8) as f: text f.read() # 生成词云对象默认会按空格切词、按词频决定字号 wc WordCloud().generate(text) # 显示出来 plt.imshow(wc, interpolationbilinear) # bilinear 让显示更平滑 plt.axis(off) # 关掉坐标轴不然图上有刻度线 plt.show() # 存成图片文件保存在当前文件夹 wc.to_file(wordcloud.png)我逐段说一下这几行到底在干什么因为新手最怕的就是「代码能跑但不知道在跑什么」。前三行是导入库没什么好说的写 Python 都要这么开头。from wordcloud import WordCloud的意思是「从 wordcloud 这个包里只拿出 WordCloud 这个类」后面就能直接用WordCloud()创建对象不用写成wordcloud.WordCloud()。with open(...) as f:这一段是读文件。with的写法好处是文件用完会自动关闭不会占着不放。encodingutf-8指定了编码中英文混排的文本基本都用这个。f.read()是把整个文件内容读成一个长字符串存进text变量里。WordCloud().generate(text)是核心。这里WordCloud()括号里的参数全是默认值没做任何定制所以出来的是一张最朴素的图白色背景、默认配色、词按出现频率排大小。.generate(text)接收那个长字符串返回一个已经排好版的词云对象wc。接下来三行是显示。plt.imshow()负责把词云对象画到画布上interpolationbilinear是插值方式作用就是让显示出来的图边缘更顺滑不那么毛糙。plt.axis(off)是关掉坐标轴——如果你不写这句图的四周会出现数字刻度很难看。plt.show()是真正把窗口弹出来。最后一行wc.to_file(wordcloud.png)是保存。它和plt.show()是两件独立的事你可以只显示不保存也可以只保存不显示。保存的文件会出现在代码文件所在的文件夹里。注意这个例子用的是英文文本。如果你的 text.txt 里是中文跑出来大概率会是一堆方块——别慌那不是代码错了是缺字体第四章第一节专门讲。跑通这一步你就已经完成了一次完整的「读文本 → 生成 → 显示 → 保存」。后面六个案例本质上都是在WordCloud()的括号里加参数或者在生成方式上做替换。所以别小看这十行它是整份教程的地基。4. 中文词云进阶字体、分词、形状和配色一次说清4.1 中文变方块font_path 到底在解决什么先说你一定会遇到的第一个问题。把上面那段代码的文本换成中文跑一下屏幕上出来一堆「□□□」或者干脆只有几个孤零零的字。这不是编码问题也不是库装坏了纯粹是字体问题。原因很简单wordcloud 在画每个词的时候需要知道用什么字体来渲染这些字符。它默认用的是一款西文字体这款字体里压根就没有汉字的字形数据。文字编码是对的程序也知道该画哪个词只是「画不出来」于是用方块占位。解决办法就是告诉它用一个包含中文的字体文件也就是font_path参数wc WordCloud( font_pathsimhei.ttf, # 中文字体文件路径缺了它中文会变成方块 width800, # 画布宽 height600, # 画布高 modeRGBA, # 带透明通道的模式 background_colorNone # 背景透明 ).generate(text)这里几个参数一起说。font_path指向一个 .ttf 或 .otf 的字体文件路径可以是绝对路径也可以是相对于代码文件的路径。资源里用的是某个系统自带字体你换成自己电脑上有的中文字体就行比如黑体、宋体具体文件名去系统字体目录里找。width和height是画布尺寸单位是像素。数字越大能塞进去的词越多但生成也越慢。800×600 是个挺合适的起步值。modeRGBA和background_colorNone要配合着看。RGBA 里的 A 是 alpha也就是透明度通道。把背景色设成None而不是white再配合 RGBA 模式出来的图背景就是透明的PNG 格式能保留这个透明。这样做的好处是你把词云贴到任何底色的 PPT 或者海报上都不会出现一个突兀的白色方块。提示如果你只改了 font_path 但还是方块先确认那个字体文件真的存在、路径没写错。路径写错的时候 wordcloud 不一定会报错它会静默地退回默认字体然后继续给你方块。4.2 不分词的中文词云是一团糊字体解决了第二个问题紧跟着来。你兴冲冲跑出来一张图发现上面全是「我们」「的是」「一个」「不知道」这种词而且最大的那个词可能是半句话。这是中文特有的坑中文写字不用空格分词。英文里 I love you 三个词之间有空格程序按空格一切就完事了。中文「我喜欢你」四个字连在一起程序不知道该怎么切——是「我 / 喜欢 / 你」还是「我喜 / 欢你」wordcloud 默认的切词逻辑就是按空格切。你不给它空格它就把一整段当成一个巨大的「词」于是要么整段糊成一坨要么随机切出一些莫名其妙的片段。所以做中文词云中间必须加一道工序分词。把连续的汉字序列切成一个一个有意义的词再用空格把它们重新连起来骗过 wordcloud让它以为这是英文文本。这一步不是可有可无的优化是中文词云能不能看的分水岭。原因有三个一是切完词才能准确统计词频不然统计的粒度是错的二是切完词才能识别出关键信息比如人名、地名、产品名三是切完词你才能往里面加停用词表把「的、了、是」这些没信息量的词过滤掉。4.3 用 jieba 把句子切成词分词用 jieba这是中文分词里最常用的库装的时候已经一起装好了。核心就一行import jieba with open(novel.txt, r, encodingutf-8) as f: text f.read() # jieba.cut 返回的是一个生成器用空格把切出来的词重新连成字符串 text .join(jieba.cut(text)) # 打印前 100 个字符看看切得对不对这行排查时很有用 print(text[:100])jieba.cut(text)返回的不是列表是一个生成器——你可以理解成「边切边给你」节省内存。所以不能直接打印看得用 .join(...)把它拼成一个用空格分隔的长字符串。这个字符串才是能喂给 wordcloud 的格式。那句print(text[:100])别省。它是你排查问题的第一道关卡分词切得对不对打印前一百个字符一眼就看出来了。如果打出来是「他 走 进 房间 里 」这样的说明切得不错如果是「他走 进房 间里」这样乱七八糟的那可能是文本编码有问题或者混进了奇怪的符号。jieba 有三种分词模式资源里提到了我按新手的使用频率排一下精确模式是默认的jieba.cut(text)就是它。它试图把句子切得最准确适合做词云、做文本分析。全模式是jieba.cut(text, cut_allTrue)。它会把所有可能成词的组合都扫出来速度快但会有大量冗余比如「北京大学」它会同时给出「北京」「大学」「北京大学」。做词云一般不用它因为重复词太多图会很乱。搜索引擎模式是jieba.cut_for_search(text)。它在精确模式的基础上对长词再切一刀提高召回率。适合做搜索索引做词云用得少。新手就用默认的精确模式别纠结。等你发现某些专有名词被切坏了再去研究自定义词典——那是后面的事。4.4 换形状用一张蒙版图决定词云的轮廓到这里你的中文词云已经能正常出图了但它是个规规矩矩的矩形。资源里的案例 04 教的是怎么把它变成任意形状靠的是mask参数。原理不复杂你给它一张图它把这张图当成一个「模子」只在这个模子的轮廓范围内摆词。这张图叫蒙版。from PIL import Image import numpy as np # 把蒙版图读进来转成 numpy 数组wordcloud 需要的是数组不是图片对象 mask np.array(Image.open(mask.png)) wc WordCloud( maskmask, # 形状由这张图决定 font_pathsimhei.ttf, background_colorNone, modeRGBA ).generate(text)两个关键点。第一蒙版图必须先转成 numpy 数组因为 wordcloud 内部是按像素矩阵来算的它不认 PIL 的图片对象。第二蒙版的规则是「白色的地方不画词深色的地方画词」。所以你做蒙版的时候想要词出现的地方要涂黑或者深色不想要的地方留白。资源里用的是一个黑色的剪影做蒙版。你可以自己用画图工具做一张白底然后在中间画一个纯黑的形状存成 PNG。形状可以是心形、动物、logo 轮廓、地图轮廓随便你。但要注意几点蒙版图不能太大几百像素见方就够太大会让生成速度慢到怀疑人生蒙版最好是灰度图或者 RGB 图带 alpha 通道的图有时候会出问题形状内部的空白区域不要太细词塞不进去会挤成一团。4.5 上颜色从蒙版取色和自定义配色形状有了接下来是颜色。案例 05 和 06 讲了两种完全不同的上色思路。第一种是从蒙版图里取色。你那张蒙版图本身是有颜色的wordcloud 可以把每个词放在它所在位置的颜色上这样出来的词云颜色和原图自然融合from wordcloud import ImageColorGenerator # 根据蒙版图的颜色生成配色器 image_colors ImageColorGenerator(mask) # 生成词云之后用配色器重新上色 wc.recolor(color_funcimage_colors)注意recolor是在generate之后调用的顺序别搞反。这种方式的优点是省事颜色自动和底图协调缺点是颜色受限于蒙版图你想改颜色就得回去改图。第二种是自己写一个颜色函数。案例 06 的做法是定义一个random_colorwordcloud 每画一个词就调用它一次问它「这个词用什么颜色」import random def random_color(word, font_size, position, orientation, font_path, random_state): # hsl 三个参数色相、饱和度、亮度 # 这里固定色相为 0饱和度和亮度在 60% 到 80% 之间随机 s hsl(0, %d%%, %d%%) % (random.randint(60, 80), random.randint(60, 80)) return s wc WordCloud( color_funcrandom_color, # 把函数交给它 maskmask, font_pathsimhei.ttf, background_colorNone, modeRGBA ).generate(text)这个函数的六个参数是 wordcloud 传进来的当前词、字号、位置、方向、字体路径、随机状态。你实际用到的通常只有前几个后面几个是给需要精细控制的场景准备的。返回值必须是一个颜色字符串hsl(...)、rgb(...)、十六进制#FF0000都行。hsl(0, 70%, 70%)里的三个数字分别是色相、饱和度、亮度。色相 0 是红色120 是绿色240 是蓝色。固定色相、只让饱和度和亮度随机出来的是同一色系的深浅变化看起来会很协调。如果你全随机出来会像个调色盘很花。注意颜色函数每画一个词就会调用一次如果你的词有几千个这个函数会被调用几千次。所以别在里面写耗时的操作也别在里面print太多东西不然终端会被刷爆。4.6 把词的大小握在手里关键词和权重前面所有的例子词的大小都是 wordcloud 自己算的——它数每个词出现多少次出现多的就大。但有时候你不想按出现次数来你想按「重要性」来。比如一篇小说里「悟空」出现了一千次「师父」只出现了一百次但你觉得「师父」更关键想让它更大。这种时候就用案例 07 的方法自己算权重直接喂给词云。import jieba.analyse with open(novel.txt, r, encodingutf-8) as f: text f.read() # 提取前 200 个关键词withWeightTrue 表示同时返回权重 freq jieba.analyse.extract_tags(text, topK200, withWeightTrue) print(freq[:20]) # 看看前 20 个长什么样 # 返回的格式是 [(词, 权重), ...]转成字典才能用 freq {i[0]: i[1] for i in freq} # 注意这里是 generate_from_frequencies不是 generate wc WordCloud( maskmask, font_pathsimhei.ttf, background_colorNone, modeRGBA ).generate_from_frequencies(freq)三个地方值得说。extract_tags是 jieba 自带的关键词提取功能。topK200表示只要前 200 个词withWeightTrue表示除了词本身还返回一个权重分数。这个权重的算法是 TF-IDF 那一套大意是「一个词在这篇文章里出现得多但在所有文章里出现得少它就越有代表性」。你不用深究公式知道它给的是「重要性」而不是「频次」就行。返回的freq是列表每一项是个元组比如(悟空, 0.8)。但 wordcloud 要的是字典所以要用字典推导式转换一下i[0]是词i[1]是权重。最关键的一点generate变成了generate_from_frequencies。前者接收原始文本自己分词自己统计后者接收一个「词→权重」的字典直接按你给的数据画。用后者就不能再传原始文本了两者是并列的两种入口。用generate_from_frequencies的好处是你可以完全控制每个词的大小。权重可以是词频、可以是 TF-IDF 分数、可以是你自己打的分、甚至可以是从别的地方导入的数据。这也是词云真正变成「分析工具」而不是「玩具」的地方。5. 新手最容易翻车的五个坑现象、原因和解决办法5.1 坑一中文全是方块或者乱码现象代码跑通了图也出来了但上面全是「□□□」或者是一堆看不懂的符号一个汉字都没有。原因九成是没设font_path或者设了但路径不对。wordcloud 默认用的是西文字体里面没有汉字字形渲染的时候只能用方块占位。还有一种可能是文本文件本身的编码不是 UTF-8读进来的时候就已经乱码了那后面再怎么处理都是乱的。解决先确认WordCloud()里有没有写font_path你的字体文件.ttf。再确认这个路径真的能找到文件——可以把路径拷到文件管理器里试一下。如果路径没问题还是方块检查读文件那行有没有encodingutf-8如果没有加上再试。实在不确定文本编码可以用编辑器打开文件另存为 UTF-8。5.2 坑二文件找不到报 FileNotFoundError现象运行代码终端里红字一片最后写着FileNotFoundError: [Errno 2] No such file or directory: xxx.txt。原因这是新手出错频率最高的一类问题几乎全是相对路径搞错了。代码里写的text.txt是相对路径它相对于「你运行代码时所在的那个目录」而不是「代码文件所在的目录」。这两者在编辑器里经常不是一回事。资源里大量使用../xyj.txt这种写法那个..表示上一级目录如果你的文件夹结构和作者不一样这个路径就是错的。解决最稳的办法是把文本文件和代码文件放在同一个文件夹里然后路径只写文件名不加任何目录前缀。如果还不行先打印一下当前工作目录import os; print(os.getcwd())看看程序到底在哪找文件再把文件放到那个地方去或者把路径改成绝对路径。5.3 坑三生成的图一片空白或者只有寥寥几个词现象程序没报错图也保存了但打开一看几乎是白的只有角落里有几个小词甚至完全空白。原因可能性有几种。一是文本太短或者全是重复内容可用的词太少。二是蒙版图设得不对词的可用区域被压缩到极小。三是分词之后没有用空格连接整段被当成一个词结果只能画出一个巨大的词或者什么都画不出。四是背景色和字体颜色撞了比如白底白字看着就像空白。解决先在代码里加一行print(len(text))和print(text[:200])确认文本真的读进来了、分词真的做了。如果是蒙版的问题先把mask参数去掉看能不能正常出图能出就说明是蒙版的问题。如果是颜色问题把background_color改成white试试。5.4 坑四满屏都是「的、了、是、我们」现象词云出来了形状颜色都挺好但最大的几个词全是「的」「了」「是」「我们」「这个」这种毫无信息量的词真正想看的词被挤到角落里。原因没有做停用词过滤。这些词在任何一段中文里出现频率都极高但它们不携带任何信息。你不主动把它们排除掉它们一定会霸占最大的位置。这不是 bug是词云的默认行为——它只认频率不认意义。解决wordcloud 有个stopwords参数可以传一个集合进去里面的词会被直接跳过stopwords {的, 了, 是, 我们, 这个, 一个, 和, 在} wc WordCloud(stopwordsstopwords, font_pathsimhei.ttf, ...)停用词表可以自己一条条加也可以在网上找现成的中文停用词表读进来转成集合。我自己的习惯是先跑一遍不加停用词的看看哪些词冒出来最烦人再把它们一个个加进去迭代两三轮就干净了。5.5 坑五蒙版形状不对或者直接报错现象设了mask参数结果图还是矩形或者形状完全不对或者程序直接抛出一个和数组维度相关的异常。原因蒙版的读取方式不对。wordcloud 要的是 numpy 数组如果你直接传一个 PIL 图片对象进去它处理不了。另外蒙版的颜色规则是「白色不画词、深色画词」很多人拿了一张白底黑字的图当蒙版结果词全挤在字里面看着像没生效。还有一种情况是蒙版图太大几千像素见方生成速度慢到以为程序卡死了。解决确认写了mask np.array(Image.open(mask.png))两步都不能少。确认蒙版是「想要词的地方是深色不想要的地方是白色」。把蒙版缩到 500 到 800 像素见方既快又够用。6. 从「能跑通」到「能用在项目里」下一步该学什么跑完这七个案例你已经能做出形状、颜色、权重都可控的词云了。接下来的问题是怎么让它真正变成你的能力而不是七段跑过就忘的代码。我的建议是按这个顺序往下走。第一站把停用词和自定义词典用熟。这两个东西听起来不起眼但它们决定了你的词云是「能看」还是「有用」。停用词决定你排除什么自定义词典决定你保住什么。比如做一份产品评论的词云「续航」「快充」这种词很容易被 jieba 切碎成「续」「航」加进自定义词典就能保住它们。这一步练熟了你的词云质量会明显上一个台阶。第二站把generate_from_frequencies用起来。前面说过这个入口让你完全控制每个词的大小。你可以先用别的办法算权重——词频、TF-IDF、甚至是情感分析的得分——再喂给它。到这一步词云就不再是「把文本丢进去出张图」而是「我有了结论用图表达出来」。第三站换个输出场景。词云能存成 PNG就意味着它能进 PPT、进网页、进报告。试试把背景设成透明把图贴到一张有底色的幻灯片上试试调整width和height做出适合手机屏的长图试试把max_words调小只留最关键的几十个词让图更干净。这些参数改起来很快但效果差别很大。阶段该练什么练成的标志入门跑通七个案例能独立生成一张中文词云熟练停用词 自定义词典图里没有废话词专有名词不被切碎进阶自己算权重能按重要性而不是频率出图应用调尺寸、透明度、词数图能直接放进汇报材料里再说一个具体技巧别一次调一个参数。新手常见的做法是改一下width跑一次改一下font_path跑一次改一下颜色跑一次。这样调一下午也调不出满意的。正确做法是先固定形状和字体把词的内容调干净最后再调颜色和尺寸。顺序反了你会一直在细枝末节上打转。最后说个我自己的教训。我刚开始做词云那阵子最常干的事就是代码跑通了、图出来了看一眼觉得「还行」然后就关掉去干别的了。结果过两周再做发现自己连font_path该写在哪都忘了又得从头翻代码。后来我给自己定了个规矩每做完一个例子必须把「这段代码解决了什么问题、改了哪几个参数、下次遇到类似需求怎么改」这三句话写在代码文件的顶部注释里。写不了这三句说明我其实没搞懂只是碰巧跑通了。从那以后我每次做完一个词云都强制走一遍这个流程翻车次数少了很多。希望这些能帮你少绕几个弯早点做出第一张自己想贴在报告里的词云。本文还有配套的精品资源点击获取

相关推荐

智能体报价差10倍?拆解成本构成与选型避坑指南
智能体报价差10倍?拆解成本构成与选型避坑指南

1. 报价差10倍的背后,到底在比什么同样叫“智能体”,有人报5万,有人报50万,甚至同一个需求发给三家供应商,报价能从3万跨度到30万。这个现象在2024年下半年到2025年初变得特别普遍,因为“智能体”这个词被用… · 2026/11/10 9:58:38

Outlook高效办公:邮件礼仪与自动化工作流实战指南
Outlook高效办公:邮件礼仪与自动化工作流实战指南

简介:本资源是一份面向职场新人、行政人员及日常办公用户的电子邮件沟通能力提升课件,聚焦Outlook客户端实操与专业邮件礼仪双主线,解决邮件撰写不规范、收发效率低、协作响应滞后等高频痛点。课件以PPT格式呈现,共1个文件&#x… · 2026/11/10 9:58:41

RK3588部署YOLOv5s:手写C++ NMS后处理提速359倍
RK3588部署YOLOv5s:手写C++ NMS后处理提速359倍

做RK3588部署YOLOv5s的时候,模型推理那一步远没有想象中难,真正把人整崩溃的是后处理里的NMS。上一篇文章我讲到把ONNX模型放到NPU上跑,当时还挺高兴,结果一测整体延迟,傻了:单帧NPU推理只要十几毫秒&#… · 2026/11/5 18:03:34

上海报考高级电工证过期了怎么复审?网上查询教你一招搞定
上海报考高级电工证过期了怎么复审?网上查询教你一招搞定

上海报考高级电工证过期了怎么复审?网上查询教你一招搞定 证书过期了不知道怎么复审延期?别慌,今天就教你一招搞定。在上海,高级电工证是很多电工从业者必备的“硬通货”,但很多人在拿到证后,因为工作忙碌或疏忽,导致证书到期了却不知道怎么处理,甚至… · 2026/11/10 9:57:45

电工证都有什么用处啊?良心建议帮你解决证书过期复审难题
电工证都有什么用处啊?良心建议帮你解决证书过期复审难题

电工证都有什么用处啊?良心建议帮你解决证书过期复审难题 证书过期了不知道怎么复审延期?很多人在拿到电工证后,总觉得“有了证就完了”,殊不知证书不是一劳永逸的。尤其是在当前国家加强安全生产管理、推动职业技能认证规范化的大背景下,… · 2026/11/10 9:57:45

网上考电工证怎么考报名入口与办理流程
网上考电工证怎么考报名入口与办理流程

电工证网上怎么考?郑州报考避坑指南全攻略 实操考试心里没底怕挂科,是很多准备考电工证的朋友们最大的心病。特别是像你这样在周口工作的建筑工人,想要通过网上考电工证提升技能,拿到资格证,但又担心流程复杂、材料不齐、考试不过,这些都成了拦路虎。别… · 2026/11/10 9:57:45

电工证行业类型有哪些?上岗必备的电工证到底值不值?
电工证行业类型有哪些?上岗必备的电工证到底值不值?

电工证行业类型有哪些?上岗必备的电工证到底值不值? 不知道去哪报名怕被中介坑?电工证行业类型那么多,到底该考哪个?很多人在准备考电工证的时候,最怕的就是被中介忽悠,花冤枉钱还拿不到证。其实,电工证不是随便考的,它分好多种类型,每种证的用途、… · 2026/11/10 9:57:45

电工证都有什么用处啊合格标准与通过率
电工证都有什么用处啊合格标准与通过率

工地太忙根本没时间复习考试?电工证含金量怎么体现 工地太忙根本没时间复习考试,电工证的含金量又怎么体现?你不是一个人在战斗。作为濮阳房建工程从业者,每天在项目现场穿梭,面对繁重的施工任务和紧迫的工期,抽时间复习电工证考试内容确实是一件难事。… · 2026/11/10 9:57:44

电工证试题下载河南版怎么转异地 3个良心建议帮你解决证书过期难题
电工证试题下载河南版怎么转异地 3个良心建议帮你解决证书过期难题

电工证试题下载河南版怎么转异地 3个良心建议帮你解决证书过期难题 证书过期了不知道怎么复审延期?别慌,这是很多电工朋友在工作中遇到的痛点。特别是在河南,随着《特种作业人员安全技术培训考核管理规定》的不断更新,很多电工证持证人因为不了解政策或… · 2026/11/10 9:56:44

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/9 3:11:26

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/9 5:24:17

丹寨电工证怎么考?内部消息透露报考条件和流程
丹寨电工证怎么考?内部消息透露报考条件和流程

丹寨电工证怎么考?内部消息透露报考条件和流程 急需特种作业证才能上岗找工作,这是很多电工朋友最真实的焦虑。尤其是像丹寨电工证这样的证书,直接影响你的职业发展和薪资待遇。但你知道吗?很多人都在报考过程中踩坑,有的甚至花了几千块最后白忙一场。今… · 2026/11/10 0:00:13

成都建筑电工证办理郑州报考避坑指南
成都建筑电工证办理郑州报考避坑指南

成都建筑电工证办理郑州报考避坑指南 证书过期了不知道怎么复审延期?别慌!这篇文章手把手带你解决成都建筑电工证办理的难题,顺便避掉郑州报考的那些坑。不管你是刚拿到证的新手,还是准备复审的老电工,这波干货都别错过。… · 2026/11/10 0:00:13

梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程
梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程

梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 你是不是正为梅州低压电工证发愁?不知道去哪报名,怕被中介骗钱,又担心证书是不是全国通用?其实,这些顾虑都是正常人会有的。今天我就从一个在开封房建工程一线干了几年的电工角度,手把手教你… · 2026/11/10 0:00:13

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:35

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:58

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:25:08

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码