python制作词云图全流程

本文介绍了如何使用Python制作词云图,包括所需的txt文本素材、安装wordcloud、jieba、numpy和PIL库的过程。特别针对在安装wordcloud过程中遇到的问题,提供了解决方案,即通过下载特定版本的whl文件并安装。最后展示了生成的词云图效果,背景为打开的笔记本电脑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作:

  • txt格式的词云文本素材
  • wordcloud(词云)、jieba(中文分词)、numpy(数组处理)、PIL(读取图片)4个库。

没有安装的话需要在cmd里pip install 一下,使用jupyter也可以在Anaconda Powershell Prompt 里安装。

在正常下载完jieba(pip install jieba)、PIL(pip install pillow)、numpy库后,pip install wordcloud 报错是我遇见的第一个问题。

更新pip,通过镜像下载均不行,查找一番资料后,发现可以通过https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud选择合适的版本下载whl文件,如图

在cmd里pip install wheel,成功后进入下载好文件的所在路径pip install 文件名,或者pip install 全路径文件名。成功后可以打开pycharm➡file➡setting➡python interpreter查看其是否存在来进行检验。

在所有准备工作做好后,正式开始我们的词云制作。

import wordcloud
import numpy
from PIL import Image
import jieba

pic = Image.open(r"C:\Users\Administrator\Desktop\computer.PNG","r") #背景图
pic = numpy.array(pic)
w = wordcloud.WordCloud(mask=pic)

# 构建并配置词云对象w,scale参数,提高清晰度
w = wordcloud.WordCloud(width=1000,
                        height=700,
                        background_color='white',
                        font_path=r'D:\Ziti\FZHLJW.TTF',
                        mask=pic,
                        scale=15)

# 对来自外部文件的文本进行中文分词,得到string
f = open(r"C:\Users\Administrator\Desktop\work.txt","r",encoding = 'utf-8')
txt = f.read()
txtlist = jieba.lcut(txt) #精确模式,每个词只用一遍,没有冗杂词汇,利用 jieba 将文本 txt 进行分词、并形成一个列表传递给变量 txtlist
jieba.suggest_freq(('大数据'), True) #输出分词结果后发现大数据被分为了大和数据两个词,调整词典使其不被分开
string = " ".join(txtlist)#利用字符串的 .join 方法将列表重新转换成字符串

# 将string变量传入w的generate()方法,给词云输入文字
w.generate(string)

# 将词云图片导出到当前文件夹
w.to_file('ciyun_pic.png')

背景图是一个打开的笔记本电脑,导出的图片如下所示。

### 使用 Python 制作评论数据的词云图 为了利用 Python 将评论数据转换成词云图,可以采用 `pyecharts` 库中的 `WordCloud` 类来实现这一目标。此库提供了简单易用的方法创建交互式的图表。 #### 导入必要的包 首先需要安装并导入所需的库: ```bash pip install pyecharts jieba ``` 接着,在脚本中引入这些库以及处理中文分词所必需的 `jieba` 工具: ```python from pyecharts.charts import WordCloud import jieba ``` #### 准备评论数据 假设有一个字符串列表形式存储着多条评论信息,每一条代表一位用户的反馈意见。这里先定义一个简单的模拟数据集作为示例输入: ```python comments = [ "这部电影真的很好看", "剧情紧凑不拖沓值得一看", "演员演技在线非常棒" ] ``` #### 数据预处理 对于非英文文本(如上述中文),通常还需要借助第三方工具来进行分词操作以便更好地统计单词频率。在这里使用了流行的中文分词器——`jieba` 对每一句话进行切割,并计算各个词汇出现次数形成键值对集合用于后续绘图。 ```python word_counts = {} for comment in comments: words = jieba.lcut(comment) for word in words: if len(word.strip()) > 1: # 过滤单个字符 word_counts[word] = word_counts.get(word, 0) + 1 data_pairs = list(word_counts.items()) ``` #### 绘制词云图 有了准备好的 `(word, count)` 形式的元组列表之后就可以调用 `add()` 方法向 `WordCloud` 实例添加系列项了。设置合适的参数比如字号范围等可以让最终效果更加美观[^1]。 ```python wc = WordCloud() wc.add("", data_pairs, word_size_range=[20, 80]) ``` 最后一步就是渲染图形到文件或网页上查看结果了: ```python wc.render("comment_wordcloud.html") ``` 这样就完成了一个基本流程,当然还可以进一步自定义样式选项让作品更具特色[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值