python词云制作(最全最详细的教程)

今天手把手教大家用python制作词云,图片的效果如下:
在这里插入图片描述

首先,需要准备的操作是:
1、安装好python3系列版本
2、安装python第三方库wordcloud;(本条及以下第三方库安装,请参考我的这篇文章python第三方库怎么安装?第三方库安装成功却运行不出报错不能用?)
3、安装numpy、pillow库。
4、安装jieba库
5、安装matplotlib库

第2步中的 wordcloud 安装成功之后,numpy、pillow库会被自动安装,
安装完wordcloud库之后,若打开cmd,输入pip list 找到了以上步骤3~5中提到的第三方库,
便不需再次手动安装,若未找到,即需要手动安装,请参考python第三方库怎么安装?第三方库安装成功却运行不出报错不能用?这篇文章

温馨提示,如出现安装成功却无法在编译器中导入第三方库的情况,请检查自己的电脑是否装了多个版本的python,如是,请卸载不需要的版本,尽可能只保留一个最新的版本。

完成以上步骤之后,下面我来讲一下如何制作最开始提到的两张词云
一、第一张:
在这里插入图片描述

生成词云时,wordcloud 默认会以空格或标点为分隔符对目标文本进行分词处理。
对于中文文本,分词处理需要由用户来完成。
一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数。
处理中文时还需要指定中文字体。
例如,选择了微软雅黑字体(msyh.ttf)作为显示效果,需要将该字体文件与代码存放在同一目录下或在字体文件名前增加完整路径。

1、打开自己电脑C:\Windows\Fonts
在这里插入图片描述
2、选择微软雅黑字体(msyh.ttf)作为显示效果(当然也可以选择自己喜欢的字体样式)
右键复制,并将该字体文件与代码存放在同一目录下(或在字体文件名前增加完整路径),
将此文字文件命名为"msyh.ttf"
在这里插入图片描述

3、完整代码如下,

import jieba
from wordcloud import WordCloud
txt = '弱小的人,才习惯,嘲讽和否定,而内心,强大的人,从不吝啬赞美和鼓励!我们就是后浪,奔涌吧!后浪,奔涌吧!'
words = jieba.lcut(txt)     #精确分词
newtxt = ''.join(words)    #空格拼接
wordcloud = WordCloud(font_path =  "msyh.ttf").generate(newtxt)wordcloud.to_file('中文词云图.jpg')

运行成功,(红色不代表报错哦)
在这里插入图片描述
4、最后去存放代码的那个文件夹下查找 生成的“中文词云图.jpg”文件。(每次生成的都是随机的)
在这里插入图片描述
二、第二张:
接下来讲一下如何生成带背景图的词云

1、准备一张带有透明背景的 png格式图片
2、准备一个txt文本文件,并与代码存放在同一目录下

1、找到一张图片,我们发现这张是有黄色背景的,于是我们需要把背景设置成透明的。
在这里插入图片描述
打开PS操作一下,当然你也可以直接在网上下载透明背景的图片。
在这里插入图片描述
这是我扣好的图,需要自取,直接右键保存,将文件名命名为Alice.png

再将此文件与代码文件存在同一目录下
在这里插入图片描述
2、准备一个txt文本文件(文件内容是一篇英文),并命名为Alice.txt

再将此文件与代码文件存在同一目录下
在这里插入图片描述

3、复制完整代码,直接运行即可

from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
mask = np.array(Image.open("Alice.png"))


f = open('Alice.txt','r',encoding = 'utf-8')
txt = f.read()
f.close
wordcloud = WordCloud(background_color="white",\
                      width = 800,\
                      height = 600,\
                      max_words = 200,\
                      max_font_size = 80,\
                      mask = mask,\
                      contour_width = 3,\
                      contour_color = 'steelblue'
                      ).generate(txt)
wordcloud.to_file('Alice_词云图.png')

4、在代码所在文件夹内,找到文件 Alice_词云图.png ,并打开生的成词云图。
在这里插入图片描述
三、第三张图
最后一张是中文带背景图的词云,效果图被平台删了,大家自己试着跑一跑下面的代码吧。

完整代码如下,运行前请准备图片和txt文件,并将二者与代码存放在同一目录下。(参照一、二步骤)

import jieba
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from wordcloud import WordCloud

def trans_ch(txt):
  words = jieba.lcut(txt)
  newtxt = ''.join(words)
  return newtxt


f = open('maozedong.txt','r',encoding = 'utf-8')     #将你的文本文件名与此句的'maozedong.txt'替换
txt = f.read()
f.close
txt = trans_ch(txt)
mask = np.array(Image.open("love.png"))               #将你的背景图片名与此句的"love.png"替换
wordcloud = WordCloud(background_color="white",\
                      width = 800,\
                      height = 600,\
                      max_words = 200,\
                      max_font_size = 80,\
                      mask = mask,\
                      contour_width = 4,\
                      contour_color = 'steelblue',\
                        font_path =  "msyh.ttf"
                      ).generate(txt)
