python的一个好玩模块wordcloud

非原创作品,转载自:http://blog.csdn.net/fyuanfena/article/details/52038984


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下载并解压

[plain]  view plain  copy
  1. wget  https://github.com/amueller/word_cloud/archive/master.zip  
  2. unzip master.zip  
  3. rm master.zip  
  4. cd word_cloud-master  

安装依赖包

[python]  view plain  copy
  1. sudo pip install -r requirements.txt  

安装wordcloud

[python]  view plain  copy
  1. python setup.py install  


方法三

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

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

运行这条命令:

[python]  view plain  copy
  1. python -m pip install <filename>  








以下是例子

  1. #coding:utf-8  
  2. from os import path  
  3. from scipy.misc import imread  
  4. import matplotlib.pyplot as plt  
  5. import jieba  
  6.   
  7. from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator  
  8.   
  9. stopwords = {}  
  10. def importStopword(filename=''):  
  11.     global stopwords  
  12.     f = open(filename, 'r', encoding='utf-8')  
  13.     line = f.readline().rstrip()  
  14.   
  15.     while line:  
  16.         stopwords.setdefault(line, 0)  
  17.         stopwords[line] = 1  
  18.         line = f.readline().rstrip()  
  19.   
  20.     f.close()  
  21.   
  22. def processChinese(text):  
  23.     seg_generator = jieba.cut(text)  # 使用结巴分词,也可以不使用  
  24.   
  25.     seg_list = [i for i in seg_generator if i not in stopwords]  
  26.   
  27.     seg_list = [i for i in seg_list if i != u' ']  
  28.   
  29.     seg_list = r' '.join(seg_list)  
  30.   
  31.     return seg_list  
  32.   
  33. importStopword(filename='./stopwords.txt')  
  34.   
  35.   
  36. # 获取当前文件路径  
  37. # __file__ 为当前文件, 在ide中运行此行会报错,可改为  
  38. # d = path.dirname('.')  
  39. d = path.dirname(__file__)  
  40.   
  41.   
  42. text = open(path.join(d, 'love.txt'),encoding ='utf-8').read()  
  43.   
  44. #如果是中文  
  45. #text = processChinese(text)#中文不好分词,使用Jieba分词进行  
  46.   
  47. # read the mask / color image  
  48. # taken from http://jirkavinse.deviantart.com/art/quot-Real-Life-quot-Alice-282261010  
  49. # 设置背景图片  
  50. back_coloring = imread(path.join(d, "./image/love.jpg"))  
  51.   
  52. wc = WordCloud( font_path='./font/cabin-sketch.bold.ttf',#设置字体  
  53.                 background_color="black"#背景颜色  
  54.                 max_words=2000,# 词云显示的最大词数  
  55.                 mask=back_coloring,#设置背景图片  
  56.                 max_font_size=100#字体最大值  
  57.                 random_state=42,  
  58.                 )  
  59. # 生成词云, 可以用generate输入全部文本(中文不好分词),也可以我们计算好词频后使用generate_from_frequencies函数  
  60. wc.generate(text)  
  61. # wc.generate_from_frequencies(txt_freq)  
  62. # txt_freq例子为[('词a', 100),('词b', 90),('词c', 80)]  
  63. # 从背景图片生成颜色值  
  64. image_colors = ImageColorGenerator(back_coloring)  
  65.   
  66. plt.figure()  
  67. # 以下代码显示图片  
  68. plt.imshow(wc)  
  69. plt.axis("off")  
  70. plt.show()  
  71. # 绘制词云  
  72.   
  73. # 保存图片  
  74. wc.to_file(path.join(d, "名称.png"))  

另外附上

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值