from matplotlib import pyplot as plt
from wordcloud import WordCloud
import jieba
from PIL import Image
import numpy as np
txt =open('我的家乡.txt','r', encoding='utf-8').read()
excludes ={"这里","英国","平方公里","作为","海囚","同时","政府","设立","专区","地区","批准","之一","11","设县","民国","成为","10","行政","县属","部分"}
words = jieba.lcut(txt)
counts ={}for word in words:iflen(word)==1:continueelif word =="厦门岛"or word =="厦门市":
rword ="厦门"elif word =="国家":
rword ="中国"elif word =="同安县":
rword ="同安"elif word =="日光":
rword ="日光岩"else:
rword = word
counts[rword]= counts.get(rword,0)+1for word in excludes:del counts[word]
items =list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
a =[]
text =''for i inrange(25):
word, count = items[i]print("{0:<10}{1:>5}".format(word, count))
a.append(word)
text += word +" "
bg = np.array(Image.open('m.png'))
wdc = WordCloud(font_path=r'C:\Windows\Fonts\simfang.ttf',
width=1600, height=900,
background_color='white',
mask=bg,
max_words=200,
stopwords=excludes,
repeat=True).generate(text)
plt.imshow(wdc)
plt.axis("off")
plt.show()
wdc.to_file("词云图.png")