参考链接:https://blog.csdn.net/eastmount/article/details/64438407
今天学习了下如何生成词云,看到以上链接,写的真不错,通俗易懂,把自己调试通的代码记录下来。
# -*- coding: utf-8 -*-
import jieba
import sys
import matplotlib.pyplot as plt
from wordcloud import WordCloud
#打开本体TXT文件
text = open('Word.txt','r',encoding = 'utf-8').read()
#print(type(text))
#结巴分词 cut_all=True 设置为全模式
wordlist = jieba.cut(text, cut_all = True)
#使用空格连接 进行中文分词
wl_space_split = " ".join(wordlist)
#print(wl_space_split)
#对分词后的文本生成词云
my_wordcloud = WordCloud().generate(wl_space_split)
#显示词云图
plt.imshow(my_wordcloud)
#是否显示x轴、y轴下标
plt.axis("off")
plt.show()
其中如果没有正常图片生成,需要修改下
其中msyn.ttf可以到网上找到下载。修改之后就不会有乱码了。
如果想生成自己想要的图片
代码实例如下:
# -*- coding: utf-8 -*-
from os import path
from imageio import imread
import jieba
import sys
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
# 打开本体TXT文件
text = open('Word.txt','r',encoding = 'utf-8').read()
# 结巴分词 cut_all=True 设置为全模式
wordlist = jieba.cut(text) #cut_all = True
# 使用空格连接 进行中文分词
wl_space_split = " ".join(wordlist)
#print(wl_space_split)
# 读取mask/color图片
#d = path.dirname(__file__)
#nana_coloring = imread(path.join(d, "sunflower.jpg"))
coloring = imread("fenxue.jpg")
# 对分词后的文本生成词云
my_wordcloud = WordCloud( background_color = 'white', # 设置背景颜色
mask = nana_coloring, # 设置背景图片
max_words = 2000, # 设置最大现实的字数
stopwords = STOPWORDS, # 设置停用词
max_font_size = 50, # 设置字体最大值
random_state = 30, # 设置有多少种随机生成状态,即有多少种配色方案
)
# generate word cloud
my_wordcloud.generate(wl_space_split)
# create coloring from image
image_colors = ImageColorGenerator(coloring)
# recolor wordcloud and show
my_wordcloud.recolor(color_func=image_colors)
plt.imshow(my_wordcloud) # 显示词云图
plt.axis("off") # 是否显示x轴、y轴下标
plt.show()
# save img
#my_wordcloud.to_file(path.join(d, "sunflower_world.jpg"))
my_wordcloud.to_file("sunflower_world.jpg")
生成的图片:
OK
我只是记录下,但是推荐大家看我上头推荐的链接地址,原作者写的很详细!
版权声明:本文为liuxiangke0210原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。