词云(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如何生成词云,主要过程包括加载数据、中文分词、自定义形状、生成词云。上面过程可以进一步改进,如过滤停顿词,保持结果为文件或流,让其他应用直接调用。