Python jieba+wordcloud制作词云

对于大片文本数据的可视化可以使用词云,既直观又酷炫。

步骤主要为:
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()

如果直接使用前面的代码,会出现报错
Python jieba+wordcloud制作词云_第1张图片

原因是列表中可能存在空值,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()

你可能感兴趣的:(Python jieba+wordcloud制作词云)