本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴”;
在数据可视化领域,词云图是一种直观而富有艺术感的表现形式,能够清晰地展示文本中词语的频率和重要性。本文将详细记录如何借助 CodeBuddy 这款 AI 编程助手,从零开始实现一个支持中文的词云图生成工具。我们将通过一系列提问与优化,逐步完善代码,最终得到一个功能完备的词云图应用。
整个开发过程分为以下几个步骤:
首先,我向 CodeBuddy 提出了明确的需求:
我需要一个 py 的词云图功能代码,请给我一份完整的代码在当前目录下
CodeBuddy 迅速给出了详细的实现代码:
这段代码包含了词云图实现的核心功能,但我们还需要准备输入数据才能运行。
查看代码后,我发现需要一个名为 text.txt
的文本文件作为词云的数据来源,于是我继续向 CodeBuddy 提问:
给我一份
text.txt
的完整内容,方便我进行测试
CodeBuddy 提供了示例文本内容:
有了代码和数据,我们可以开始第一次运行测试了。
将代码和文本文件放入同一目录后运行,得到了以下结果:
很明显,词云图中的中文字符无法正常显示,全部变成了方块。这是因为缺少中文字体支持。我再次向 CodeBuddy 寻求帮助:
生成的词云图中文无法识别是以方块展示的,请修复
CodeBuddy 立即给出了解决方案:
根据提示,我下载了一个中文字体文件(字体家AI造字春风.ttf)并放入项目目录,再次运行代码。
添加中文字体后,词云图完美呈现:
可以看到,中文词语清晰可辨,词云图整体美观大方,完全达到了我们的预期效果。
下面是最终优化后的完整代码,我添加了详细的注释说明每个部分的功能:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import os
import jieba # 中文分词库
from collections import Counter # 词频统计
# 文件路径配置
input_file = 'text.txt' # 输入文本文件
output_file = 'wordcloud.png' # 输出图片文件
font_path = '字体家AI造字春风.ttf' # 中文字体文件
# 检查字体文件是否存在
if not os.path.exists(font_path):
print(f"警告:未找到中文字体文件 {font_path}")
print("请下载字体家AI造字春风.ttf字体文件并放在当前目录")
print("或修改代码中的font_path变量为你的中文字体路径")
font_path = None # 尝试使用系统默认字体
# 检查输入文件
if not os.path.exists(input_file):
print(f"错误:当前目录下找不到 {input_file} 文件")
print("请确保有一个名为 text.txt 的文本文件在当前目录下")
exit()
# 读取文本内容
try:
with open(input_file, 'r', encoding='utf-8') as file:
text = file.read()
except Exception as e:
print(f"读取文件时出错: {e}")
exit()
# 中文分词处理函数
def chinese_text_segment(text):
# 使用jieba进行中文分词
seg_list = jieba.cut(text)
# 过滤掉单个字符和空白(保留多字词语)
words = [word for word in seg_list if len(word.strip()) > 1]
# 统计词频
word_counts = Counter(words)
return word_counts
# 创建词云对象(自定义参数)
wordcloud = WordCloud(
font_path=font_path, # 中文字体路径(关键参数)
width=800, # 宽度
height=600, # 高度
background_color='white', # 背景色
max_words=200, # 最大词数
max_font_size=150, # 最大字体大小
random_state=42, # 随机种子(保证每次生成结果一致)
collocations=False, # 是否包含两个词的搭配
stopwords=None, # 停用词列表(可自定义)
prefer_horizontal=0.9, # 水平显示比例
margin=2, # 边距
scale=2 # 缩放比例(提高清晰度)
)
# 生成词云
try:
# 对中文文本进行分词和词频统计
word_counts = chinese_text_segment(text)
# 根据词频生成词云
wordcloud.generate_from_frequencies(word_counts)
except Exception as e:
print(f"生成词云时出错: {e}")
exit()
# 显示词云
plt.figure(figsize=(10, 8)) # 设置图像大小
plt.imshow(wordcloud, interpolation='bilinear') # 显示词云
plt.axis('off') # 关闭坐标轴
# 保存词云图
try:
wordcloud.to_file(output_file)
print(f"词云图已成功保存为 {output_file}")
except Exception as e:
print(f"保存词云图时出错: {e}")
# 显示图像
plt.show()
font_path
参数指定中文字体,解决中文显示问题如果你想进一步增强这个词云图工具,可以考虑以下扩展:
通过这次实践,我们可以看到 CodeBuddy 在编程辅助方面的强大能力。从最初的代码生成到问题诊断再到解决方案提供,CodeBuddy 全程给予了精准的指导。整个开发过程中,我们只需要提出明确的问题,就能得到有效的解答,大大提高了开发效率。
特别值得一提的是,CodeBuddy 不仅提供了基础功能实现,还考虑到了异常处理、参数优化等细节问题,使得最终代码具有较高的健壮性和可用性。这种"一站式"的编程辅助体验,对于快速实现功能原型、学习新技术都有极大帮助。
通过这个简单的词云图项目,我们不仅学习了 Python 数据可视化的相关知识,也体验了 AI 编程助手如何改变传统的编程方式,让编程变得更加高效和有趣。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有