You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
import jieba # 分词
|
|
from wordcloud import WordCloud # 词云图相关
|
|
import matplotlib.pyplot as plt
|
|
import matplotlib.colors as colors # 处理图片相关内容
|
|
import numpy
|
|
from PIL import Image,ImageFont
|
|
|
|
# 生成词云方法(指定背景图)
|
|
def get_wcloud():
|
|
# 读取小说内容
|
|
with open(r'例子.txt', 'r', encoding='utf-8') as txt:
|
|
data = txt.read()
|
|
# 加载词典
|
|
jieba.load_userdict('stopwords.txt')
|
|
# 也可以添加自定义词典
|
|
words_list = jieba.lcut(data)
|
|
# 用空格分隔词语
|
|
tokenstr = ' '.join(words_list)
|
|
# 打开背景图片
|
|
color_mask = numpy.array(Image.open('鲸鱼.jpg'))
|
|
# 自定义文字颜色
|
|
colormaps = colors.ListedColormap(['#FF0000','#FF7F50','#FFE4C4'])
|
|
# 生成词云(默认样式)
|
|
# mywc1 = WordCloud().generate(tokenstr)
|
|
# 生成词云(自定义样式)
|
|
mywc1 = WordCloud(
|
|
mask=color_mask, # 指定背景图形状
|
|
colormap=colormaps, # 指定颜色
|
|
font_path = r'/msyh.ttc', # 指定字体
|
|
background_color='white', # 指定背景颜色,默认黑色
|
|
width=800, # 指定宽度
|
|
height=600 # 指定高度
|
|
).generate(tokenstr)
|
|
# 显示词云
|
|
plt.imshow(mywc1)
|
|
plt.axis('off')
|
|
plt.show()
|
|
mywc1.to_file('2.png') # 生成词云图片
|
|
|
|
if __name__ == '__main__':
|
|
get_wcloud()
|