"""Masked wordcloud================Using a mask you can generate wordclouds in arbitrary shapes."""from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud, STOPWORDS''' 這裡我想去掉資料中的“回複”這個詞,因為它屬於雜質,直接去掉會報編碼錯誤,用# -*- coding: UTF-8 -*-不能解決,於是找到這個方法,改變預設的編碼方式,並不太懂什麼意思'''import sysreload(sys)sys.setdefaultencoding('utf-8')# Read the whole text.#text = open(path.join(d, 'alice.txt')).read()text=open('fzw.txt').read()# read the mask image# taken from# http://www.stencilry.org/stencils/movies/alice%20in%20wonderland/255fk.jpgalice_mask = np.array(Image.open("alice_mask.png"))#這裡添加想要的形狀,用png圖片#stopwords = set(STOPWORDS)#stopwords.add("said")'''background_color="white"'''wc = WordCloud( background_color="white",max_words=2000, mask=alice_mask, font_path="minisong.ttf",max_font_size=40,scale=0.8) #mask參數指定詞雲形狀# generate word cloud# generate word cloudmytext=" ".join(jieba.cut(text))mytext=mytext.replace('回複',' ')wc.generate(mytext)# store to filewc.to_file("alice.png")# showplt.imshow(wc, interpolation='bilinear')plt.axis("off")#plt.figure()#plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')#plt.axis("off")plt.show()# The pil way (if you don't have matplotlib)# image = wordcloud.to_image()# image.show()