资讯专栏INFORMATION COLUMN

Python如何生成词云(详解)

Juven / 2279人阅读

摘要:前言今天教大家用模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果图效果图一效果图二根据效果图分析的还是比较准确的,小说中的主人公就是程理,所以出现次数最多。

前言

今天教大家用wrodcloud模块来生成词云,我读取了一篇小说并生成了词云,先看一下效果图:

效果图一:

效果图二:

根据效果图分析的还是比较准确的,小说中的主人公就是“程理”,所以出现次数最多。图中有两种模式,一种是默认的模式,另一种是自己添加图片作为背景。下面我就带大家一起来学习怎样去生成词云!

wordcloud的安装

对于新人来说安装wordcloud模块就是一大关,我们一般都是通过Pycharm或者PIP安装的,但是在安装wordcloud时会提示错误,如下:

我的解决方法是直接访问下面的网址,根据你的电脑和py版本下载对应的whl文件

https://www.lfd.uci.edu/~gohl...

下载完成后,把whl文件放在pip路径下,输入下面的代码,记住代码的whl文件名一定是适合你的文件名,我只是举例:

pip install wordcloud-1.4.1-cp36-cp36m-win32.whl

运行后会显示安装成功

wordcloud的简单用法

wordcloud的基本方法,看源码如下:

各个参数大家应该一看就明白,另外wordcloud还有几个其他方法,比如fit_words,generate(text),to_file(filename)等等都是非常好理解的。

wordcloud生成词云

效果图一的代码:

from wordcloud import WordCloud
import matplotlib.pyplot as plt  #绘制图像的模块
import  jieba                    #jieba分词

path_txt="C://Users/Administrator/Desktop/all.txt"
f = open(path_txt,"r",encoding="UTF-8").read()

# 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(f))

wordcloud = WordCloud(
   #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
   font_path="C:/Windows/Fonts/simfang.ttf",
   #设置了背景,宽高
   background_color="white",width=1000,height=880).generate(cut_text)

plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()

运行后:

效果图二,给词云加上图片背景,代码如下:

from PIL import Image
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy as np
import  jieba
def GetWordCloud():
   path_txt = "C://Users/Administrator/Desktop/all.txt"
   path_img = "C://Users/Administrator/Desktop/timg.jpg"
   f = open(path_txt, "r", encoding="UTF-8").read()
   background_image = np.array(Image.open(path_img))
   # 结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云,感兴趣的朋友可以去查一下,有多种分词模式
   #Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
   cut_text = " ".join(jieba.cut(f))

   wordcloud = WordCloud(
       # 设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
       font_path="C:/Windows/Fonts/simfang.ttf",
       background_color="white",
       # mask参数=图片背景,必须要写上,另外有mask参数再设定宽高是无效的
       mask=background_image).generate(cut_text)
   # 生成颜色值
   image_colors = ImageColorGenerator(background_image)
   # 下面代码表示显示图片
   plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
   plt.axis("off")
   plt.show()

if __name__ == "__main__":
   GetWordCloud()

运行后:

如果有不懂的朋友可以直接在公众号上加我的微信,希望对大家有所帮助!
大家可以关注我的微信公众号:「秦子帅」一个有质量、有态度的公众号!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41806.html

相关文章

  • Python pyecharts如何绘制云图呢?下面就给大家详解解答

      Python pyecharts作为常用的数据可视化软件,能够清晰的将海量的数据,去做一个拆分,要是更直观的去查看数据图表的话,就需要去制作云图了?那么,怎么制作云图呢?下面就给大家详细的做个解答。  词云图  什么是词云图,相信大家肯定不会感到陌生,一本书统计里面出现的词频,然后可视化展示,让读者快速的了解这个主题纲要,这就是词云的直接效果。  词云图系列模板  固定模式词云图  修改一些参...

    89542767 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • Python生成歌词词云

    摘要:上面是生成词云的方法封装,还有一些其他方法根据词频生成词云根据文本生成词云根据词频生成词云根据文本生成词云将长文本分词并去除屏蔽词此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的对现有输出重新着色。 对于数据展示这一块有时候会用到词云,python中提供的wordcloud模块可以很灵活的完成生成词云除了使用python提供的wordcloud模块以为还有在线的生成方式ht...

    junbaor 评论0 收藏0
  • python 生成18年写过的博客词云

    摘要:处理文件最终得到的字符串得到所有的文本之后,使用结巴分词,处理成单个的词语。 文章链接:https://mp.weixin.qq.com/s/NmJjTEADV6zKdT--2DXq9Q 回看18年,最有成就的就是有了自己的 博客网站,坚持记录,写文章,累计写了36篇了,从一开始的难以下手,到现在成为一种习惯,虽然每次写都会一字一句斟酌,但是每次看到产出,内心还是开心的,享受这样的过...

    xi4oh4o 评论0 收藏0
  • Python wordcloud库学习小结

    摘要:库常规方法方法描述例子向对象中加载文本将词云输出为图像文件,或格式应用实例配置对象参数加载词云文本输出词云文件分隔以空格分隔单词统计单词出现次数并过滤字体根据统计配置字号布局颜色环境尺寸配置对象参数参数参数描述例子指定词云对象生成图片的宽度 wordcloud库常规方法 w = wordcloud.WordCloud() 方法 描述 例子 w.generate(txt) 向w...

    Jokcy 评论0 收藏0

发表评论

0条评论

Juven

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<