wordcloud库是优秀的词云展示第三方库,可以将一段文本变成词云(词云以词语为基本单位,更加直观和艺术的展示文本)

cmd命令行 pip install wordcloud

示例如下:

wordcloud库把词云当作一个WordCloud对象(具体词云,有大写有小写)

wordcloud.WordCloud()代表一个文本对应的词云

可以根据文本中词语出现的频率等参数绘制词云

绘制词云的形状,尺寸和颜色都可以设定

wordcloud库常规方法:

w=wordcloud.WordCloud()

以WordCloud对象为基础(wordcloud就是一个程序版的词云)

配置参数,加载文本,输出文件

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

代码示例如下所示:

w.generate("Python and wordcloud")

w.to_file(filename) 将词云输出为图像文件  .png或.jpg格式

代码示例如下:

w.to_file("love.png")

词云绘制:

步骤一:配置对象参数

步骤二:加载词云文本

步骤三:输出词云文件

代码示例如下:

import wordcloud
w=wordcloud.WordCloud()
w.generate("Python and wordcloud")
w.to_file("love.png")

运行界面如图:

相对于一个词云,它是一个程序逻辑,然后我们向它输入一段文本,那么它的程序逻辑中就会根据文本绘制出一个词云图像。

“ Python and wordcloud”

1.分隔:wordcloud以空格为分隔符号,来将文本分隔成单词

2.统计:单词出现次数(如果出现次数多,字体大;出现次数少的,字体小,同时将很短的单词(1~2个字符)过滤掉)

3.字体:根据统计配置字号。

4.布局:颜色环境尺寸

配置对象参数:w=wordcloud.WordCloud(<参数>)

1.width,指定词云对象生成图片的宽度,默认400.

代码示例如下:

import wordcloud
w=wordcloud.WordCloud(width=600)
w.generate("Python and wordcloud")
w.to_file("width.png")

运行界面如下:

 2.height,指定词云对象生成图片的高度,默认200.

代码示例如下:

import wordcloud
w=wordcloud.WordCloud(height=600)
w.generate("Python and wordcloud")
w.to_file("height.png")

运行界面如下:

 3.min_font.size,指定词云中字体的最小字号,默认为4号。

 代码示例如下:

import wordcloud
w=wordcloud.WordCloud(min_font_size=15)
w.generate("Python and wordcloud")
w.to_file("min_font.size.png")

运行界面如下:

4. max_font.size,指定词云中字体的最大字号,根据高度自动调节。

代码示例如下:

import wordcloud
w=wordcloud.WordCloud(max_font_size=30)
w.generate("Python and wordcloud")
w.to_file("max_font.size.png")

运行界面如下:

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

代码示例如下:

import wordcloud
w=wordcloud.WordCloud(font_step=3)
w.generate("Python and wordcloud")
w.to_file("font_step.png")

运行界面如下:

 6.font_path,指定词云中字体文件的路径,默认为None.

示例代码如下:

import wordcloud
import jieba
import imageio
mk=imageio.imread("五角星.jpg")
txt="程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。" \
    "程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式," \
    "亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及" \
    "使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者"
w=wordcloud.WordCloud(background_color="white",font_path="msyh.ttc",height=600,width=800,mask=mk)   #此字体为微软雅黑字体
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("中文文本.png")

运行界面如图:

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

示例代码如下:

import wordcloud
w=wordcloud.WordCloud(max_words=30)
w.generate("Python and wordcloud")
w.to_file("max_words.png")

运行界面如下:

8.stopwords,指定词云的排除词列表,即不显示的单词列表。

代码示例如下: 

import wordcloud
w=wordcloud.WordCloud(stopwords={"python"})
w.generate("Python and wordcloud")
w.to_file("stopwords.png")

运行界面如下:

9.mask,指定词云形状,默认为长方形,需要引用imread()函数。由于python已经将imread函数封装在imageio模块里面,所以我们需要在cmd里面输入命令pip install imageio,进行安装imageio这个库。当再使用from scipy.mics import imread时会出现错误,而且from scipy.mics import imread这个方法已经被弃用。

代码示例如下:

import wordcloud
import jieba
import imageio
mk=imageio.imread("五角星.jpg")
txt="程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。" \
    "程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式," \
    "亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及" \
    "使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者"
w=wordcloud.WordCloud(background_color="white",font_path="msyh.ttc",height=600,width=800,mask=mk)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("中文文本.png")

运行界面如下:

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

代码示例如下:

import wordcloud
w=wordcloud.WordCloud(background_color="red")
w.generate("Python and wordcloud")
w.to_file("background_color.png")

运行界面如下:

 下面以英文文本和中文文本进行示例:

示例一:英文文本:

示例代码如下:

import wordcloud
txt="life is short,you need python"
w=wordcloud.WordCloud(background_color="blue")
w.generate(txt)
w.to_file("英文文本.png")

运行界面如下:

 示例二:中文文本:

示例代码如下:

import wordcloud
import jieba
txt="程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。" \
    "程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式," \
    "亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及" \
    "使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者"
w=wordcloud.WordCloud(background_color="blue",font_path="msyh.ttc",height=600,width=800)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("中文文本.png")

运行界面如下:

中文需要先分词并组成空格分隔字符串

 jieba.lcut(s) 精确模式,返回一个列表类型的分词结果

w.generate(" ".join(jieba.lcut(txt)))即为用空格的方法去分隔jieba库精确模式下形成的字符串。

来源:蕾峰

物联沃分享整理
物联沃-IOTWORD物联网 » wordcloud库详解

发表评论