python WordCloud 简单实例

前端时间爬下了拉勾网关于数据挖掘职位的相关信息(爬取可看我的另一篇博客https://blog.csdn.net/cy776719526/article/details/80094817),于是就打算把ta的职位要求做成词云呈现出来,由于刚刚学习,所以只是一个简单的实例

所有我爬下的岗位要求都保存到了一个名为岗位需求的TXT文件中(已保存在网盘中https://pan.baidu.com/s/1ymqZifBVP8Y4xap5IXKZLQ,想试一试的可以下载运行一下)

首先需要进行分词,也就是将一个句子分割成一个个的词语,我这里使用的是jieba分词

import jieba 
cut = jieba.cut(text)  #text为你需要分词的字符串/句子
string = ' '.join(cut)  #将分开的词用空格连接
print(string)

上面是一个非常简单的分词的例子,在cut的时候也可以选择不同的参数,使用不同的模式进行分词,具体使用方法可自行百度,当然也有其他的分词包,大家可自行选择

分好词后就需要将词做成词云了,我使用的是wordcloud

from matplotlib import pyplot as plt
from wordcloud import WordCloud

string = 'Importance of relative word frequencies for font-size. With relative_scaling=0, only word-ranks are considered. With relative_scaling=1, a word that is twice as frequent will have twice the size. If you want to consider the word frequencies and not only their rank, relative_scaling around .5 often looks good.'
font = r'C:\Windows\Fonts\FZSTK.TTF'
wc = WordCloud(font_path=font, #如果是中文必须要添加这个,否则会显示成框框
               background_color='white',
               width=1000,
               height=800,
               ).generate(string)
wc.to_file('ss.png') #保存图片
plt.imshow(wc)  #用plt显示图片
plt.axis('off') #不显示坐标轴
plt.show() #显示图片

python WordCloud 简单实例_第1张图片

这是一个十分简单的例子,文字是我随便copy的,不过这样方方正正的不怎么好看,我希望能做成网上那样有不同形状的,在wordcloud中提供了一个参数mask,他可以让你指定你想绘制的图片,不过必须是白底的,他会在你非白底的地方填充上文字,所以最终我的代码是这样的:

import jieba
from matplotlib import pyplot as plt
from wordcloud import WordCloud
from PIL import Image
import numpy as np

path = r'文件存储的目录'
font = r'C:\Windows\Fonts\FZSTK.TTF'

text = (open(path+r'\岗位需求.txt','r',encoding='utf-8')).read()
cut = jieba.cut(text)  #分词
string = ' '.join(cut)
print(len(string))
img = Image.open(path+r'\22.png') #打开图片
img_array = np.array(img) #将图片装换为数组
stopword=['xa0']  #设置停止词,也就是你不想显示的词,这里这个词是我前期处理没处理好,你可以删掉他看看他的作用
wc = WordCloud(
    background_color='white',
    width=1000,
    height=800,
    mask=img_array,
    font_path=font,
    stopwords=stopword
)
wc.generate_from_text(string)#绘制图片
plt.imshow(wc)
plt.axis('off')
plt.figure()
plt.show()  #显示图片
wc.to_file(path+r'\new.png')  #保存图片

源图片为

python WordCloud 简单实例_第2张图片

这是我从另外一个博主那拉下来的,侵删,生成的结果是这样的:

python WordCloud 简单实例_第3张图片

从这个图片看来数据挖掘和机器学习的关系是非常密切。还生成了一张文字的,不过很模糊

python WordCloud 简单实例_第4张图片

最后贴几个参考资料的链接,在此感谢各位博主:

https://blog.csdn.net/starryj/article/details/70081479   python词云

https://blog.csdn.net/lawfay/article/details/78667958  爬取寻梦环游记的评论生成词云

https://blog.csdn.net/qq_25819827/article/details/78991733 python词云实现

https://blog.csdn.net/u010309756/article/details/67637930   生成词云之Python中wordCloud包的用法


你可能感兴趣的:(python)