wordcloud.to_file('love_词云图.png')

以上就是全部过程啦,我没讲清楚的地方欢迎评论区留言,有问必答。

我的其他账户:
bilibili账号:李桥桉
有视频讲解哦~

在这里插入图片描述

一键三连支持一下哦~

  • 308
    点赞
  • 1800
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 43
    评论
### 回答1: 生成关键词词云图需要使用Python中的第三方库wordcloud和jieba。首先需要安装这两个库,可以使用以下命令进行安装: ``` pip install wordcloud pip install jieba ``` 接下来,我们可以使用如下代码生成关键词词云图: ```python import jieba from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt # 读取文本文件 with open('text.txt', 'r', encoding='utf-8') as f: text = f.read() # 分词处理 words = jieba.cut(text) words = ' '.join(words) # 去除停用词 stopwords = set(STOPWORDS) stopwords.add('的') stopwords.add('了') stopwords.add('是') # 生成词云图 wc = WordCloud( background_color='white', # 背景颜色 stopwords=stopwords, # 停用词 max_words=200, # 最多显示词数 font_path='msyh.ttc', # 字体文件路径 margin=5 # 边距 ).generate(words) # 显示词云图 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() # 保存词云图 wc.to_file('wordcloud.png') ``` 其中,`text.txt`是待处理的文本文件,需要将其放在与代码同一目录下。在生成词云图时,我们使用了中文分词工具jieba对文本进行分词,并去除了一些常见停用词。此外,我们还可以设置词云图的一些参数,如背景颜色、最多显示词数、字体文件路径等。最后,使用`imshow`函数将词云图显示出来,并使用`to_file`函数将其保存到本地。 ### 回答2: Python生成关键词词云图的过程主要包括以下步骤: 1. 数据准备:首先需要准备要生成词云图的数据,可以是一段文本、文章、网页内容等。例如,我们可以使用Python的`requests`库爬取网页内容,或者读取本地文件。 2. 文本处理:将获取到的文本进行处理,去除无意义的词语、标点符号、停用词等。可以使用Python的`jieba`库进行分词,`nltk`库进行停用词的过滤。 3. 关键词提取:根据处理后的文本, 使用Python的`TF-IDF`算法或者`TextRank`算法提取关键词。可以使用`gensim`库或`textrank4zh`库等。 4. 生成词云图:根据提取到的关键词,使用Python的`wordcloud`库生成词云图。可以设置词云的形状、背景颜色、字体样式、词语大小等。 5. 显示词云图:最后可以使用Python的`matplotlib`库或者`pyplot`库将生成的词云图进行显示和保存。 下面是一个简单的示例代码: ```python import requests import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 获取文本数据 url = 'http://example.com' response = requests.get(url) text = response.text # 文本处理 # 去除停用词,可以自行准备停用词表 stopwords = ['的', '了', '是', '我', '你'] seg_list = jieba.cut(text) seg_list = [word for word in seg_list if word not in stopwords] # 关键词提取 keywords = ' '.join(seg_list) # 将分好的词连接成字符串 # 生成词云图 wordcloud = WordCloud().generate(keywords) # 显示词云图 plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.show() ``` 通过上述步骤,我们可以使用Python生成关键词词云图。当然,具体的实现方式还可以根据自己的需求进行调整和优化。 ### 回答3: 生成关键词词云图是利用Python中的一些库和模块来实现的。首先,我们需要安装和导入一些相关的库,比如jieba用于中文分词,wordcloud用于生成词云图,matplotlib用于显示词云图。 具体操作步骤如下: 1. 安装所需库:在命令行中输入以下命令安装所需库。 ``` pip install jieba pip install wordcloud pip install matplotlib ``` 2. 导入所需库:在Python脚本中导入所需库。 ```python import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt ``` 3. 准备文本数据:将需要生成词云图的文本保存在一个字符串中。 ```python text = "我爱中国,我喜欢学习编程,Python是一门很有用的编程语言。" ``` 4. 中文分词:使用jieba库对文本进行中文分词。 ```python words = jieba.lcut(text) ``` 5. 统计词频:统计每个词出现的次数。 ```python word_counts = {} for word in words: if len(word) > 1: # 过滤掉单个字符 word_counts[word] = word_counts.get(word, 0) + 1 ``` 6. 生成词云图:使用WordCloud库生成词云图。 ```python wordcloud = WordCloud(font_path="SimHei.ttf", width=800, height=400).generate_from_frequencies(word_counts) ``` 7. 显示词云图:使用matplotlib库显示生成的词云图。 ```python plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ``` 以上就是用Python生成关键词词云图的基本步骤,通过逐步操作可以得到一个简单的关键词词云图。当然,还可以根据自己的需求进行一些参数调整,如字体、颜色、形状等,以生成更加个性化的词云图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李桥桉

支持一下作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值