您的位置:首页 > 编程语言 > Python开发

python的一个好玩模块wordcloud

2016-07-26 19:48 603 查看
python真的超级超级好玩呐,不管是爬虫还是数据挖掘,真的都超级有意思。

今天,来说一说python一个好玩的模块wordcloud

构建词云的方法很多, 但是个人觉得python的wordcloud包功能最为强大,可以自定义图片. 
官网: https://amueller.github.io/word_cloud/ 
github: https://github.com/amueller/word_cloud 
例子: 



字体用的是cabin-sketch.bold

安装


方法1

pip install wordcloud


方法2

github下载并解压

wget  https://github.com/amueller/word_cloud/archive/master.zip unzip master.zip
rm master.zip
cd word_cloud-master


安装依赖包

sudo pip install -r requirements.txt


安装wordcloud

python setup.py install


方法三

下载.whl文件http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

使用cd命令进入whl文件的路径

运行这条命令:

python -m pip install <filename>




以下是例子

#coding:utf-8
from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
import jieba

from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator

stopwords = {}
def importStopword(filename=''):
global stopwords
f = open(filename, 'r', encoding='utf-8')
line = f.readline().rstrip()

while line:
stopwords.setdefault(line, 0)
stopwords[line] = 1
line = f.readline().rstrip()

f.close()

def processChinese(text):
seg_generator = jieba.cut(text)  # 使用结巴分词,也可以不使用

seg_list = [i for i in seg_generator if i not in stopwords]

seg_list = [i for i in seg_list if i != u' ']

seg_list = r' '.join(seg_list)

return seg_list

importStopword(filename='./stopwords.txt')

# 获取当前文件路径
# __file__ 为当前文件, 在ide中运行此行会报错,可改为
# d = path.dirname('.')
d = path.dirname(__file__)

text = open(path.join(d, 'love.txt'),encoding ='utf-8').read()

#如果是中文
#text = processChinese(text)#中文不好分词,使用Jieba分词进行

# read the mask / color image
# taken from http://jirkavinse.deviantart.com/art/quot-Real-Life-quot-Alice-282261010 # 设置背景图片
back_coloring = imread(path.join(d, "./image/love.jpg"))

wc = WordCloud( font_path='./font/cabin-sketch.bold.ttf',#设置字体
background_color="black", #背景颜色
max
4000
_words=2000,# 词云显示的最大词数
mask=back_coloring,#设置背景图片
max_font_size=100, #字体最大值
random_state=42,
)
# 生成词云, 可以用generate输入全部文本(中文不好分词),也可以我们计算好词频后使用generate_from_frequencies函数
wc.generate(text)
# wc.generate_from_frequencies(txt_freq)
# txt_freq例子为[('词a', 100),('词b', 90),('词c', 80)]
# 从背景图片生成颜色值
image_colors = ImageColorGenerator(back_coloring)

plt.figure()
# 以下代码显示图片
plt.imshow(wc)
plt.axis("off")
plt.show()
# 绘制词云

# 保存图片
wc.to_file(path.join(d, "名称.png"))


另外附上
程序的源码
python好玩的词云wordcloud
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息