python大数据之简易词云图

2017-02-15  本文已影响1612人  Bugl0v3r

python实现简易词云图

参考自大数据文摘

0b01:环境准备

0b10: 代码实现

# -*- 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: 测试实例

大话西游词云图
上一篇下一篇

猜你喜欢

热点阅读