WordCloud实践

用word cloud生成词云图的效果觉得非常漂亮,但是每次需要手动在命令行里生成,显然有些麻烦。我希望能做成一个API,提供给我的小程序使用。

首先,看一下本地生成的图片效果:

wordcloud

文字可以根据背景图案不同分布成不同形状。可以自定义字体和文字颜色,目前使用的是随机默认颜色,我觉得默认的就挺好看的。词语是根据传入的一段文字自动截词的。

图片生成的手动模式

直接在bash中使用命令行执行.py文件,就会在当前目录下生成一张图片。

python3 worldcloud.py

我现在有一个微信小程序,后端使用的是PHP,我想把这个功能放到小程序里。

网上说PHP可以通过 exec("command",&$output,$result)方法运行python文件。 我测试了一下,如果python文件只包含简单的逻辑,比如打印一个"hello world",是可以执行成功的,如果python文件中的功能比较复杂,比如我生成图片的这个功能,需要引入很多功能模块的,就没法通过exec来运行。思来想去,只能运用python写一个API接口,当小程序调用PHP后端时,PHP把生成图片的请求转到python的API,python生成图片后,把图片地址返回给PHP,PHP再把图片地址response给小程序。。。

mina

这就是我的小程序,现在词图的功能没有上,等我把API调用的功能实现后,就可以准备更新小程序啦. 有兴趣的朋友可以先收藏小程序

  • 先搞个python的"hello world" API出来

从头去学一个Django, flusk之类的web框架是没耐心了,而且我需要的也不是一个功能丰富的web服务,只是一个能为PHP提供一个小功能调用的API而以。网络一阵猛搜,搜到一个Bottle。 bottle就是一个极简单的web服务框架。看一下操作文档,几分钟就搞出了一个hello world,happy ing...

  • 试一下通过浏览器访问API生成图片,也没有问题

  • 再试通过url转入参数,并根据参数动态生成图片,也是OK的。哈哈哈哈

在服务器上搭建python

  • aliyun ECS centos7.4
  • 默认自带python2.7.4
  • 需要自己安装python3,在python官网上下载。
  • pip3 install pandas
  • pip3 install jieba
  • pip3 install matplotlib
  • pip3 install wordcloud
  • python3 cloud.py 图片已经可以生成了。