一直想学一下如何用python画词云图,觉得很好玩,本文就写一下我自己的一些尝试。

1、提前准备

一般准备以下四样就可以啦。

第一,电脑安装python,我装的是3.6。

第二,安装第三方库jieba和wordcloud,一个是用于分词,一个用于生成词云图。python安装这两个第三方库的方法也比较简单,在cmd里面输入如下的命令行即可:

pip install jieba

pip install wordcloud

第三,准备一份需要分词的文档,我这里随便找了一份关于电影评价的文档,记得要保存成txt文档。如下所示。

image.png

第四,需要准备一张你喜欢的图片,用于生成词云图的形状,这里要注意,最好选一个白底的图片,轮库比较明显的,我选了下面这张小熊的图片。

xiong.jpg

一切准备就绪,就可以打开python写代码生成词云图啦。

2、书写生成词云图代码

2.1 首先把相关的包加载进来

from os import path

from wordcloud import WordCloud

import matplotlib.pyplot as plt

from scipy.misc import imread

import jieba.analyse

像matplotlib和scipy都是python常用的包,如果没有安装好可以自行百度一下如何安装。

2.2 加载准备好的文档和图片

把movie.txt和xiong.jpg放在当前目录下。

CURRENT_PATH = path.dirname(path.abspath(__file__))

TEXT_FILE = path.join(CURRENT_PATH, 'movie.txt')

IMG_FILE = path.join(CURRENT_PATH, 'xiong.jpg')

2.3 定义一个分词的函数

def get_frequencies():

with open(TEXT_FILE, 'r', encoding="GB2312") as f:

text = f.read()

words = jieba.analyse.extract_tags(text, topK=200, withWeight=True)

# words is list, change it to dict

return dict(words)

这个函数用jieba对文档进行分词,topK是可以返回的最大的分词数。这里有一个坑,我是从网上下载的movie.txt,要用notepad打开看一下编码方式,我的文档的编码方式为GB2312,则在encoding后面写GB2312,如果编码方式为utf-8,把GB2312改成utf-8即可。

2.4定义一个制作词云图的函数

ef make_wordcloud(words):

# get mask

my_mask = imread(IMG_FILE)

# set wordcloud

my_wordcloud = WordCloud(

font_path="msyh.ttc",

background_color="white",

max_words=1000,

max_font_size=50,

width=1500,

height=1500,

mask=my_mask,

contour_width=2,

contour_color='steelblue'

)

# words must be dict

my_wordcloud.generate_from_frequencies(words)

return my_wordcloud

先用 imread函数把事先准备好的图片读取出来,然后用WordCloud函数生成词云图,中间要输入很多参数,可以自己调节,比如 background_color=”white”,这句代码意思是设置词云图的背景颜色为白色,如果你想背景颜色为黑色,只要把white改成black即可。contour_width=2代表轮廓宽度为2,contour_color=’steelblue’代表轮廓颜色为蓝色等。这些参数都可以自行调整。

2.5 定义显示词云图和保存词云图的函数

def show_it(wordcloud):

# show it

plt.imshow(wordcloud)

plt.axis('off')

plt.show()

def save_it(wordcloud, name):

filename = '{}.jpg'.format(name)

wordcloud.to_file(path.join(CURRENT_PATH, filename))

图片保存在当前目录下。

2.6 主函数运行程序

if __name__ == '__main__':

words = get_frequencies()

wordcloud = make_wordcloud(words)

show_it(wordcloud)

save_it(wordcloud, 'my_wordcloud')

3、结果展示

运行代码之后生成的词云图如下所示。

my_wordcloud.jpg

从生成的词云图中可以看出有一些词在文档中出现次数比较高,所以字相对比较大,比如高尔夫球,阿甘正传,努力,鲁迅等。

前后对比一下,有没有觉得很可爱,可以自己动手试试哦。

image.png

作者:额_e8fa

