wordcloud Python中的词云库

Python中的词云库是一个非常流行的文本可视化工具,可以将文本中的关键词以词云形式呈现。本篇文章将详细讲解Python中的词云库的使用和API以及代码注释。

  1. 安装词云库

安装词云库的方式很简单,只需要在命令行中使用pip命令即可。具体命令如下所示:

pip install wordcloud
  1. 导入词云库

导入词云库的方式也很简单,只需要在Python代码中添加下面这行代码即可:

from wordcloud import WordCloud

这样,我们就可以在后面的代码中使用词云库了。

  1. 构建词云

要构建词云,首先需要准备一个文本文件。这里我们使用一个名为example.txt的文本文件作为例子。文件内容如下所示:

Python is great
I love coding in Python
Python is awesome
I am a Python developer

接下来,我们需要读取这个文本文件,并使用词云库生成词云。代码如下所示:

# 导入必要的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 读取文本文件
with open('example.txt', 'r') as f:
    text = f.read()

# 生成词云
wordcloud = WordCloud().generate(text)

# 显示词云图像
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

代码解释:

  • 第2行:导入必要的库。
  • 第4行:使用with语句读取文本文件。with语句可以自动管理文件的打开和关闭,并且在with语句中打开的文件一旦使用结束,就会自动关闭。
  • 第8行:使用WordCloud类生成词云。这里使用默认参数构建WordCloud对象,因此生成的是一张简单的词云图。
  • 第11~13行:显示词云图像。使用plt.imshow()函数显示词云;使用plt.axis()函数和参数’off’隐藏坐标轴;使用plt.show()函数显示图像。
  1. 设定词云参数

WordCloud类有很多参数可以调整,以生成不同风格的词云。下面是一些常见的参数:

  • font_path:字体文件路径。
  • width:词云图像的宽度。
  • height:词云图像的高度。
  • background_color:词云图像的背景颜色。
  • mode:指定词云的排列方式。

下面是构建词云时使用一些参数的示例代码:

# 导入必要的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 读取文本文件
with open('example.txt', 'r') as f:
    text = f.read()

# 设定词云参数
params = {
    'font_path': 'font.ttf',
    'width': 800,
    'height': 600,
    'background_color': 'white',
    'mode': 'RGBA'
}

# 生成词云
wordcloud = WordCloud(**params).generate(text)

# 显示词云图像
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

代码解释:

  • 第8~13行:定义词云参数,存储在一个字典中。这里设定字体文件为当前目录下的font.ttf;词云图像的宽度为800像素,高度为600像素;词云的背景颜色为白色,排列方式采用RGBA模式。
  • 第16行:生成词云对象,通过词云参数传递给WordCloud类。
  • 第19~21行:同上。
  1. 词云形状

在词云图像中,我们可以使用自定义的形状来限制词云中词汇的分布。下面展示了如何使用一个心形的形状来生成词云。首先,我们需要用一个心形图片来生成形状。代码如下所示:

# 导入必要的库
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

# 读取图片并处理为灰度图像
image = Image.open('heart.png')
image = image.convert('L')
image = np.array(image)

# 显示图片
plt.imshow(image, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis('off')
plt.show()

代码解释:

  • 第2~6行:导入必要的库以及图片处理。
  • 第8行:使用Image类读取图片。
  • 第9行:将图片转换为灰度图像。
  • 第10行:将图像转换为Numpy数组。
  • 第13~15行:显示图片,使用plt.imshow()函数显示图片,使用参数cmap=plt.cm.gray指定为灰度图像;使用plt.axis()函数和参数’off’隐藏坐标轴;使用plt.show()函数显示图像。

在有了自定义形状图片之后,我们就可以使用WordCloud类的mask参数指定将要使用的形状图片。使用自定义形状的词云代码如下所示:

# 导入必要的库
from wordcloud import WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

# 读取文本文件
with open('example.txt', 'r') as f:
    text = f.read()

# 读取自定义形状图片
mask = np.array(Image.open('heart.png').convert('L'))

# 设定词云参数
params = {
    'font_path': 'font.ttf',
    'width': 800,
    'height': 600,
    'background_color': 'white',
    'mode': 'RGBA',
    'mask': mask
}

# 生成词云
wordcloud = WordCloud(**params).generate(text)

# 显示词云图像
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

代码解释:

  • 第2~9行:同前面的示例。
  • 第12~15行:使用Image类读取自定义形状图片,并转换为灰度图像和Numpy数组。
  • 第18~25行:同前面的示例。
  • 第28行:使用WordCloud类的mask参数指定自定义形状图片为词云形状。
  1. 结语

这篇文章介绍了Python中词云库的基本使用方法和常见API,以及使用注释的代码示例。当然,以上的示例代码仅是最基础的使用方式,更多高级用法需要大家自行去探索。希望这篇文章能够帮助初学者们快速上手使用词云库。

你可能感兴趣的:(pythonSet,python,开发语言)