【Python】实验-词云2

以色彩照片为参考来产生词云

首先,先导入一系列的模块:

>>>from os import path #从os模块导入path用于查找文件路径
>>>from PIL import Image #导入照片模块
>>>import numpy as np #
>>>from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
#导入词云,其中ImageColorGenerator是从照片中取色作为参考的关键
>>>import matplotlib.pyplot as plt #导入坐标轴

其次,进行txt文件的读取,照片的读取,对输出照片的参数设置

>>>d = path.dirname(__file__)
#此处的__file__保存在py文件中可以直接执行,但在Python环境中,需要换成 '.'
>>>text = open(path.join(d, 'alice.txt')).read() #读取txt文件
>>>alice_coloring = np.array(Image.open(path.join(d, "alice_color.png"))) #打开照片并读取
>>>stopwords = set(STOPWORDS)
>>>stopwords.add("said") #以上两步应该为设定取词休止处
>>>wc = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,stopwords=stopwords, max_font_size=40, random_state=42) #代码对输出的词云照片基本参数进行了设置,包括照片模板、最大字数、字体颜色、休止词、最大字体、随机度

然后,关键性时刻

>>>wc.generate(text) #从文本中取词
>>>image_colors = ImageColorGenerator(alice_coloring) #从照片中取色

最终,展示成果

>>>plt.imshow(wc, interpolation="bilinear")
#将词云图wc置入坐标轴中,interpolation指插入
>>>plt.axis("off") #取消坐标轴
>>>plt.figure() #?

【Python】实验-词云2_第1张图片
0

>>>plt.imshow(wc.recolor(color_func=image_colors),interpolation="bilinear") #这一个对词云重新着色,对应的是照片原色
>>>plt.axis("off")
>>>plt.figure()

【Python】实验-词云2_第2张图片
1

展示原照片
>>>plt.imshow(alice_coloring, cmap=plt.cm.gray, interpolation="bilinear") #展示原照片
>>>plt.axis("off")
>>>plt.show()
【Python】实验-词云2_第3张图片
2

你可能感兴趣的:(【Python】实验-词云2)