2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python 10行代码生成词云图片(基础词云 形状词云)

python 10行代码生成词云图片(基础词云 形状词云)

时间:2024-04-18 10:48:58

相关推荐

python 10行代码生成词云图片(基础词云 形状词云)

一、词云简介

词云,也称为文本云或标签云。在词云图片中,关键词在文本中出现的次数越多,则表示该词越重要,其在词云中所占面积区域也越大,出现次数越少,所占面积越小。词云可任意更换背景为白色的图形以改变词云形状。

二、WordCloud原理简介

wordcloud的原理比较好理解,大致为:

首先对文本数据进行分词,使用process_text()方法接着计算每个词在文本中的出现频率,生成一个字典。词频用于确定一个词的重要性,即词云文件中词语的显示大小。然后根据词频的数值按比例生成一个图片的布局,类IntegralOccupancyMap 是该词云的数据可视化方式的核心。生成词的颜色、位置、方向等。最后将词按对应的词频在词云画布上生成图片,核心方法是generate_from_frequencies,不论是generate()还是generate_from_text()都最终用到generate_from_frequencies完成词云上各词的着色,默认是随机着色,通过调用to_file()完成词云文件的保存。

参考:/jasonhaven/p/7596799.html?ivk_sa=1024320u

三、WordCloud参数

四、使用步骤

安装相应的第三方库:

pip install wordcloudpip install jiebapip install matplotlib

因为wordcloud里的process_text函数是针对英文进行分词的,无法对中文更好地分词,只在各种标点符号中切分中文,显然这并不是我们想要的效果,所以我们若要生成中文的词云,需要先对中文文本进行分词再调用相应的函数。 分词操作: 通过jieba分词,用空格拼接词语字符串,process_text函数就能返回正确的分词计数的字典。

五、python代码

1、基础词云,参考代码如下:

import jiebafrom wordcloud import WordCloudimport matplotlib.pyplot as plttext = '用python制作词云,生成词云图片,只用10行python代码生成词云'cut_word = " ".join(jieba.cut(text))wc = WordCloud(font_path = r'/msyh.ttc')wc.generate(cut_word)plt.imshow(wc)plt.axis("off") # 不显示坐标轴plt.show()

词云展示:

备注:增加停用词处理,效果会更好,可参考以下形状词云代码。

2、形状词云,参考代码如下:

import jiebafrom wordcloud import WordCloudimport matplotlib.pyplot as pltimport numpy as npfrom PIL import Image# 读取文本with open("./data/sentences.txt",encoding="utf-8") as f:sentence = f.read()print(sentence)sentence_cut = jieba.lcut(sentence) # 生成分词列表text = ' '.join(sentence_cut) # 以空格连接字符串#获取停用词 去掉不需要显示的词stopwords_path = 'data/stopwords.txt'stopwords = [line.strip() for line in open(stopwords_path,'r',encoding='utf-8').readlines()]# 读入背景图片img = Image.open("./monkey2.jpg") # 打开遮罩图片mask = np.array(img) #将图片转换为数组wc = WordCloud(font_path="msyh.ttc",mask=mask,width = 1000,height = 700,background_color='white',max_words=200,stopwords=sentence).generate(text)# 以下代码显示图片plt.imshow(wc, interpolation='bilinear')# 用plt显示图片plt.axis("off") # 不显示坐标轴plt.show()# wc.to_file("wordcloud2.png") # 保存为本地图片

注意:调用generate和generate_from_text两种方法一样,最终都是会调用generate_from_text方法。

使用的形状原图:

​​​​​​​

词云生成结果:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:/kerry_55/article/details/122090231

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。