用wordcloud搞词云,大数据词云,自定义图像

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 用wordcloud搞词云,大数据词云,自定义图像

准备工作:

pip install jieba #分词用的
pip install wordcloud #主角
pip install imageio #读取文件用的

View Code

接下来讲解一下这个包下面主要分为4大类:

"""
类    功能
WordCloud([font_path, width, height, …])    生成和绘制词云对象
ImageColorGenerator(image[, default_color])    基于图片的色彩
random_color_func([word, font_size, …])    随机生成颜色
get_single_color_func(color)创建一个颜色函数,它返回一个色调和饱和度
"""

View Code

接下来主角WordCloud 的参数方法:

1 """
 2 参数    详解
 3 font_path    词云图的字体路径(OTF或TTF格式)
 4 width    画布的宽度、默认为400,如果mask不为空时,设置为mask获取图片的大小
 5 height    画布的高度,默认为200,如果mask不为空时,设置为mask获取图片的大小
 6 prefer_horizontal    默认值0.9;当值<1时,遇到不合适的地方时,算法将词体自动旋转
 7 mask    默认为None;如果不为空,指定了画布的图形,则width和height值不生效,使用提供的图形的大小
 8 contour_width    如果mask不为空,并且contour_width>0,将描绘出mask获取图片的轮廓,值越大,轮廓的线越粗
 9 contour_color    使用Mask时,描绘图片轮廓的颜色
10 scale    图片生成后放大缩小时的分辨率
11 min_font_size    词云图显示的最小字体,默认为4
12 max_font_size    词云图显示的最大字体
13 max_words    词云显示的最大词数
14 font_step    字体步长
15 stopwords    不显示的词,如果没有设置,则使用默认的内置的STOPWORdS列表;如果使用generate_from_frequencies参数,则忽略
16 background_color    背景颜色
17 mode    默认为"RGB",当mode="RGBA"并且background_color为None时,将会显示透明背景
18 relative_scaling    字体大小与词频的关系,默认值为auto
19 color_func    默认为None,color_func=lambda *args, **kwargs:(255,0,0)词云的字体颜色将这设置为红色
20 regexp    使用正则切分,默认为r"\w[\w’]+",如果使用generate_from_frequencies则此参数不生效
21 collocations    是否包含两个词的搭配,默认为True,如果使用generate_from_frequencies则此参数不生效
22 colormap    设置颜色的参数,默认为"viridis",如果使用color_func参数,则此参数不生效
23 normalize_plurals    是否删除尾随的词,比如’s,如果使用generate_from_frequencies参数,则此参数不生效
24 repeat    是否重复词组直到设置的最大的词组数
25 include_numbers    是否包含数字,默认我False
26 min_word_length    最小数量的词,默认为0
27 collocation_threshold    默认为30,整体搭配的评分等级
28 """


View Code

主角下面有哪些方法呢?

1 """
 2 方法
 3 fit_words()    根据词频生成词云
 4 generate_from_frequencies()    根据词频生成词云
 5 generate()    根据文本生成词云
 6 generate_from_text()    根据文本生成词云
 7 process_text()    将长文本分词,并去除屏蔽词
 8 recolor()    对输出颜色重新着色
 9 to_array()    转换为numpy数组
10 to_file()    保存为图片文件
11 to_svg()    保存为SVG(可缩放矢量图形)
12  
13 """

View Code

实战例子1基本操作:


import wordcloud
font_path = "./fonts/华文琥珀.ttf"
# w = wordcloud.WordCloud(font_path=font_path,#字体
#                         width=100,#宽度
#                         height=100,#高度
#                         margin=10,#外边距
#                         background_color="black",#背景色
#                         # scale=100,#别设置这个,
#                         mode="RGBA",#假的,默认为RGB
#                         max_words=300,#最多显示几个词
#                         random_state=1,#指定了以后,所有的随机都会不变
#                         min_font_size=4,#最小字体大小
#                         include_numbers=False,#不会画数字
#                         min_word_length=0, #最小的高度
#                         collocation_threshold=30,#默认为30,整体搭配的评分等级
#                         )
# text = """
# Love is not a matter of counting the days. ...
# 2.With the wonder of your love, the sun above ...
# 3.Love is a fabric that nature wove and ...
# 4.First love is unforgettable all one's life. ...
# 5.In the very smallest cot there is room ...
# """
# w.generate(text)
# w.to_file('output1.png')

View Code

实战例子2自定义图形轮廓图:

# 生成带有mask的图片,你生不成图片是因为你的词汇量太少,词汇量越大,效果越好。
mask = np.array(Image.open("62.jpg"))
with open("text.txt","r")as f:
    text = f.read()
wordcloud = wordcloud.WordCloud(font_path=font_path, mask=mask, margin=1, random_state=1, background_color='white').generate(text)
wordcloud.to_file('wordcloud_mask.jpg')
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
3月前
|
消息中间件 分布式计算 大数据
大数据-113 Flink DataStreamAPI 程序输入源 自定义输入源 非并行源与并行源
大数据-113 Flink DataStreamAPI 程序输入源 自定义输入源 非并行源与并行源
63 0
|
3月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
87 5
|
3月前
|
分布式计算 监控 大数据
大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction
大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction
69 0
|
3月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
115 0
|
3月前
|
消息中间件 分布式计算 算法
大数据-67 Kafka 高级特性 分区 分配策略 Ranger、RoundRobin、Sticky、自定义分区器
大数据-67 Kafka 高级特性 分区 分配策略 Ranger、RoundRobin、Sticky、自定义分区器
63 3
|
3月前
|
消息中间件 缓存 分布式计算
大数据-59 Kafka 高级特性 消息发送03-自定义拦截器、整体原理剖析
大数据-59 Kafka 高级特性 消息发送03-自定义拦截器、整体原理剖析
45 2
|
3月前
|
消息中间件 存储 Java
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
71 3
|
3月前
|
消息中间件 存储 分布式计算
大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡
大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡
31 1
|
3月前
|
缓存 分布式计算 大数据
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(一)
73 0
|
3月前
|
分布式计算 算法 大数据
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(二)
大数据-90 Spark 集群 RDD 编程-高阶 RDD容错机制、RDD的分区、自定义分区器(Scala编写)、RDD创建方式(二)
69 0