1 from wordcloud import WordCloud,ImageColorGenerator 2 import matplotlib.pyplot as plt 3 import jieba 4 from PIL import Image 5 import numpy as np 6 7 8 # # 1、设置一个文本,显示的文本 9 # # 10 # with open("./元尊.txt", "r", encoding="utf-8") as f: 11 # content = f.read() 12 # # print(content) 13 # # 2、对文本进行分词处理--- 14 # # 借助jieba 进行精确模式分词 15 # seg = jieba.cut(content, cut_all=False) 16 # content = ",".join(seg) 17 # print("分词之后的结果:\n", content) 18 # # 3、生成一个词云对象 19 # wc = WordCloud( 20 # # 设置字体 21 # font_path="./simhei.ttf", 22 # # 设置背景图的大小 23 # # mask 参数---可以手动自己指定背景图,一旦设置背景图,那么就不需要设置背景图的宽和高 24 # width=200, 25 # height=100, 26 # # 设置背景颜色 27 # background_color="white" 28 # ) 29 # # 4、借助词云对象来生成词云文本 30 # wc_text = wc.generate(content) 31 # # 5、显示 32 # # 显示样式 33 # # interpolation ---显示方式 34 # plt.imshow(wc_text,interpolation="bilinear") 35 # # 关闭坐标显示 36 # plt.axis("off") 37 # # 显示 38 # plt.show() 39 40 # 1、生成词云 41 def get_wordcloud(): 42 """ 43 生成词云 44 :return: 45 """ 46 # 1、加载文本 47 with open("./元尊.txt", "r", encoding="utf-8") as f: 48 content = f.read() 49 # print(content) 50 # 2、文本分词 51 # # 借助jieba 进行精确模式分词 52 seg = jieba.cut(content, cut_all=False) 53 content = ",".join(seg) 54 print("分词之后的结果:\n", content) 55 # 3、加载背景图 56 background_image = np.array(Image.open("./1.png")) 57 # 4、生成词云对象 58 wc = WordCloud( 59 # 设置字体 60 font_path="./simhei.ttf", 61 # 设置背景图的大小 62 # mask 参数---可以手动自己指定背景图,一旦设置背景图,那么就不需要设置背景图的宽和高 63 mask=background_image, 64 # 设置背景颜色 65 background_color="white" 66 ) 67 # 5、生词词云文本 68 wc_text = wc.generate(content) 69 70 # 6、提取背景图的颜色,来设置词云文本的颜色 71 color = ImageColorGenerator(background_image) 72 73 # 7、重新设置 词云文本的颜色 74 wc.recolor(color_func=color) 75 76 77 # 8、显示 78 # 显示样式 79 # interpolation ---显示方式 80 plt.imshow(wc_text,interpolation="bilinear") 81 # 关闭坐标显示 82 plt.axis("off") 83 # 显示 84 plt.show() 85 86 get_wordcloud()