首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用python写一个生成词云的程序

我们经常在网上冲浪时候看到这样的图:

这种由汉字出现频率多少组成的图片叫做词云图,那么这样的图片是怎么生成的呢?这里就要用到wordcloud模块了。wordcloud模块是一个 Python 库,用于生成词云。词云是一种可视化形式,其中文本中的单词按照频率和重要性排列并呈现为不同大小和颜色的单词云。wordcloud模块提供了许多选项和参数,可用于自定义词云的外观和生成方式。我们使用该模块来生成漂亮的词云,以便更好地理解文本数据。

首先在终端下载模块:pip install numpy wordcloud mathplotlib openpyxl

下面是程序源代码,各行注释已列出:

import numpy as np # numpy数据处理库

import wordcloud # 词云库

from PIL import Image # 图像处理库,用于读取背景图片

import matplotlib.pyplot as plt # 图像展示库,以便在notebook中显示图片

from openpyxl import load_workbook #读取词频Excel文件

import os #获取词频Excel文件路径

#将存好的Excel词频表读取成字典

path='词频' #文件所在文件夹

files = [path+"\\"+i for i in os.listdir(path)] #获取文件夹下的文件名,并拼接完整路径

maskImage = np.array(Image.open('background.png')) # 定义词频背景图

for file in files:

#将词频Excel文件读取为字典

wb = load_workbook(file)

ws = wb.active

wordFreq = {}

for i in range(2,ws.max_row+1):

word = ws["A"+str(i)].value

freq = ws["B"+str(i)].value

wordFreq[word] = freq

#定义词云样式

wc = wordcloud.WordCloud(

font_path='C:/Windows/Fonts/simhei.ttf', # 设置字体

mask= maskImage, # 设置背景图

max_words=500, # 最多显示词数

max_font_size=100) # 字号最大值

#生成词云图

wc.generate_from_frequencies(wordFreq) # 从字典生成词云

#保存图片到指定文件夹

wc.to_file("词云图\\{}.png".format(file.split("\\")[1][:4]))

#在notebook中显示词云图

plt.imshow(wc) # 显示词云

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

plt.show() # 显示图像

有条件的同学在IDE里实验一下吧。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OONeXfhpryrAmDiwQrZZOoHA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券