python3使用flask框架搭建在线词云应用
来源:互联网 发布:魔兽争霸3 for mac 编辑:程序博客网 时间:2024/05/16 03:59
词云生成
词云生成调用了python中的几个功能强大的包,实现文本切割、图像处理和词云生成。
- jieba
jieba是python中用于中文文本分词的模块,支持多种切分模式,并且可以自定义停用词表,去除无意义的词。 - scipy
scipy是python中一个用于科学计算的包,其中的misc模块中提供了一些图像处理的函数,这里主要用了imread()和imsave()函数进行图像读取、二值化和存储。 - wordcloud
wordcloud是一个词云生成的包,可以根据输入文本串生成词云图。
下面介绍代码(分词和词云生成):
分词采用python的jieba模块,实现文本清洗,分词和去停用词处理。
class word_spliter(): def __init__(self,text,stop_path = sw_path): self.text = text self.stop_word = stop_path def get_stopword(self): stopwords = {}.fromkeys([line.rstrip() for line in open(self.stop_word, encoding='utf-8')]) return stopwords def text_wash(self): self.text = self.text.encode(encoding="utf-8",errors='ignore').decode("utf-8") # print(self.text) return self.text def split_word(self): seq = '' sw_words = self.get_stopword() text = self.text_wash() segs = jieba.cut(text,cut_all=False) for seg in segs: if seg not in sw_words: seq = seq + seg +" " return seq
词云生成需要指定一个字体路径,这里指定为./utils/msyh.ttc'
class wordclouder(): # get parameter def __init__(self,text,image): self.text = text self.imag = image # generate picture def word_cloud(self): mask_image = imread(self.imag,flatten=False) word_pic = WordCloud( font_path='./utils/msyh.ttc', background_color='white', mask=mask_image ).generate(self.text) imsave(self.imag,word_pic)
flask框架
首先需要创建一个应用,然后添加下面的功能
- 路由
通过装饰器让url地址指向对应执行函数 - 重定向
从主地址跳转向upload - upload & download
完成图片&文字的上传,返回生成的词云图片
# Create the application.APP = flask.Flask(__name__)@APP.route('/',methods=['GET', 'POST'])def index(): """ 显示可在 '/' 访问的 index 页面 """ return redirect(url_for('upload'))@APP.route('/upload',methods=['GET', 'POST'])def upload(): err = None if request.method == "POST": pic = request.files['uploadPic'] text = request.form['wordStr'] pic_path = "./static/pic/"+pic.filename pic.save(pic_path) generate_wordcloud(text,pic_path) response = make_response(send_file(pic_path)) response.headers["Content-Disposition"] = "attachment; filename=wordcloud.jpg;" return response # return flask.render_template('wordcloud.html',pic_name = 'pic/'+pic.filename) else: err = "post method required" return flask.render_template('upload.html',error=err)
以上操作就在本地基于python3和flask实现了一个在线的词云生成web应用,效果如图所示:
完整代码放到了github上:
https://github.com/hunterzju/flask_wordcloud
最后放两张用于生成词云的模版图片:
阅读全文
0 0
- python3使用flask框架搭建在线词云应用
- python3 flask框架
- flask框架项目搭建
- ubuntu16下python3 + flask环境搭建
- [python3.6 flask web学习]Flask用户认证框架
- Flask框架基本使用
- Python3-搭建Django框架
- python flask搭建web应用
- Flask-基本应用搭建模式
- [python3.6 flask web学习]使用Flask-Mail发送邮件
- python3,pyCharm2016环境下Django框架搭建与初步使用
- 使用Flask快速搭建前端
- 使用Flask框架构建服务器端
- [python3.6 flask web学习]开发环境搭建
- ubuntu16.04 Python2和Python3同时存在安装flask框架
- Ubuntu下使用Python+flask+MySQL的架构搭建Web框架
- 使用django框架搭建web应用
- Python 的 Flask 框架安装应用
- 机器学习之线性回归预测销量
- 2017 Multi-University Training Contest 4 && HDOJ 6069 Counting Divisors 【区间筛法】
- Idiomatic Phrases Game (spfa)
- 在一个组件使用router-link进行路由时传递一个参数,在另一个组件接收
- 记录一下今天,这是我开始的第一个flag!
- python3使用flask框架搭建在线词云应用
- 洛谷3600,大力期望DP
- STL容器 -map和set接口介绍
- [Unity插件]DOTween基础
- 单片机的启动过程(从上电到main)
- Networking 【poj-1287】 【最小生成树】
- 事件案例体验
- 达内课程-面向对象之接口
- JavaScript :几个小练习