案例一:
'''
词云就是将噶你兴趣的词语放在一张图像中,通常使用字体的大小来反映出现的频率。
出现的频率越高。词云中的字体越大
'''
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
s1='020赛季中超联赛原本计划在2月底揭幕,因为新冠疫情影响,已经拖延了两个多月时间。' \
'绝大多数职业俱乐部本就处于长期亏损状态,眼下没有比赛可打,收入更几乎为零。与此同时,' \
'俱乐部却依然要履行工作合同,向球员和教练支付高昂工资。根据统计,目前薪资支出约占俱乐部运营成本的70%左右.' \
'为此,中国足协专门同国际足联进行了沟通。此前,国际足联颁布了《关于应对新冠疫情足球管理问题指南》(以下简称《指南》),' \
'认定新冠疫情为不可抗力,建议俱乐部和球员、教练员在友好协商的基础上合理修订工作合同。国际足联表示,如在薪酬协商和调整过程中' \
'出现争议,按照《指南》原则对个案进行评估和处理。处理原则包括:友好协商、幅度合理;同时要综合考察俱乐部的经济状况、球员和教练的税' \
'后收入水平,以及单边决定适用的范围(全队或个人)。'
s2='此次降薪的重要前提是俱乐部与球员、教练员应坚持友好协商,达成共识,同时保护低收入球员和教练员的利益,不鼓励降低或延付他们的薪资。降薪可以' \
'帮助俱乐部和投资人缓解一定经济压力,维持运营。这也是眼下国际足坛通行的做法,毕竟,面对疫情这只“黑天鹅”,俱乐部的生存才是第一要务,避免' \
'财务风险,在很大程度上决定着联赛发展的稳定。虽然此次降薪的首要目标是应对疫情冲击。但从长远看,调整俱乐部财务结构,实现财务健康是足球职业' \
'联赛挤掉泡沫、迈入良性发展之路的必要之举和务实之举。联赛苦高薪久矣,足球深化改革,联赛可持续发展牵涉方方面面,降薪是绕不过的环节。正如中国足' \
'协主席陈戌源所说:“要以壮士断腕的态度,重新塑造职业联赛的财务体系,不挤掉泡沫,中国足球没有未来。”'
mylist=[s1,s2];
# 将s1,s2做成列表
word_list=[" ".join(jieba.cut(sentence)) for sentence in mylist ];
# 遍历列表,然后将其做成分词后做成列表
new_text=' '.join(word_list);
# 将分词后的元素用空格为分割符拼接,便于计算词频
woldcloud=WordCloud(font_path='simhei.ttf',background_color='black').generate(new_text);
# 设置词云的字体和背景颜色
plt.imshow(woldcloud);
# plt.imshow()函数负责对图像进行处理,并显示其格式,但是不能显示。
plt.axis("off");
# 坐标轴不可见
plt.show()
# 显示图像
woldcloud.to_file('hello.png')
# 保存图片
案例二:
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text=open(r'pachong.txt',encoding='utf-8');
mylist=list(text);
word_list=[''.join(jieba.cut(sentence)) for sentence in mylist];
new_text=' '.join(word_list);
wordcloud=WordCloud(font_path='simhei.ttf',background_color='black').generate(new_text);
plt.imshow(wordcloud);
plt.axis("off");
plt.show()
wordcloud.to_file('词云.png')
具有轮廓的词云
'''
首先对文本进行分词
import jieba
jieba.cut(comntent,cut_all=True)
content就是需要分词的文本,cut_all将文本中的词都分割出来
然后构建词云
'''
import jieba
from wordcloud import WordCloud
from scipy.misc import imread
import matplotlib.pyplot as plt
content=open(r'pachong.txt',encoding='utf-8');
mylist=list(content);
word_list=[' '.join(jieba.cut(sentence)) for sentence in mylist];
new_list=' '.join(word_list);
read_image=imread('apchong.png');
wc=WordCloud(font_path='simhei.ttf',background_color='white',max_words=2000,mask=read_image).generate(new_list)
plt.imshow(wc);
plt.axis('off');
plt.show()
wc.to_file('孩子.png');
'''
WordCloud包的基本用法:
font_path:用来设置图像中的字体
width:设置图像的宽度,height:用来设置图像的高度
margin:画布偏移,词语边缘距离,默认是两个像素
mask:用于填充的图像,如果为空的话,则表示全白
max_words:要显示词的最大个数
background_color:表示背景颜色,默认为白色
关于词云的方法有:
generate(text)//根据文本生成词云
fit_words(frequencies)//根据词频生成词云
to_file(filename)//输出到文件
to_array()//转化为数组
'''
通过词频形成ed词云
import jieba
from wordcloud import WordCloud
from scipy.misc import imread
import matplotlib.pyplot as plt
from collections import Counter
content = open(r'pachong.txt', encoding='utf-8');
mylist = list(content);
word_list = [' '.join(jieba.cut(sentence)) for sentence in mylist];
new_list = ' '.join(word_list);
con_words=[x for x in jieba.cut(new_list) if len(x) >= 2]
frequents=Counter(con_words).most_common()
frequents=dict(frequents)
read_image = imread('apchong.png');
wc = WordCloud(font_path='simhei.ttf', background_color='white', max_words=2000, mask=read_image).fit_words(frequents)
plt.imshow(wc);
plt.axis('off');
plt.show()
wc.to_file('孩子_1.png');