python词云图素材_python大数据之简易词云图

python实现简易词云图

0b01:环境准备

推荐使用Anaconda 它包含了(numpy,codecs,pandas,matplotlib),当然也可以自行安装这些包。

此外还要安装jieba(分词包),WordCloud(词云包)

直接pip install jieba,pip install WordCloud即可

用来生成词云的txt文件 (比如,聊天记录,影视剧本,台词等等)

词云背景图(形状)。(默认为矩形)

0b10: 代码实现

测试环境 Anaconda2(python2.7 64bit) on win10

# -*- coding:utf-8 -*-

import jieba # 分词包

import numpy # numpy计算包

import codecs # codecs提供open方法指定打开的文件的语言编码,它会在读取时自动转换为内部的unicode

import pandas # 统计学工具包

import matplotlib.pyplot as plt

from wordcloud import WordCloud, ImageColorGenerator # 词云包

from scipy.misc import imread

# 导入文本,分词处理

file = codecs.open(u'大话西游.txt', 'r')

content = file.read()

file.close()

segment = []

segs = jieba.cut(content) # 使用jieba分词

for seg in segs:

if len(seg) > 1 and seg != '\r\n':

segment.append(seg)

# 去停用词(文本去噪)

words_df = pandas.DataFrame({'segment': segment})

# 字典中的keys就是DataFrame里面的columns,但是没有index的值,所以需要自己设定,不设定默认是从零开始计数。

words_df.head()

stopwords = pandas.read_csv("stopwords.txt", index_col=False,

quoting=3, sep='\t', names=['stopword'], encoding="utf8")

words_df = words_df[~words_df.segment.isin(stopwords.stopword)]

# 词汇频率表

words_stat = words_df.groupby(by=['segment'])['segment'].agg({"count": numpy.size})

words_stat = words_stat.reset_index().sort_values(by="count", ascending=False)

# 自定义词云背景

bimg = imread('heart.jpeg')

wordcloud = WordCloud(background_color="white", mask=bimg, font_path='simhei.ttf')

wordcloud = wordcloud.fit_words(words_stat.head(4000).itertuples(index=False))

bimgColors = ImageColorGenerator(bimg)

plt.axis("off")

plt.imshow(wordcloud.recolor(color_func=bimgColors))

plt.show()

0b11: 测试实例

58446b613f6c

大话西游词云图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值