You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python生成含指定重复词的词云(禁用频率合并)

Python实现按原列表重复次数精确显示的词云

要实现让词云精确匹配原列表中每个单词的重复次数(不合并重复项,每个出现的单词都独立显示),可以通过给重复单词添加唯一标识绕过字典键唯一的限制,生成词云后再还原原单词,具体步骤如下:

实现代码

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import random

# 模拟原始重复单词列表(替换成你的实际列表即可)
letters = [chr(ord('A') + i) for i in range(26)]
rand_let = random.choices(letters, k=70)

# 构建带唯一索引的权重字典:每个条目权重为1,确保每个单词实例都被单独处理
weight_map = {}
for idx, word in enumerate(rand_let):
    weight_map[f"{word}_{idx}"] = 1

# 初始化词云参数,和你的R代码参数对应
wc = WordCloud(
    scale=3,
    max_words=100,
    random_order=True,
    color_func=lambda *args, **kwargs: random.choice(['grey50', 'blue', 'red'])
)

# 从权重字典生成词云
wc.generate_from_frequencies(weight_map)

# 还原原单词:去掉唯一索引后缀
wc.words_ = {key.rsplit('_', 1)[0]: val for key, val in wc.words_.items()}

# 展示词云
plt.figure(figsize=(10, 6))
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()

原理说明

  1. 绕过字典键唯一限制:给原列表中每个单词(包括重复项)添加唯一索引后缀,构建键唯一的权重字典,每个条目权重设为1(确保所有显示的单词大小一致)。
  2. 还原原单词:词云生成后,修改词云对象的words_属性,去掉每个键的唯一后缀,让最终显示的文本回到原单词。
  3. 参数对应R代码:random_order=True对应随机排列,color_func实现随机颜色选择,scale控制词云缩放比例,和你R代码的效果一致。

内容的提问来源于stack exchange,提问作者kiki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:15:33