从零开始教你用Python做词云("零基础入门:手把手教你用Python制作词云")

原创
ithorizon 6个月前 (10-20) 阅读数 15 #后端开发

零基础入门:手把手教你用Python制作词云

一、引言

在数据分析和可视化领域,词云(Word Cloud)是一种非常流行且直观的展示文本数据的行为。通过词云,我们可以迅捷了解文本中哪些词汇出现频率较高,进而把握文本的主题和关键信息。本文将手把手教你使用Python制作词云,即使你是零基础,也能轻松掌握。

二、准备工作

在起初制作词云之前,我们需要准备以下工具和库:

  • Python环境(推荐使用Anaconda)
  • jieba分词库
  • wordcloud词云库
  • matplotlib绘图库

下面是安装所需库的命令:

pip install jieba

pip install wordcloud

pip install matplotlib

三、制作词云的基本步骤

下面我们将通过一个简洁的例子,来展示制作词云的基本步骤。

3.1 准备文本数据

首先,我们需要准备一段文本数据。这里以《三国演义》的开头为例:

text = "话说天下大势,分久必合,合久必分。周末自恃,秦并吞三国,一统天下。及至秦末,天下大乱,群雄并起,逐鹿中原。"

3.2 进行中文分词

由于词云需要统计词频,故而我们需要对文本进行中文分词。这里使用jieba分词库:

import jieba

words = jieba.lcut(text)

3.3 统计词频

接下来,我们需要统计词频。这里使用Python内置的collections库中的Counter类:

from collections import Counter

word_counts = Counter(words)

3.4 生成词云

现在我们可以使用wordcloud库来生成词云了。首先,我们需要导入wordcloud库,并设置词云的一些参数:

from wordcloud import WordCloud

import matplotlib.pyplot as plt

wordcloud = WordCloud(

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

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

width=800, height=600 # 设置画布大小

)

wordcloud.generate_from_frequencies(word_counts)

3.5 显示词云

最后,我们可以使用matplotlib库来显示生成的词云:

plt.imshow(wordcloud, interpolation='bilinear')

plt.axis('off') # 关闭坐标轴

plt.show()

四、自定义词云样式

wordcloud库提供了充足的参数,让我们可以自定义词云的样式。以下是一些常见的自定义设置:

4.1 设置颜色

我们可以通过设置color_func参数来自定义词云的颜色。例如,使用以下代码可以让不同频率的词显示不同的颜色:

def grey_color_func(word, font_size, position, orientation, random_state=None, **kwargs):

return "hsl(0, 0%%, %d%%)" % np.random.randint(60, 100)

wordcloud = WordCloud(

font_path='simhei.ttf',

background_color='white',

width=800,

height=600,

color_func=grey_color_func

)

wordcloud.generate_from_frequencies(word_counts)

plt.imshow(wordcloud, interpolation='bilinear')

plt.axis('off')

plt.show()

4.2 设置形状

我们可以通过设置mask参数来设置词云的形状。例如,以下代码将生成一个心形的词云:

from wordcloud import WordCloud

import numpy as np

from PIL import Image

import matplotlib.pyplot as plt

# 读取心形图片

heart_mask = np.array(Image.open('heart.png'))

wordcloud = WordCloud(

font_path='simhei.ttf',

background_color='white',

width=800,

height=600,

mask=heart_mask

)

wordcloud.generate_from_frequencies(word_counts)

plt.imshow(wordcloud, interpolation='bilinear')

plt.axis('off')

plt.show()

4.3 设置背景颜色

通过设置background_color参数,我们可以自定义词云的背景颜色。例如,以下代码将生成一个黑色背景的词云:

wordcloud = WordCloud(

font_path='simhei.ttf',

background_color='black',

width=800,

height=600

)

wordcloud.generate_from_frequencies(word_counts)

plt.imshow(wordcloud, interpolation='bilinear')

plt.axis('off')

plt.show()

五、总结

本文详细介绍了怎样使用Python制作词云,包括准备文本数据、中文分词、统计词频、生成词云和显示词云等步骤。此外,我们还介绍了怎样自定义词云的样式,包括颜色、形状和背景颜色等。通过这些内容,相信你已经掌握了制作词云的基本技能。在实际应用中,你可以依需求灵活调整参数,制作出更具个性化的词云。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门