核心代码:
- # 清洗数据,生成词云图
- def split_word(test_str):
- test_str = re.sub('[,,。. rn]', '', test_str)
- # jieba 词语
- segment = jieba.lcut(test_str)
- words_df = pd.DataFrame({'segment': segment})
- # quoting=3 表示stopwords.txt里的内容全部不引用
- stopwords = pd.read_csv(r"H:PyCoding Analysis_wx_namestopwords.txt", index_col=False, quoting=3, sep="t", names=['stopword'], encoding='utf-8')
- words_df = words_df[~words_df.segment.isin(stopwords.stopword)]
- words_stat = words_df.groupby(by=['segment'])['segment'].agg({"计数": numpy.size})
- words_stat = words_stat.reset_index().sort_values(by=["计数"], ascending=False)
- test = words_stat.head(200).values
- codes = [test[i][0] for i in range(0,len(test))]
- counts = [test[i][1] for i in range(0,len(test))]
- wordcloud = WordCloud(width=1300, height=620)
- wordcloud.add("微信昵称", codes, counts, word_size_range=[20, 100])
- wordcloud.render('render_03.html')
运行效果:

pyecharts词云图
4. 使用Wordcloud+matplotlib,生成高级一点的词云图:
核心代码:
- # 下下期好好讲一下matplotlib绘图可视化,挺有意思的
- # 调用get_name函数获取全部微信名
- text = get_name()
- # 调用jiebaclearText函数,清洗数据(该函数和上面切词思想一样)
- text1=jiebaclearText(text)
- #产生词云图
- bg = plt.imread(r"G:small_pig.jpg")
- #生成词云
- wc=WordCloud(
- background_color="wathet", #设置背景为白色,默认为黑色
- mask=bg, # 设置词云内容范围(除指定图片白色区域的其他区域都将覆盖词云内容)
- margin=10, #设置图片的边缘
- max_font_size=70, #显示的最大的字体大小
- random_state=20, #为每个单词返回一个PIL颜色
- font_path='G:simkai.ttf' #中文处理,用系统自带的字体
- # 可以在这里下载这个字体:http://www.font5.com.cn/font_download.php?id=534&part=1245067666
- ).generate(text1)
- #为图片设置字体
- my_font=fm.FontProperties(fname='G:simkai.ttf')
- # 图片背景
- bg_color = ImageColorGenerator(bg)
- # 开始画图
- plt.imshow(wc.recolor(color_func=bg_color))
- # 为云图去掉坐标轴
- plt.axis("off")
- # 保存云图
- wc.to_file("render_04.png")
5.词云轮廓原图:

这是您的专属社会人
运行效果:

wordcloud词云图
由于第二种方法无法解析表情图,所以没有表情出现,除此之外,这两种方法显示的词云图内容,几乎大同小异。
通过词云图,我们一眼看出,大家使用最多的,除开中文后,就是表情图了,你的微信朋友圈里,是否也有这样的大红嘴唇,我的好像有,哈哈哈~ (编辑:好传媒网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|