Python生成中文词云图

词云(word cloud),也称标签云,主要用于展示文本数据。把每个单词按照其重要性进行展示,主要通过字体和颜色进行区分。Python提供了wordcloud库,可以很容易实现词云图。“词云”看起来比较美观易理解,通常用于显示一篇文章中最重要的一些关键词。

安装wordcloud库

可以通过下面命令安装wordcloud库。

pip install wordcloud

wordcloud 库可以快速生成词云图。主要使用WordCloud() 函数,该函数包括一些列参数,可以调整生成词云图的样式。

加载数据

本文讲使用下面几段文字。

在大模型这条时下最热的赛道上,运营商的身影终于出现。

在刚刚过去的一个月里,三大电信运营商相继发布了专属AI大模型产品。其中,中国联通走在最前面,在6月末上海举行的世界移动通信大会上,中国联通率先推出图文大模型“鸿湖图文大模型1.0”。据中国联通方面介绍,这是首个面向运营商增值业务的大模型,该大模型目前拥有8亿训练参数和20亿训练参数两个版本,可以实现以文生图、视频剪辑、以图生图等功能。

随后,中国电信在2023世界人工智能大会期间,正式对外发布旗下大语言模型TeleChat。中国电信方面透露,以TeleChat为底座的教育版大模型TeleChat-E在全球大模型综合性考试评测榜单C-Eval上排名第七,前几名包括GP4、ChatGPT等知名大模型。

最后登场的中国移动在7月8日发布了“九天·海算”政务大模型和“九天·客服”大模型。其中,前者首创端到端政务服务体系,主要满足政府工作人员动态管理、公文写作等需求,后者则是针对人工客服场景,能够大幅提升传统人工客服的工作效率。

如此密集地于同期推出同领域产品,在反映三大运营商激烈竞争的同时,也凸显出国内运营商抢占生成式AI业务的急迫感。据《中国经营报》记者不完全统计,截至7月中旬,我国AI大模型发布数量已超过100个。对此,Omdia电信战略高级首席分析师杨光向记者表示,相比于国内诸多巨头厂商,运营商推出大模型的时间并不算早,近期集体入场,显示整个电信业对此业务的布局已近临界点。

可以设置变量并赋值:

text = """在大模型这条时下最热的赛道上,运营商的身影终于出现。
在刚刚过去的一个月里,三大电信运营商相继发布了专属AI大模型产品。其中,中国联通走在最前面,在6月末上海举行的世界移动通信大会上,中国联通率先推出图文大模型'鸿湖图文大模型1.0'。据中国联通方面介绍,这是首个面向运营商增值业务的大模型,该大模型目前拥有8亿训练参数和20亿训练参数两个版本,可以实现以文生图、视频剪辑、以图生图等功能。
随后,中国电信在2023世界人工智能大会期间,正式对外发布旗下大语言模型TeleChat。中国电信方面透露,以TeleChat为底座的教育版大模型TeleChat-E在全球大模型综合性考试评测榜单C-Eval上排名第七,前几名包括GP4、ChatGPT等知名大模型。
最后登场的中国移动在7月8日发布了'九天·海算'政务大模型和'九天·客服'大模型。其中,前者首创端到端政务服务体系,主要满足政府工作人员动态管理、公文写作等需求,后者则是针对人工客服场景,能够大幅提升传统人工客服的工作效率。
如此密集地于同期推出同领域产品,在反映三大运营商激烈竞争的同时,也凸显出国内运营商抢占生成式AI业务的急迫感。据《中国经营报》记者不完全统计,截至7月中旬,我国AI大模型发布数量已超过100个。对此,Omdia电信战略高级首席分析师杨光向记者表示,相比于国内诸多巨头厂商,运营商推出大模型的时间并不算早,近期集体入场,显示整个电信业对此业务的布局已近临界点。"""

如何需要载入更多数据,可以用其他方式。比如从文件加载:

with open("data.txt", "r") as file:
   text = file.read()

中文分词

这里使用jieba分词。它提供三种模式分词:

精确 jieba.cut(s) 无冗余,为默认方式;

全模式 jieba.lcut(s,cut_all =True) 有冗余;

探索模式 jieba.lcut_for_search(s) 有冗余。

words = jieba.cut(text, cut_all=False)
word_counts = ','.join(words)

生成词云

生成词云代码比较简单,主要参数包括,width,height 。由于我们的内容是中文,需要指定中文字体的路径。

mask_img = np.array(Image.open("data/mask.png"))
wordcloud = WordCloud(width=680, height=680,
                      font_path=r'C:\Windows\Fonts\simkai.ttf',
                      mask=mask_img).generate(word_counts)

plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.margins(x=0, y=0)
plt.show()

另外还可以给词云设置形状,需要提供模板图片,该图片需要纯白色背景,形状颜色为其他颜色。最终生成的结果为:

在这里插入图片描述

总结

本文介绍了Python如何生成词云,主要过程包括加载数据、中文分词、自定义形状、生成词云。上面过程可以进一步改进,如过滤停顿词,保持结果为文件或流,让其他应用直接调用。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值