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() #显示图片


这是一个十分简单的例子,文字是我随便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包的用法


Python的`wordcloud`库中,`contourcolor`属性是一个非常有用的功能,它用于为文本生成的可视化工具创建轮廓颜色。在文本生成图像或条形图中,使用颜色作为辅助可以帮助视觉识别特定的数据点和区域。 这个属性主要用于自定义颜色条目的可见性。通常,默认的颜色可能无法准确反映出每个词汇或类的相关性,所以这个属性可以用来修改或完全覆盖这些默认的颜色。 这是一个基本的使用示例: ```python from wordcloud import WordCloud import matplotlib.pyplot as plt import numpy as np # 创建一个简单的文本字符串 text = 'python python python C++ C# C# android android mobile' # 创建一个 WordCloud 对象 wordcloud = WordCloud(width = 800, height = 800, contourcolor = 'darkgoldenrough').generate(text) # 使用 matplotlib 来显示生成的图像 plt.figure(figsize = (8, 8), facecolor = None) # 设置背景为透明 plt.imshow(wordcloud) plt.axis("off") # 不显示坐标轴 plt.show() ``` 在这个例子中,`contourcolor`属性被设置为`'darkgoldenrough'`,这将改变生成的图像的轮廓颜色。这个颜色是一个非常暗的金色,它可能会对那些不熟悉这个颜色的用户产生一定的挑战,但是它有助于更清楚地看到哪些词汇是主要的。你可以根据自己的需要选择不同的颜色。 需要注意的是,这个属性在某些版本的`wordcloud`库中可能不可用,你可能需要查看你正在使用的库的文档以获取更详细的信息。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值