搜狐媒体平台-搜狐网站>IT

他一出家就成中国最帅和尚

眼眸深邃、轮廓分明、身材颀长,活生生的一幅画。

大学副教授与在押服刑女结婚

这在监狱民警看来,那么令人不可思议。

【编程课堂】词云 wordcloud

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。举报

  本周为大家带来炫酷好玩的 wordcloud词云构造库。

  使用 wordcloud可以做出这样的图片:

  

  还可以做出这样的:

  

  接下来,我们来学习如何制作属于自己的词云图。

  本来想说一句,安装过程不表,直接进入正题,可是在编程教室的QQ群和微信群中都有人遇到 wordcloud安装失败的问题。

  所以在此简单提一下安装过程:

  当然最直接的是 pip

  pip install wordcloud

  但很多同学会发现直接 pip 是会报错的,所以这里提供第二种安装方式:

  下载 whl 手动安装包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

  静静等待页面加载完成,然后选择适合自己 Pythonwordcloud版本,最后运行以下命令。filepath 替换为你的安装文件完整路径。

  pip install filepathwordcloud-1.2.1-cp35-cp35m-win_amd64.whl

  wordcloud 在安装过程中会自动安装其依赖的库。

  基本的用法

  我们读入一本英文小说,取其中的词汇生成一张词云图

  # 导入 wordcloud 模块和 matplotlib 模块

  fromwordcloud importWordCloud

  importmatplotlib.pyplot asplt

  # 读入一个txt文件

  text = open( 'Jane Eyre.txt', 'r').read()

  # 生成词云

  wordcloud = WordCloud().generate(text)

  # 显示词云图片

  plt.imshow(wordcloud)plt.axis( 'off')plt.show()

  # 保存图片

  wordcloud.to_file( 'test.jpg')

  结果如图所示

  

  运行脚本之后就可以看到生成的图片了,是不是很简单。本文主要讲 wordcloud。代码中涉及到的 matplotlib就不做更详细解释。

  除了直接读入文本生成词云,也可以使用字典格式的词频作为输入

  # 读入一组词频字典文件

  text_dict = {

  'you': 2993,

  'and': 6625,

  'in': 2767,

  'was': 2525,

  'the': 7845,}wordcloud = WordCloud().generate_from_frequencies(text_dict)

  还可以将词云填充到指定的形状之中。为达到填充指定形状的效果,需要使用 png 格式的图片。

  # 读入图片

  fromscipy.misc importimreadbg_pic = imread( 'Anne_Hathaway.png')

  # 配置词云参数

  wc = WordCloud(

  # 设置字体font_path = 'BeaverScratches.ttf',

  # 设置背景色background_color= 'white',

  #允许最大词汇max_words= 200,

  # 词云形状mask=bg_pic,

  # 最大号字体max_font_size= 100,)

  # 生成词云

  wc.generate(text)

  # 保存图片

  wc.to_file( 'word.jpg')

  最后的效果如下

  

  还可以结合 jieba分词,实现用中文填充的词云图(如果不通过分词,无法直接生成正确的中文词云)。使用中文填充时一定得指定中文的字体,否则会出现乱码。如果报错找不到字体,就复制一个中文字体文件放在代码目录下。

  #-*- coding:utf-8 -*-

  fromscipy.misc importimread

  importmatplotlib.pyplot asplt

  fromwordcloud importWordCloud

  importjieba

  fromcollections importCounter

  # 读入 西游记 txt 文件,windows 下过滤编码错误

  text = open( '西游记.txt',encoding= 'utf-8',errors= 'ignore').read()

  # 使用 jieba 分词

  text_jieba = list(jieba.cut(text))

  # 使用 counter 做词频统计,选取出现频率前 100 的词汇

  c = Counter(text_jieba)common_c = c.most_common( 100)

  # 读入图片

  bg_pic = imread( 'Anne_Hathaway.png')

  # 配置词云参数

  wc = WordCloud(

  # 设置字体font_path = '李旭科书法1.4.ttf',

  # 设置背景色background_color= 'white',

  # 允许最大词汇max_words= 200,

  # 词云形状mask=bg_pic,

  # 最大号字体max_font_size= 100,)

  # 生成词云

  wc.generate_from_frequencies(dict(common_c))

  # 生成图片并显示

  plt.figure()plt.imshow(wc)plt.axis( 'off')plt.show()

  # 保存图片

  wc.to_file( 'anne.jpg')

  最终的结果:

  

  关于 wordcloud的一些基本的常用的方法就在这里。想了解更多特性的同学,可以访问官方网站: https://amueller.github.io/word_cloud/

  近期文章推荐阅读:

  给伸手党的福利:Python 新手引导

  只学2个月编程能写出什么代码?他们表示:You can you code!

  如何用100行Python代码做出魔性声控游戏“八分音符酱”

  数据分析:当赵雷唱民谣时他唱些什么?

  一行代码扫出“敬业福”

  我扒了杜蕾斯的微博

  Python 爬虫爬取美剧网站

  今天,你抢到票了吗?

  爆款游戏《贪吃蛇大作战》的 Python 实现

欢迎加入

Crossin的编程教室

crossincode.com

新手入门QQ群:553518572

微信请加 crossin11 留言入群(新手/进阶)

请把我们分享给身边爱学习的小伙伴 :)

  点击左下角“阅读原文”,查看更多学习资源

mt.sohu.com true Crossin的编程教室mp https://mt.sohu.com/20170317/n483701790.shtml report 8903 本周为大家带来炫酷好玩的wordcloud词云构造库。使用wordcloud可以做出这样的图片:还可以做出这样的:接下来,我们来学习如何制作属于自己的词云图。本
阅读(0) 举报
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。

热门关注

搜生活

搜生活+关注

搜狐公众平台官方账号

MAGIC杨梦晶

MAGIC杨梦晶+关注

生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者

搜狐教育

搜狐教育+关注

搜狐网教育频道官方账号

星吧GEO

星吧GEO+关注

全球最大华文占星网站-专业研究星座命理及测算服务机构

热门图片

  • 热点视频
  • 影视剧
  • 综艺
  • 原创

我来说两句排行榜

客服热线:86-10-58511234

客服邮箱:kf@vip.sohu.com