Python零基础入门学习22:常用第三方库之wordcloud词云库

:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。

本文阅读时间约为4分钟

本文介绍如何使用Python制作词云。

词云的概念

“词云”,就是通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出。词云图过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

制作词云前的准备

Python制作词云要用到第三方库wordcloud和imageio。它们的安装方法依然是命令行输入conda install <第三方库名> 或 pip install <第三方库名>。

关于第三方库的安装,更多详情请移步至:Python零基础入门学习20:常用第三方库之PyInstaller库

wordcloud库的使用

wordcloud库把词云当作一个WordCloud对象。(注意字母的大小写)

wordcloud.WordCloud()代表一个文本对应的词云。其功能是根据文本中词语出现的频率等参数绘制词云。绘制词云的形状、尺寸和颜色都可以设定。

wordcloud库常用方法

以WordCloud对象为基础。
配置参数、加载文本、输出文件。

w = wordcloud.WordCloud()

w.generate(txt)——向WordCloud对象w中加载文本txt。

w.generate("Python and WordCloud")

w.to_file(filename)——将词云输出为图像,.png或.jpg格式。

w.to_file('outfile.png')

wordcloud库常用方法

  • 步骤1:配置对象参数。
  • 步骤2:加载词云文本。
  • 步骤3:输出词云文件。
import wordcloud
c = wordcloud.WordCloud()
c.generate("wordcloud by Python")
c.to_file("pywordcloud.png")

以上代码运行成功后,会生成一个本地的图片,图片与源程序在同一个文件夹之内。

关于词云生成的图片

图片宽度默认为width = 400,height = 200。

词云图片是以空格分隔单词的。统计单词出现的次数,高频率的词显示比较大,低频率的词显示比较小。统计单词出现次数并过滤。词云图片会过滤掉过很短的单词,比如1-2个字母的。

词云图片的显示配置

w = wordcloud.WordCloud(<参数>)

width——指定词云对象生成的图片的宽度,默认为400像素。

height——指定词云对象生成的图片的高度,默认为200像素。

w = wordcloud.WordCloud(width = 600, height = 800)

min_font_size——指定词云中字体的最小字号,默认4号。
w = wordcloud.WordCloud(min_font_size = 10)

max_font_size——指定词云中字体的最大字号,根据高度自动调节。
w = wordcloud.WordCloud(max_font_size = 20)

font_step——指定词云中字体字号的步进间隔,默认为1。

w = wordcloud.WordCloud(font_step = 2)

font_path——指定字体文件的路径,默认None。

w = wordcloud.WordCloud(font_path = "msyh.ttc")

max_words——指定词云显示的最大单词数量,默认200。

w = wordcloud.WordCloud(max_words = 20)

stop_words——指定词云的排除列表,即不显示的单词列表。

w = wordcloud.WordCloud(stop_words = {"Python"}) # 不显示"Python"这个词

mask——指定词云形状,默认为长方形,需要引用imread()函数。

from imageio import imread
mk = imread("pic.png")
w = wordcloud.WordCloud(mask = mk)

background_color——指定词云图片的背景颜色,默认为黑色。

w = wordcloud.WordCloud(background_color = "white")

下面是一个修改词云显示的例子:

import wordcloud
txt = "life is short, you need python"
w = wordcloud.WordCloud(background_color = "white")
w.generate(txt)
w.to_file("pycloud.png")
中文词云实例

以朱自清的文章《背影》中的一段为例,展示词云的制作。

import wordcloud
import jieba
txt = """
我说道:“爸爸,你走吧。”他往车外看了看,说:“我买几个橘子去。你就在此地,不要走动。”我看那边月台的栅栏外有几个卖东西的等着顾客。走到那边月台,须穿过铁道,须跳下去又爬上去。父亲是一个胖子,走过去自然要费事些。我本来要去的,他不肯,只好让他去。我看见他戴着黑布小帽,穿着黑布大马褂,深青布棉袍,蹒跚地走到铁道边,慢慢探身下去,尚不大难。可是他穿过铁道,要爬上那边月台,就不容易了。他用两手攀着上面,两脚再向上缩;他肥胖的身子向左微倾,显出努力的样子。这时我看见他的背影,我的泪很快地流下来了。我赶紧拭干了泪。怕他看见,也怕别人看见。我再向外看时,他已抱了朱红的橘子往回走了。过铁道时,他先将橘子散放在地上,自己慢慢爬下,再抱起橘子走。到这边时,我赶紧去搀他。他和我走到车上,将橘子一股脑儿放在我的皮大衣上。于是扑扑衣上的泥土,心里很轻松似的。过一会儿说:“我走了,到那边来信!”我望着他走出去。他走了几步,回过头看见我,说:“进去吧,里边没人。”等他的背影混入来来往往的人里,再找不着了,我便进来坐下,我的眼泪又来了。
"""
w = wordcloud.WordCloud(width = 1000, font_path = "msyh.ttc", height = 700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pywcloud.png")

制作出来的词云图片如下:

pywcloud.png

To be continued.

你可能感兴趣的:(Python零基础入门学习22:常用第三方库之wordcloud词云库)