赞
踩
对于大片文本数据的可视化可以使用词云,既直观又酷炫。
步骤主要为:
1.准备好数据文本,最好是字符串。但绝大可能是列表,此时需要使用【text=’ '.join(list)】这样的方法变成字符串;
2.使用jieba进行分词,用法可参考:
https://blog.csdn.net/reims2046/article/details/72869337
3.将jieba返回的内容传入wordcloud
wordcloud参数用法可参考:
https://blog.csdn.net/zx1245773445/article/details/100894576
4.预览以及保存
纯文本可以通过以下代码简单制作词云
import matplotlib.pyplot as plt import jieba from wordcloud import WordCloud #data为纯文本数据 js='xxxxxxxx' js_cut=jieba.lcut(js) js_cut=' '.join(js_cut) wc = WordCloud( background_color='black', # 设置背景颜色为黑色 font_path='/font/msyh.ttc', # 显示中文,可以更换字体 stopwords={'数据分析','数据挖掘'}, # 设置停用词,停用词则不再词云图中表示 max_font_size=150, # 设置字体最大值 random_state=1, # 设置有多少种随机生成状态,即有多少种配色方案 scale=20 # 设置生成的词云图的大小 ) wc.generate(js_cut) wc.to_file('js.png') #保存图片 plt.imshow(wc) #用plt显示图片 plt.axis('off') #不显示坐标轴 plt.show()
如果数据是列表,如
import pandas as pd
df=pd.read_csv('job_info.csv', encoding='gbk')
js=df['job_skills'].tolist()
如果直接使用前面的代码,会出现报错
原因是列表中可能存在空值,jieba无法识别,所以必须去除空格,完整代码如下
import pandas as pd import matplotlib.pyplot as plt import jieba from wordcloud import WordCloud df=pd.read_csv('job_info.csv', encoding='gbk') js=df['job_skills'].tolist() while '' in js: js.remove('') js=' '.join(js) js_cut=jieba.lcut(js) js_cut=' '.join(js_cut) wc = WordCloud( background_color='black', # 设置背景颜色为黑 font_path='/font/msyh.ttc', # 显示中文,可以更换字体 stopwords={'数据分析','数据挖掘'}, # 设置停用词,停用词则不再词云图中表示 max_font_size=150, # 设置字体最大值 random_state=1, # 设置有多少种随机生成状态,即有多少种配色方案 scale=20 # 设置生成的词云图的大小 ) wc.generate(js_cut) wc.to_file('js.png') #保存图片 plt.imshow(wc) #用plt显示图片 plt.axis('off') #不显示坐标轴 plt.show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。