用Python生成词云


词云是一种数据可视化技术,用于表示文本数据,其中每个单词的大小表示其出现的频率或重要性。 可以使用词云突出显示重要的文本数据点。 词云被广泛用于分析来自社交网络网站的数据。

为了在Python中生成词云,需要的模块是– matplotlib,pandas和wordcloud。 要安装这些软件包,请运行以下命令:

pip install matplotlib
pip install pandas
pip install wordcloud

代码1:字数

可以设置要在tagcloud上显示的最大单词数。 为此,请使用WordCloud()函数的max_words关键字参数。


# importing the necessery modules 
from wordcloud import WordCloud  
import matplotlib.pyplot as plt 
import csv



# file object is created 
file_ob = open(r"linuxboy.net.csv")



# reader object is created 
reader_ob = csv.reader(file_ob)



# contents of reader object is stored . 
# data is stored in list of list  format. 
reader_contents = list(reader_ob)



# empty string is declare 
text = ""



# iterating through list of rows 
for row in reader_contents : 

 #  iterating through words in the row 
 for word in row :



  # concatenate the words 
  text = text + " " + word



# show only 10 words in the wordcloud . 
wordcloud = WordCloud(width=480,  height=480, max_words=10).generate(text)



# plot the WordCloud image 
plt.figure() 
plt.imshow(wordcloud,  interpolation="bilinear") 
plt.axis("off") 
plt.margins(x=0, y=0)  
plt.show()

输出如下图:

用Python生成词云

代码2:删除一些单词

可以删除一些我们不想显示的词。 为此,请将这些单词传递给WordCloud()函数的停用词列表参数。


# importing the necessery modules 
from wordcloud import WordCloud  
import matplotlib.pyplot as plt 
import csv



# file object is created 
file_ob = open(r"linuxboy.net.csv")



# reader object is created 
reader_ob = csv.reader(file_ob)



# contents of reader object is stored . 
# data is stored in list of list  format. 
reader_contents = list(reader_ob)



# empty string is declare 
text = ""



# iterating through list of rows 
for row in reader_contents : 

 #  iterating through words in the row 
 for word in row :



  # concatenate the words 
  text = text + " " + word



# remove Python , Matplotlib , Geeks Words from WordCloud . 
wordcloud =  WordCloud(width=480, height=480, 
   stopwords=["Python",  "Matplotlib","Geeks"]).generate(text)



# plot the WordCloud image 
plt.figure() 
plt.imshow(wordcloud,  interpolation="bilinear") 
plt.axis("off") 
plt.margins(x=0, y=0)  
plt.show()

输出效果如下:

用Python生成词云

代码3:更改背景

我们可以更改wordcloud背景的颜色。 为此,请使用WordCloud()函数的background_color关键字参数。


# importing the necessery modules 
from wordcloud import WordCloud  
import matplotlib.pyplot as plt 
import csv



# file object is created 
file_ob = open(r"linuxboy.net.csv")



# reader object is created 
reader_ob = csv.reader(file_ob)



# contents of reader object is stored . 
# data is stored in list of list  format. 
reader_contents = list(reader_ob)



# empty string is declare 
text = ""



# iterating through list of rows 
for row in reader_contents : 

 #  iterating through words in the row 
 for word in row :



  # concatenate the words 
  text = text + " " + word



wordcloud = WordCloud(width=480, height=480,  background_color="pink").generate(text)



# plot the WordCloud image 
plt.figure() 
plt.imshow(wordcloud,  interpolation="bilinear") 
plt.axis("off") 
plt.margins(x=0, y=0)  
plt.show()

输出效果如下:

用Python生成词云

代码4:更改单词的颜色

我们可以使用WordCloud()函数的colormap关键字参数来更改单词的颜色。


# importing the necessery modules 
from wordcloud import WordCloud  
import matplotlib.pyplot as plt 
import csv



# file object is created 
file_ob = open(r"linuxboy.net.csv")



# reader object is created 
reader_ob = csv.reader(file_ob)



# contents of reader object is stored . 
# data is stored in list of list  format. 
reader_contents = list(reader_ob)



# empty string is declare 
text = ""



# iterating through list of rows 
for row in reader_contents : 

 #  iterating through words in the row 
 for word in row :



  # concatenate the words 
  text = text + " " + word



wordcloud = WordCloud(width=480, height=480,  colormap="Oranges_r").generate(text)



# plot the WordCloud image 
plt.figure() 
plt.imshow(wordcloud,  interpolation="bilinear") 
plt.axis("off") 
plt.margins(x=0, y=0)  
plt.show()

输出效果如下:

用Python生成词云

代码5:设置最大和最小字体

我们可以控制wordcloud的最小和最大字体大小。 为此,请使用WordCloud()函数的max_font_size和min_font_size关键字参数。


# importing the necessery modules 
from wordcloud import WordCloud  
import matplotlib.pyplot as plt 
import csv



# file object is created 
file_ob = open(r"linuxboy.net.csv")



# reader object is created 
reader_ob = csv.reader(file_ob)



# contents of reader object is stored . 
# data is stored in list of list  format. 
reader_contents = list(reader_ob)



# empty string is declare 
text = ""



# iterating through list of rows 
for row in reader_contents : 

 #  iterating through words in the row 
 for word in row :



  # concatenate the words 
  text = text + " " + word



wordcloud = WordCloud(width=480, height=480, max_font_size=20,  min_font_size=10).generate(text) 
plt.figure() 
plt.imshow(wordcloud,  interpolation="bilinear") 
plt.axis("off") 
plt.margins(x=0, y=0)  
plt.show()

用Python生成词云

OK,暂时先这样,中文乱码解决等请继续关注我们linuxboy的Python专题栏目,谢谢阅读。

https://www.linuxboy.net/topicnews.aspx?tid=17

linuxboy的RSS地址:https://www.linuxboy.net/rssFeed.aspx

本文永久更新链接地址:https://www.linuxboy.net/Linux/2019-12/161681.htm

相关内容

    暂无相关文章