APP下载

基于Python+Echarts的大数据可视化系统的设计与实现

2019-09-13陈俊生彭莉芬

关键词:分词可视化框架

陈俊生,彭莉芬

(安徽电子信息职业技术学院,安徽 蚌埠 233000)

一、引言

随着电子商务技术的发展及生活节奏的加快,很多餐饮企业陆续推出了网上订餐及外卖服务。为了招揽更多的顾客,各大主流团购或网上订餐网站都对上线的商家及菜品提供了相应的销售、用户评价和评分数据,但是在实际推广过程中由于商业利益的驱使,有些推广显得商业味比较重,不能做到实事求是,甚至还包含虚假推广的成分,这些都可能在消费者进行决策时对其造成不同程度的误导。此时消费者想要做出正确的决策需要耗费大量的时间和精力对网站提供的大量数据进行分析与归纳。

大数据分析技术的发展使得我们快速有效地分析这些数据成为了可能。同时大数据也正在对科学研究、思维方式和社会发展产生重要的影响。具体来说,在科学研究方面,大数据使得人类科学研究在经历了实验、理论、计算三种范式以后,迎来了第四种范式——数据;在思维方式方面,大数据具有“全样而非抽样、效率而非精确、相关而非因果”三大显著特征,完全颠覆了传统的思维方式;在社会发展方面,大数据决策逐渐成为一种新的决策方式[1]。

在众多的数据分析技术中,可视化分析技术越来越多地被人们用于分析和理解数据,可视化技术可以将数据转变为易于理解的图表,为大数据分析提供了一种更加直观的理解、分析与展示手段,有助于发现蕴含在大量数据背后的奥秘和价值。

鉴于此,基于Python+Echarts的大数据可视化系统旨在利用大数据的思维,以采集到的蚌埠区域餐饮业网络数据为研究分析对象,最终以可视化的方式把分析结果呈现出来。通过该系统,可以以简单明了的方式为个人用户在美食商品选择及商家在业务定位和推广时提供科学的决策辅助。

二、总体设计

基于Python+Echarts的大数据可视化系统从功能模块上划分可以分为数据采集模块、数据分析处理模块、数据存储模块及可视化呈现模块。系统基于B/S架构设计,借助于Python强大的数据采集和分析处理技术实现了区域网络餐饮数据的采集、清洗、整理及分析计算工作并推送至MySQL数据库中,后台采用基于Python的Flask框架实现数据接口功能并将数据库中的数据推送至前端,前端综合运用了HTML、CSS、JavaScript等,并结合Echarts数据可视化组件,实现了数据到可视化图表的转换,并完成了用户和系统之间的交互。系统总体架构设计如图1所示。

图1 系统总体架构图

图2 分布式爬虫策略

三、研究的主要内容及技术路线

(一)研究的主要内容

1.快速有效地进行数据采集的策略研究

大数据可视化系统中数据的采集通过分布式爬虫算法实现,数据采集的速度更快。传统的单机爬虫会受到诸如CPU、IO和带宽等多重限制,而分布式爬虫的原理是在进行数据采集任务时,由一台主机(Master)负责分配任务给Slaver节点,具体的数据采集任务则由多个Slaver节点共同完成,进而提高数据采集的性能。系统中设计的分布式爬虫策略如图2所示。

2.用大数据思维进行数据分析挖掘工作的算法研究

本系统中常规数据的分析计算工作相对简单,难度在于分析出消费者对于的美食产品的关注点及情感倾向(正面和负面)。由于这些数据都要从评论的文本信息中获取,所以不可避免要进行中文的分词操作,并对分词的结果进行情感倾向分析。中文分词作为文本信息挖掘的重要手段,在文章关键词提取,产品的评论的维度挖掘和评论的情感划分等方面都有着广泛的应用。

由于Python中提供了较为强大的中文分词程序库,所以本研究中初始分词及词频统计工作由结巴分词第三方程序库完成,主要的研究工作集中在如何判定分词结果的情感倾向(即正面还是负面)上,对于这些词传统的情感倾向分析大都是基于语义分析来进行的,对情感词典和算法要求都非常高,不易实现,考虑到本研究中情感划分只需要分为正面的和负面,而正负情感和评分之间必然存在正向相关性,再加上所采集的是大量的数据,不具有局部随机性,所以利用大数据的思维采用关注点(分词以后词频最高的一些词)回溯到原始数据中,结合评分信息综合判断的方法来判定关注点的情感倾向。具体来说就是用分析出来的关注点回溯到原始的数据中,统计出各个评分星级的人数,如果对应评分中五星、四星的人数居多,则可判定该关注点为正面,反之如果一星和两星的人数居多即为负面。