python词云图代码示例 无jieba_【词云图】如何用python的第三方库jieba和wordcloud画词云图...相关推荐

  1. python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图

    一直想学一下如何用python画词云图,觉得很好玩,本文就写一下我自己的一些尝试. 1.提前准备 一般准备以下四样就可以啦. 第一,电脑安装python,我装的是3.6. 第二,安装第三方库jieba ...

  2. Python第三方库jieba以及wordcloud学习笔记

    jieba库 jieba库是具有强大分词功能的第三方库.在中文文本分词中具有较好的应用表现.工作机制为 利用一个中文词库,确定汉字之间的关联概率 汉字间概率大的组成词组,形成分词结果 除了系统给定分词 ...

  3. python词云图代码示例 无jieba_Python爬虫入门-jieba库制作词云图

    1.钱当然很重要,这我不是不知道:我一天何尝不为钱而受熬苦!可是,我又觉得,人活这一辈子,还应该有些另外的什么才对-- 2.我认为,每个人都有一个觉醒期,但觉醒的早晚决定个人的命运. 3.在这个世界上 ...

  4. python如何更新包_python如何更新包 python更新包代码示例

    python如何更新包?本篇文章小编给大家分享一下python更新包代码示例,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Python安装新包,pip是 ...

  5. python敏感词过滤代码简单_大型企业都在用,Python实现敏感词过滤

    在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去 ...

  6. 6.Python常用第三方库—jieba库的使用(中文分词词库)

    目录 一.jieba库介绍 二.jieba库常用指令说明 1.  精确模式 2.  全模式 3.  搜索引擎模式 4.   增加新词 三.jieba库的安装 四.jieba库实例代码演示 一.jieb ...

  7. python爬虫小说代码示例-中文编程,用python编写小说网站爬虫

    原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...

  8. 好玩的python代码示例-这可能是最好玩的python GUI入门实例!

    image.png 简单的说,GUI编程就是给程序加上图形化界面. python的脚本开发简单,有时候只需几行代码就能实现丰富的功能,而且python本身是跨平台的,所以深受程序员的喜爱. 如果给程序 ...

  9. python入门代码示例-这可能是最好玩的python GUI入门实例!

    image.png 简单的说,GUI编程就是给程序加上图形化界面. python的脚本开发简单,有时候只需几行代码就能实现丰富的功能,而且python本身是跨平台的,所以深受程序员的喜爱. 如果给程序 ...

最新文章

  1. ImageNet Classification with Deep Convolutional Nerual Networks(AlexNet)
  2. 【Android开发】范例4-猜猜宝石放在哪个箱子里
  3. ios相机黑边_黑边很碍眼很难看 苹果iPhone6黑边有什么用呢?
  4. 设计模式笔记-命令模式
  5. 20190703 日子
  6. Unity 连接MySql数据库
  7. 终于搞定了cxgrid的多行表头(转终于搞定了cxgrid的多行表头 )
  8. noip模拟赛 SAC E#1 - 一道中档题 Factorial
  9. PR软件下载Adobe Premiere Pro CC 2019安装教程
  10. 2022年计算机软件水平考试软件设计师(中级)练习题及答案
  11. 【思维导图】旅行物品清单
  12. 【译】软件设计中的KISS原则
  13. 南方CASS工程应用--道路断面土方计算实例教程
  14. 数字图像处理 调色板图像
  15. 塞班系统更新服务器,塞班系统又更新了,又更新了,仿佛回到十年前!
  16. 线性代数 06 克莱默法则
  17. requests和xml的结合应用
  18. 计算机应用专业顶岗实习计划,计算机学生顶岗实习计划(网络版)
  19. 传输层---TCP协议
  20. MOOC哈工大2020C语言程序设计精髓练兵区编程题第九周

热门文章

  1. CMOS与BIOS的区别
  2. Maven最佳实践 划分模块 配置多模块项目 pom modules
  3. Android开发二 什么是Android
  4. elk 第二篇 , 为elk加入redis, 替换下beats(个人感觉不错2)
  5. elasticsearch 索引存储深入详解
  6. fiddler和wireshark工具介绍及对比 - [测试技术知识]
  7. Go案例说明defer panic recover
  8. linux提示光标下无字符串,vim复制、粘贴、删除、撤销、移动光标(linux)
  9. HTTP常用头部信息
  10. netty实现mysql协议_基于Netty模拟解析Binlog