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:
if len(word) == 1:
continue
elif word == "厦门岛" or word == "厦门市":
rword = "厦门"
elif word == "国家":
rword = "中国"
elif word == "同安县":
rword = "同安"
elif word == "日光":
rword = "日光岩"
else:
rword = word
counts[rword] = counts.get(rword, 0) + 1
for word in excludes:
del counts[word]
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
a = []
text = ''
for i in range(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")
world cloud实现分词词图
最新推荐文章于 2024-06-09 11:01:50 发布