欢迎访问宙启技术站
智能推送

用Python实现中文词云的生成和展示

发布时间:2023-12-18 12:57:33

中文词云是一种常用的数据可视化方式,可以通过图形化地展示文本中出现频率较高的词汇。在Python中,可以使用第三方库WordCloud来生成和展示中文词云。

首先,需要安装WordCloud库。可以通过在命令行中运行以下命令来安装WordCloud库:

pip install wordcloud

安装完成后,可以通过以下代码来生成中文词云:

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

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

# 使用jieba库进行中文分词
seg_list = jieba.cut(text, cut_all=False)
seg_text = ' '.join(seg_list)

# 生成词云
wordcloud = WordCloud(font_path='simhei.ttf', 
                      background_color='white', 
                      width=800, 
                      height=400).generate(seg_text)

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

代码解析:

1. 首先,使用jieba库对文本进行中文分词,将分词结果连接成一个字符串seg_text

2. 使用WordCloud类创建一个词云对象,通过指定字体文件、背景颜色、宽度和高度等参数来配置词云的样式。

3. 调用词云对象的generate()方法生成词云图像。

4. 使用matplotlib库的imshow()函数将词云图像展示出来。

5. 使用axis('off')去掉图像的坐标轴。

6. 使用show()方法显示图像。

在上述代码中,需要注意的是,要正确显示中文字符,需要指定中文字体文件的路径。在示例中,我们使用了simhei.ttf这个中文字体文件。

为了演示中文词云的生成和展示,我们可以使用以下文本作为输入:

我有一只小毛驴
我从来也不骑
有一天我心血来潮
骑着去赶集
我手里拿着小皮鞭
我心里真得意
不知怎么哗啦啦啦
摔了一身泥

运行上述代码后,就可以得到一个中文词云图像,图中的词云根据文本中出现的频率来调整词语的大小和显示位置。

除了基本的生成和展示之外,WordCloud库还提供了更多的参数和功能,例如可以通过设置max_font_size参数来限制词语的最大字体大小,可以设置mask参数来指定词云的形状等。

通过使用WordCloud库,我们可以方便地生成和展示中文词云,从而更加直观地了解文本中的关键词汇。