将中文分词结果绘制词云或绘制以特定图片为背景的词云的方法(注释详细,欢迎批评指正)

    技术2023-12-15  86

    from os import path from scipy.misc import imread import matplotlib.pyplot as plt from wordcloud import WordCloud, ImageColorGenerator #绘制词云 def wordcloud_show(text): # 设置词云属性 wc = WordCloud(font_path='C:\Windows\Fonts\SIMYOU.TTF', # 设置字体为幼圆,路径“C:\Windows\Fonts|”是存放windows 7、10系统字体的目录文件 background_color="white", # 背景颜色 max_words=100, # 词云显示的最大词数 max_font_size=100, # 字体最大值 random_state=42,#设置随机值,random_state如果不设置或者为none,则每次生成是随机的。若两个以上设置为同一个值,则他们生成的都相同;若两个以上设置值均不同,则生成的不相同。 width=1000, height=860, margin=2,# 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存,margin为词语边缘距离 ) # 生成词云, 可以用generate输入全部文本(wordcloud对中文分词支持不好,建议启用中文分词),也可以我们计算好词频后使用generate_from_frequencies函数 wc.generate(text) plt.figure() # 绘制词云 #plt.show(myWordCloud) #没有实际显示,只有背景!!! plt.imshow(wc) plt.axis("off") plt.show() #保存为图片 wc.to_file('D:\\img\wordcloud_show.jpg') def wordcloud_show_img(seg): d = "" back_coloring_path =r'D:\img\fangzi.jpg' # 设置背景图片路径 back_coloring = imread(path.join(d, back_coloring_path))# 设置背景图片 # 设置词云属性 wc = WordCloud(font_path='C:\Windows\Fonts\SIMYOU.TTF', # 设置字体 background_color="white", # 背景颜色 max_words=100, # 词云显示的最大词数 mask=back_coloring, # 设置背景图片 max_font_size=100, # 字体最大值 random_state=42, width=1000, height=860, margin=2,# 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存,margin为词语边缘距离 ) # 生成词云, 可以用generate输入全部文本(wordcloud对中文分词支持不好,建议启用中文分词),也可以我们计算好词频后使用generate_from_frequencies函数 wc.generate(text) # wc.generate_from_frequencies(txt_freq) # txt_freq例子为[('词a', 100),('词b', 90),('词c', 80)] # 从背景图片生成颜色值 plt.figure() # 以下代码显示图片 plt.imshow(wc) plt.axis("off") plt.show() #保存为图片 wc.to_file('D:\\img\wordcloud_show_img.jpg') if __name__ == '__main__': #读取关键词所在文本 Rawdata = open('D:\\keyword.txt','r+',encoding='utf-8') text = Rawdata.read() #调用绘制词云 #wordcloud_show(text) #调用绘制图片的词云 wordcloud_show_img(text) #END Rawdata.close()
    Processed: 0.010, SQL: 9