首页 > 工具箱 > 词云生成

词云生成

把文章丢进来自动切词统计,或者直接给一份「词 + 权重」的清单,画成词云图。轮廓、配色、字体、竖排比例都能调,结果可以导出成透明底 PNG 直接放进 PPT。整个过程在你的浏览器里用 canvas 画,文本不会上传。

说明

两种入口
「从文章统计」会先切词再按出现次数定字号,适合直接丢一篇文章、一批评论或一份商品标题;「直接给词表」则每行一个词,用逗号、冒号、制表符或空格跟上权重,比如 跨境电商,120,不写权重就按 1 算。后者适合你已经在别处统计好了数据,只想要一张图。
中文是怎么切的
词频统计同一套做法:先按标点、空白、数字和英文把文本切成纯汉字片段,在每个片段里枚举长度 2–4 的连续子串计数,再把「出现次数与某个包含它的更长片段完全相同」的碎片剔掉——那说明它从没独立出现过。不依赖词库,新词和专有名词也能切出来,代价是短文本不准,所以默认要求至少出现 2 次。
字号是怎么定的
按权重在「最小 – 最大」之间插值,用的是 0.55 次幂而不是线性:线性映射下第一名会大到挤掉所有人,开方之后长尾的词也能看清。只有一个词时直接取最大字号。字号算出来放不下时会自动缩到八成、六成再试,仍然放不下才跳过,汇总区里会报跳过了几个。
排版算法
把画布切成 4 像素的网格,每个词先在离屏画布上渲染一次,读 getImageData 的透明度得到它真实的像素轮廓(不是外接矩形),然后从中心沿阿基米德螺线向外找第一个放得下的位置。因为比的是真实轮廓,笔画之间的空隙可以塞进小词,排出来才紧凑。轮廓形状是一开始就把网格里「形状之外」的格子标成已占用,所以心形、五角星都是同一套代码。
「换个排布」是随机的吗
螺线的起始角度由一个种子决定,点一次换个排布就把种子加一,同样的词表、同样的种子出来的图是一模一样的。所以你可以放心多点几次挑一张顺眼的,不会丢掉之前的效果——把种子转回去就能复现。
导出与字体
下载的是按画布原始像素导出的 PNG,选「透明」背景就是透明底,可以直接叠到深色 PPT 上。字体用的是你本机安装的字体,楷体、圆体在部分 Windows 或 Linux 上可能缺字而回落到默认字体,Impact 只对英文有效果。要在别人电脑上保持一致,建议导出 PNG 而不是截图。
相关工具
词频统计字数统计文本去重关键词组合
已复制