wordcloud 入门
时间:2019-08-24
本文章向大家介绍wordcloud 入门,主要包括wordcloud 入门使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
wordcloud 安装
pip安装
1 python3.6 -m pip install wordcloud -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
conda安装
1 conda install -c conda-forge wordcloud
快速生成词云
from wordcloud import WordCloud, STOPWORDS # # sample_text_path = "../data/constitution.txt" # # # 读取文本 # text = open(sample_text_path).read() # # # 生成词云实例,generate对text分词 # word_cloud = WordCloud().generate(text) # # # 展示生成的图片 # # 使用matplotlib # import matplotlib.pyplot as plt # plt.imshow(word_cloud, interpolation='bilinear') # plt.axis("off") # plt.show() # # # max_font_size 调低最大字体 # word_cloud = WordCloud(max_font_size=40).generate(text) # plt.figure() # plt.imshow(word_cloud, interpolation='bilinear') # plt.axis('off') # plt.show() # # # width,height,margin可以设置图片属性 # # font_path参数来设置字体集 # # background_color参数为设置背景颜色,默认颜色为黑色 # # # 保存图片 # word_cloud.to_file('./test.png')
效果:
利用背景图片生成词云,设置停用词词集
1 from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator 2 from PIL import Image 3 import numpy as np 4 import matplotlib.pyplot as plt 5 6 sample_text_path = "../data/alice.txt" 7 sample_image_path = '../data/alice_mask.png' 8 9 # 读取文本 10 text = open(sample_text_path).read() 11 12 # 读取 mask image 13 alice_mask = np.array(Image.open(sample_image_path)) 14 15 stop_words = set(STOPWORDS) 16 stop_words.add('said') 17 18 19 word_cloud = WordCloud(background_color='white', 20 max_words=2000, 21 mask=alice_mask, 22 stopwords=stop_words, 23 contour_width=3, 24 contour_color='steelblue').generate(text) 25 # word_cloud.to_file('./alice/png') 26 27 28 plt.imshow(word_cloud, interpolation='bilinear') 29 30 31 plt.axis('off') 32 plt.figure() 33 plt.show()
效果:
自定义字体颜色
1 from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator 2 from PIL import Image 3 import numpy as np 4 import matplotlib.pyplot as plt 5 6 sample_text_path = "../data/alice.txt" 7 sample_image_path = '../data/alice_mask.png' 8 9 # 读取文本 10 text = open(sample_text_path).read() 11 12 # 读取 mask image 13 alice_mask = np.array(Image.open(sample_image_path)) 14 15 stop_words = set(STOPWORDS) 16 stop_words.add('said') 17 18 19 word_cloud = WordCloud(background_color='white', 20 max_words=2000, 21 mask=alice_mask, 22 stopwords=stop_words, 23 contour_width=3, 24 contour_color='steelblue').generate(text) 25 # word_cloud.to_file('./alice/png') 26 27 #方法一:单独列 28 image_colors_byImg = ImageColorGenerator(alice_mask) 29 30 plt.imshow(word_cloud, interpolation='bilinear') 31 32 #方法,加到imshow中 33 plt.imshow(word_cloud.recolor(image_colors_byImg), interpolation='bilinear') 34 35 plt.axis('off') 36 plt.figure() 37 plt.show()
会报错 NotImplementedError: Gray-scale images TODO, 方法是换过一张图片
参照:https://blog.csdn.net/heyuexianzi/article/details/76851377
增加中文分词处理中文文本
使用jeiba
1 import jieba 2 3 # The function for processing text with Jieba 4 def jieba_processing_txt(text): 5 for word in userdict_list: 6 jieba.add_word(word) 7 8 mywordlist = [] 9 seg_list = jieba.cut(text, cut_all=False) 10 liststr = "/ ".join(seg_list) 11 12 with open(stopwords_path, encoding='utf-8') as f_stop: 13 f_stop_text = f_stop.read() 14 f_stop_seg_list = f_stop_text.splitlines() 15 16 for myword in liststr.split('/'): 17 if not (myword.strip() in f_stop_seg_list) and len(myword.strip()) > 1: 18 mywordlist.append(myword) 19 return ' '.join(mywordlist)
参考文档:
https://github.com/amueller/word_cloud/tree/master/examples
原文地址:https://www.cnblogs.com/huangm1314/p/11334567.html
- laravel+react+webpack+babel+gulp的配置
- OpenvSwitch系列之浅析main函数
- 没有公式如何看懂EM算法?
- Google用来处理海量文本去重的simhash算法原理及实现
- Open vSwitch系列之openflow版本兼容
- R预设配色系统及自定义色板
- SDN实战团分享(十二):Service Function Chain
- Open vSwitch系列之数据结构解析深入分析ofpbuf
- 前端自动化测试探索
- OpenStack Neutron之持续测试
- 决策树算法之----C4.5
- 趣味理解朴素贝叶斯
- 碎片化 | 第七阶段-11-小明的故事之集群、负载、并发-视频
- 碎片化 | 第五阶段-05-需求变更如何处理-视频
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 傅里叶级数理论详讲&实例应用
- R语言入门之点图和条形图
- Zabbix MTR 链路质量检测 主备链路监控
- R语言入门之t检验(t test)
- R语言入门之饼图
- 加速Spark编译
- 自定义方便kubectl中pods的管理
- R语言入门之切尾均值(trimmed mean)与绝对中位差(median absolute deviation,mad)
- 盘一盘 Python 特别篇 20 - SciPy 稀疏矩阵
- Spark 3.0.0-SNAPSHOT Access Kerberized HDFS
- Spark Nightly Builds
- R语言入门之基本统计量
- K8S 生态周报| Istio 已修复导致 Pod 崩溃的 bug
- Spark Kubernetes 的源码分析系列 - submit
- 如何交互可视化 Roam Research 局部笔记网络?