How to generate a word cloud in Python

不言
Release: 2018-06-02 14:40:28
Original
3179 people have browsed it

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:

##According to the rendering The analysis is quite accurate. The protagonist in the novel is "Cheng Li", so he appears the most. There are two modes in the picture, one is the default mode, and the other is to add your own picture as the background. Now I will take you to learn how to generate a word cloud!

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.whl
Copy after login

After 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()
Copy after login

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()
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template