前端时间爬下了拉勾网关于数据挖掘职位的相关信息(爬取可看我的另一篇博客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() #显示图片这是一个十分简单的例子,文字是我随便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') #保存图片源图片为
这是我从另外一个博主那拉下来的,侵删,生成的结果是这样的:
从这个图片看来数据挖掘和机器学习的关系是非常密切。还生成了一张文字的,不过很模糊
最后贴几个参考资料的链接,在此感谢各位博主:
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包的用法
