Home >Backend Development >Python Tutorial >How to generate a word cloud in Python
This article mainly introduces how to generate word clouds in Python. It has a certain reference value. Now I share it with you. Friends in need can refer to it
Preface
Today I will teach you how to use the wrodcloud module to generate a word cloud. I read a novel and generated a word cloud. Let’s take a look at the rendering first:
Rendering 1 :
Rendering 2:
wordcloud installation
For newcomers, installing the wordcloud module is a big step. We usually install it through Pycharm or PIP. However, an error will be prompted when installing wordcloud, as follows: My solution is to directly access the following URL and download the corresponding whl file according to your computer and py version After the download is completed, put the whl file under the pip path and enter the following code. Remember that the whl file name of the code must be a file name that suits you. I am just giving an example. :pip install wordcloud-1.4.1-cp36-cp36m-win32.whlAfter running, it will show that the installation is successful
The simplicity of wordcloud Usage
The basic method of wordcloud, see the source code as follows: You should understand each parameter at a glance, and wordcloud also has Several other methods, such as fit_words, generate(text), to_file(filename), etc., are very easy to understand.wordcloud generates word cloud
Code of rendering 1:from wordcloud import WordCloud import matplotlib.pyplot as plt #绘制图像的模块 import jieba #jieba分词 path_txt='C://Users/Administrator/Desktop/all.txt' f = open(path_txt,'r',encoding='UTF-8').read() # 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云 cut_text = " ".join(jieba.cut(f)) wordcloud = WordCloud( #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的 font_path="C:/Windows/Fonts/simfang.ttf", #设置了背景,宽高 background_color="white",width=1000,height=880).generate(cut_text) plt.imshow(wordcloud, interpolation="bilinear") plt.axis("off") plt.show()
After running: Effect picture two, add a picture background to the word cloud, the code is as follows:
from PIL import Image from wordcloud import WordCloud, ImageColorGenerator import matplotlib.pyplot as plt import numpy as np import jieba def GetWordCloud(): path_txt = 'C://Users/Administrator/Desktop/all.txt' path_img = "C://Users/Administrator/Desktop/timg.jpg" f = open(path_txt, 'r', encoding='UTF-8').read() background_image = np.array(Image.open(path_img)) # 结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云,感兴趣的朋友可以去查一下,有多种分词模式 #Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。 cut_text = " ".join(jieba.cut(f)) wordcloud = WordCloud( # 设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的 font_path="C:/Windows/Fonts/simfang.ttf", background_color="white", # mask参数=图片背景,必须要写上,另外有mask参数再设定宽高是无效的 mask=background_image).generate(cut_text) # 生成颜色值 image_colors = ImageColorGenerator(background_image) # 下面代码表示显示图片 plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear") plt.axis("off") plt.show() if __name__ == '__main__': GetWordCloud()After running: Related recommendations:
How to generate random numbers in any range and with any precision in Python
The above is the detailed content of How to generate a word cloud in Python. For more information, please follow other related articles on the PHP Chinese website!