基于Python使用词云图

Theevilspirit

发布日期: 2019-04-21 10:18:25 浏览量: 504
评分:
star star star star star star star star star_border star_border
*转载请注明来自write-bug.com

1 引言

词语图,也叫文字云,是对文本出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者一下就可以知道文章的主旨。

2 模块准备

  1. import jieba # 分词模块
  2. import matplotlib.pyplot as plt # 画图模块
  3. from wordcloud import WordCloud # 文字云模块
  4. from scipy.misc import imread # 处理图像的函数,用于读取并处理背景图片

3 实现的思路

准备一份需要分析的文本材料,这里选用的是 19 年两会政府工作报告,首先用 jieba 模块对文本材料进行分词处理(即识别出一个个有意义的词语),然后对处理后的材料使用WordCloud 文字云模块生成相应的词云图片即可of course,你也可以选择一张背景图片,以此为背景生成特定的云图。

4 代码实现

  1. def wordcloud():
  2. """
  3. 背景图片为自定义的一个矩阵
  4. :return: 词云图
  5. """
  6. # 读取词源文件 二进制的形式
  7. with open("./govreport.txt", "rb") as f:
  8. t = f.read() # 保存为str类型
  9. ls = jieba.lcut(t) # 进行分词
  10. txt = " ".join(ls) # 把分词用空格连起来
  11. # 设置词云的参数
  12. w = WordCloud(
  13. font_path="msyh.ttc", # 设置字体
  14. width=1000, # 设置输出的图片宽度
  15. height=700, # 设置输出的图片的高度
  16. background_color="white", # 设置输出图片的背景色
  17. )
  18. w.generate(txt) # 生成词云
  19. w.to_file("./wordColud.png") # 将图片保存
  20. return None
  21. def wordcloud2():
  22. """
  23. 用指定的图片生成词云图
  24. :return: 词云图
  25. """
  26. # 词源的文本文件
  27. wf = "./govreport.txt"
  28. word_content = open(wf, "r", encoding="utf-8").read().replace("\n", "")
  29. # 设置背景图片
  30. img_file = "./map.jpg"
  31. # 解析背景图片
  32. mask_img = imread(img_file)
  33. # 进行分词
  34. word_cut = jieba.lcut(word_content)
  35. # 把分词用空格连起来
  36. word_cut_join = " ".join(word_cut)
  37. # 设置词云参数
  38. wc = WordCloud(
  39. font_path="SIMYOU.TTF", # 设置字体
  40. max_words=2000, # 允许最大的词汇量
  41. max_font_size=90, # 设置最大号字体的大小
  42. mask=mask_img, # 设置使用的背景图片,这个参数不为空时,width和height会被忽略
  43. background_color="white", # 设置输出的图片背景色
  44. )
  45. # 生成词云
  46. wc.generate(word_cut_join)
  47. # 用于显示图片,需要配合plt.show()一起使用
  48. plt.imshow(wc)
  49. plt.axis("off") # 去掉坐标轴
  50. plt.savefig("./wordcloudWithMap.png")
  51. plt.show()
  52. return None

5 效果展示

不带背景图片的词云图

带有中国地图的词云图

上传的附件

发送私信

不要靠提高嗓门获取自己的存在感,那样只是虚张声势

15
文章数
17
评论数
最近文章
eject