词云
时间:2019-02-20
本文章向大家介绍词云,主要包括词云使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
需要下载:
jieba(结巴):切割中文的模块;
wordcloud;
pillow:python3中专门用来处理图像的模块;
numpy;
matplotlib;
import re
import jieba
from PIL import Image
from wordcloud import wordcloud
import numpy as np
# 中文词云
def gen_wordcloud(text, filename):
# 1). 强调分割中有问题的词;
jieba.suggest_freq(('微博'), True)
jieba.suggest_freq(('热搜'), True)
# 2). 难点:如何切割中文---jieba, lcut
result = jieba.lcut(text)
print(result)
# 绘制词云;
# 3). 打开图片,获取图片的数据信息;
imgObj = Image.open('./doc/wordcloud.jpg')
img_mask = np.array(imgObj)
# print(img_mask)
# 4). 创建词云对象,设置属性;
wcObj = wordcloud.WordCloud(
mask = img_mask, # 数据如何填充到图片
background_color="snow", # 北京颜色
font_path="/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc", # 如果是中文, 指定字体库(fc-list :lang=zh)
min_font_size=5, # 图片中最小的字体大小
max_font_size=50, # 图片中最小的字体大小
width=1000, # 图片宽度
height=1000, # 高
)
# 5). 生成图片;
# 词云绘制时,默认之处理字符串类型,怎么分隔每个单词? 必须以逗号分隔符分割;
wcObj.generate(",".join(result))
wcObj.to_file(filename)
if __name__ == '__main__':
text = "马云曾公开表态称对钱没兴趣称其从来没碰过钱上了微博热搜"
filename = 'doc/wcObj.png'
gen_wordcloud(text, filename)
# 英文词云
# 1). 切割和处理英文字符
data = []
with open('/tmp/passwd') as f:
for line in f:
result1 = re.split(r'\s|:|/', line)
# 如果item存在数据并且不是空格或者数字,则继续进行处理;
result2 = [item for item in result1 if not re.findall(r'\s+|\d+', item) and item]
# print(result2)
data.extend(result2)
# 2). 打开图片, 获取图片的数据信息;
imgObj = Image.open('./doc/wordcloud.jpg')
img_mask = np.array(imgObj)
# print(img_mask)
# 3). 创建词云对象, 设置属性
wcObj = wordcloud.WordCloud(
mask = img_mask,
background_color="snow",
min_font_size=5,
max_font_size=50,
width=1000,
height=1000,
)
# 4). 生成图片;
# 词云绘制时, 默认之处理字符串类型, 怎么分隔每个单词? 必须以逗号分隔符分割
wcObj.generate(",".join(data))
wcObj.to_file('doc/wcObj.png')
- 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 数组属性和方法
- React-Redux 100行代码简易版探究原理。
- Ansible-免密登录与主机清单Inventory
- 安装Ambari和HDP
- React中引入Vue3的@vue/reactivity 实现响应式状态管理
- Ansible Ad-Hoc与常用模块
- Ansible Playbook 初识
- Ansible Playbook 变量与 register 详解
- 初探 Spark ML 第一部分
- Ansible Facts 变量详解 添加用户账号Ansible 配置清单Inventory
- Ansible playbook 编程
- 前端工程师自检清单73答
- Ansible playbook Vault 加密
- MySQL主从复制
- Ansible Jinja2 模板使用
- 自动化运维工具Ansible之Tests测验详解