3.Web框架的研究

由于本系统采用的核心编程语言为Python,所以这里只研究了Python中常见的Web框架。Python中被广泛部署的Web框架大致有以下13种:CubicWeb、Django、Web2py、Weppy、Zope2、Bottle、CherryPy、Falcon、Flask、Pyramid、Tornado,Web.py和Wheezy.web。其中前5种框架是重量级的Python Web框架,采用“控件”方法,可以实现几乎所有的Web应用程序所需的功能,但是使用相对复杂,而后8种框架则是一些轻量级的框架,使用的门槛较低。

Flask是一种微小的、成熟的且易于理解的Python Web框架[2],虽然体量微小但它具有极强的可扩展性,Flask的核心吸引力在于其进入门槛低,可以使开发变得简单易行且无冗余功能。使用Flask进行轻量级Web项目或基本REST API几乎不可能出错。其中使用的HTML模板系统Jinja2使渲染文本变得更加容易,这也是其在业界受到追捧的重要原因之一。

4.可视化工具的研究

具体的可视化工具种类繁多,有很多选择,有一定用户基础的常见工具包括Arbor.js、D3.js、Data.js、Google Chart Tools、HighCharts、Echarts、iCharts、R、Tableau Public、Visual.ly、Python (如Plotly包) 等[3]。其中的Echarts由国内IT三巨头之一的百度推出,它简单易用、开源并且支持中国地图功能,在业界有着良好的口碑,应用范围较为广泛。

(二)技术思路

本系统基于B/S 结构构建,借助Python中的Request、BeautifulSoup及Scrapy等程序库完成数据的采集工作,并使用Pandas程序库进行数据的清洗、整理、分析和计算工作,处理以后的数据将被推送至MySQL数据库中,后台采用Flask框架实现数据接口的功能,并将MySQL数据库中数据推送至前端页面,前端主要采用HTML、JavaScript、JQuery相结合,并调用Echarts可视化组件,完成数据向可视化图表的转化,用户只需要使用谷歌或火狐等浏览器即可使用本系统。

四、系统应用效果评估

该系统的实际意义在于通过可视化技术将区域餐饮的数据用更加直观、易于理解的方式表达出来,是一个辅助数据挖掘的过程。可视化作为一种基于人类视觉通道进行数据分析的手段,在很多领域都发挥着帮助用户理解数据、发现数据特征,进而辅助推理决策的作用[4,5]。可视化系统实现以后部分界面如图3所示。

图3 可视化系统部分界面截图

图4 系统可视化效果评估

系统应用效果的评估采用试用加体验问卷调查的方式,体验问卷涵盖了交互性、实用性、准确性、直观性和美观性五个维度。笔者挑选了30名体验者试用了本系统并参加了匿名的问卷调查,这30名用户都有过网上订餐的经历。通过问卷调查,数据可视化系统评估结果如图4所示,表明用户满意度与本研究的期望基本相符。

五、结语

基于Python+Echarts的大数据可视化系统充分利用了大数据的思维,将抓取的蚌埠区域餐饮业网络数据在一定的时间内完成清洗和整理,然后从用户和商家双重角度进行综合多维度分析,最终以可视化的方式把分析结果呈现出来。呈现的内容大体包含商家的地理位置分布信息,区域美食关注度的排行信息、区域商家的销售对比信息及同类商品的销售对比信息等。通过体验者的体验评估证明,用户满意度与本研究的期望基本相符,但在交互性和美观性方面仍然存在不足之处,在后续的研究中将进一步改进和完善。

猜你喜欢

分词可视化框架
基于CiteSpace的足三里穴研究可视化分析
思维可视化
框架
分词在英语教学中的妙用
广义框架的不相交性
基于CGAL和OpenGL的海底地形三维可视化
结巴分词在词云中的应用
结巴分词在词云中的应用
“融评”:党媒评论的可视化创新
关于原点对称的不规则Gabor框架的构造