李思,敬思远,肖雪梅,杨雪佳,杨进,2
(1.乐山师范学院计算机科学学院,四川乐山614000;2.四川大学网络空间安全学院,四川成都610065)
基于云计算的驾考推荐平台
李思1,敬思远1,肖雪梅1,杨雪佳1,杨进1,2
(1.乐山师范学院计算机科学学院,四川乐山614000;2.四川大学网络空间安全学院,四川成都610065)
随着“自学直考”这一驾考改革的提出和实施,越来越多的驾考考生投入到自学直考的行列中。报告了现在学员对教练需求大,偏好多的现状。不同的用户有不同的教练需求,用户怎样才能选择好适合自己的教练,从而得到高效率的练车目的,因此需要对不同的用户提供个性化的服务,这也是互联网发展的今天所要研究的重点。对推荐系统进行了研究,提出了一种改进的基于云计算的驾考推荐平台。引入了TF-IDF将用户的倾向表示成关键词向量,并计算出每个关键词在整个喜好中的权重来建立学员的模型进行推荐,配合协同过滤,更能准确的推荐出符合要求的教练。
云计算;推荐;数据信息;协同过滤算法;TF-IDF
根据国务院《关于推进机动车驾驶人培训考试制度改革的意见》于2015年12月10日上午正式公布,意在推动我国驾驶人培训考试制度全面改革,将在有条件的地区,试点非经营性小型汽车驾驶人自学直考。自2016年4月1日起,率先在16个城市开展驾照自学直考试点。自学直考简单来说是指学员通过自主学习参加统一驾驶证考试。它与之前传统的学车方式不同,考生可以自主地选择教练,选择车辆进行练习。考生正面临着怎样才能找到适合自己的教练这一问题。
学员数目在扩大,教练的数量也在增加,学员往往需要花掉大量的时间才能找到适合自己的教练。并且在信息量过大的情况下,将会直接影响学员所选择的教练。个性化推荐系统作为电子商务领域必不可少的软件系统,云计算平台完全可以为用户提供安全、稳定,推荐精度高、推荐速度快的个性化推荐系统。云计算是并行、虚拟化、分布技术的发展,分散开的计算机集群可以通过硬件和软件技术实现资源的虚拟化,使其成为可以对外提供的服务。云计算在本文的应用中运用来处理海量的数据,通过虚拟化的方式,客户与主服务器的交换只对元数据进行操作,所有有关数据方面的通信都可以直接和服务器联系,这将很大程度提高系统的效率,以防服务器负载过重。
1.1 云计算体系结构
云计算的体系结构分别由5部分组成,分别为资源层,管理层,应用层,用户访问层和平台层,云计算的本质上是通过网络来提供服务的,所以他的体系结构以服务作为核心。云计算的管理层主要负责资源的管理、任务管理、用户管理和安全管理等工作。资源管理负责均衡使用资源节点,并对资源的具体使用情况进行监视和统计;任务管理负责执行用户或者应用提交的任务,包括完成用户任务映像的管理和部署;用户管理是实现云计算必不可少的环节之一,包括提供给用户交互的接口、管理和识别用户身份、创建用户程序的执行环境等;安全管理保障了云计算的整体安全,包括身份验证、访问授权、综合防护等。
它的虚拟化对用户而言支持用户在任意地点、使用各种终端设备获取应用服务。所请求的资源均来自“云”,而不是固定有形的实体。应用在“云”中的某处运行,但实际用户无需清楚、也不用关注应用运行的具体位置。只需要一台笔记本或者一个手机,就能通过网络服务来实现我们需要的一切,甚至可以包括超级计算这样的任务。
图1 云计算的体系结构
1.2 云计算运行机制
用户通过用户交互接口访问服务目录,确定自己的需求,发出服务的请求,系统管理的模块接受这个请求并分配给适当的资源,然后调用配置工具为用户准备运行的环境。监视统计模块主要负责节点的运行状态。
图2 云计算运行机制
1.3 基于项目的协同过滤推荐(IB-CF)
基于学员的协同推荐是学员向周边人的推荐,基于学员对推荐的教练教学的认可,而进行的推荐。
协同过滤通常是在海量的教练中挖掘出一小部分和你需求比较相似的,在协同过滤算法中,这些教练互为邻居,然后根据他们特点组织成一个排序的目录推荐给学员。本文使用该算法以实现学员在选择教练的过程中,能够更高效得到适合自己,自己满意的教练。要实现协同过滤的想法,需要进行如下几个步骤:收集教练特点;找到相似的教练;计算推荐。对本应用而言,就是需要根据学员的喜好,为他们推荐出适合他们的教练。
1.3.1 预测项目评分
依据最近邻居用户对某一给定教练的评价产生对该教练的评分预测,推荐平台对用户没有进行评价的项目全部进行预测计算,然后将计算结果进行降序排列,最后选取得分最高的N个最优教练形成集合。预测公式如下所示。
1.4 系统的开发设计
本项目使用Java作为开发语言,采用Struts+Spring+Hiber⁃nate三层框架,选用Mysql作为后台数据库,运用Tomcat服务器技术,基于B/S(Browser/Server)端MVC模式进行设计。
图3 基于Struts+Spring+Hibernate框架图
本系统中,Spring作为系统的整体基础架构,负责MVC的分离,框架的融合器。数据持久层由Hibernate完成,Struts作为控制层,负责表现层和业务层之间的协调。系统的基本操作流程是:在表示层中,首先通过访问JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response)参数,然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,向Action提供业务模型(Model)组件和协作对象数据的处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整。在B/S模式的系统中,用户可以通过Web浏览器通过网络向服务器发送请求。为保持系统各个模块之间的相对独立,方便用户在浏览器上进行操作,web客户端采用模型-视图-控制器(Model-View-Controller,即MVC)设计模式,将数据业务处理与数据的显示分开,当对系统进行二次开发时能更容易的实现新的业务或新类型的数据界面的添加,减少代码的耦合性,使系统的可扩展性大大增强。
图4 基于B/S结构的Web端架构图
1.5 系统功能设计
系统设计是把软件的需求信息转换成用可以用系统呈现展示的过程。通过当今现状的分析和研究,制定出了驾考服务平台的总体设计和架构,这是开发系统的重要基础。在对驾考情况全面分析调查的基础上,制定出驾考服务平台的总体规划。
从系统E-R出发,系统中的用户角色有两种分别是管理员和用户,用户对系统有申请学习功能、查看教练信息功能、相互交流功能,管理员对系统有公告管理功能、管理用户功能、査看教练信息功能。
本驾考平台主要分为五大模块:在线咨询模块,驾考理论题库模块,我要学车模块,经验论坛模块,个人中心模块。
1.5.1 在线咨询模块
网上客服的特点:访客可主动与客服进行实时对话,了解驾考相关的情况和流程。网页咨询对话窗口可以嵌入到当前网页任意位置中,并可对窗口关闭、放大、缩小操作。
1.5.2 驾考理论题库模块
因本项目实现实体教学,因此会在本模块中放进科一和科四的考题,方便学员随时浏览,会提供自测的方式,随机抽题,测试模式有分章节也有套题练习,跟标准考试模式相同,有时间限制等,来让学员更好的掌握。驾考理论题库管理系统为用户提供了一个学习、练习、自测的平台。
1.5.3 我要学车模块
进入本模块后,会让学员根据自己的情况填一些基本信息,比如驾照类型,班级类别,练车的区域,想学科目,对于教练性别的要求,教练驾龄的考虑等。待确定以后会与满足信息的教练,进行快速匹配,发出信息,让在线教练进行抢单,最后学员在抢单的教练中选择一个心仪的教练开始进行实体的教学模式。本模块中主要采用java技术实现,当学员在web端点击我要学车时,采用Linear布局方式,由EditView,Textcar,Ra⁃dioButton等控件布局实现,待学员设定个人需求后,点击我要学车按钮上传学车需求,对立即学车上设置进行监听,获取学车信息并存入系统数据库中。而最主要的功能是教练抢单的实现:教练需要查看现有的学员需求,才能进行抢单操作。教练在实时消息中查看需求列表,当教练满意某学员条件需求时进行抢单,点击对应的抢单按钮时,弹出一个对话框,要求教练进行再次确认,尽量避免查看需求列表时操作不当的失误。如果教练抢单成功,系统会自动弹出对话框提醒教练尽快与学员取得联系。点击联系学员按钮,拨号与学员取得联系。
本模块涉及的筛选法算法如下:基于改进TF-IDF算法的特征选择方法。
TF-IDF算法是信息检索领域内常用的特征表示方法。其基本思想为,若某词条在某一文档中出现的词频TF(Term Fre⁃quency)较高,但包含此词条的文档较少,即词条的文档频率DF (Document Frequency)较低,则认为此词条具有很好的类别区分能力,应赋予较高权重。即:
其中IDF(Inverse Document Frequency)表示倒文档频率。TF和IDF的基本定义如下:
式中,freqij表示第i个词在第j篇文档中出现的次数,Max⁃freqj表示第j篇文档中频度最高的词出现的次数;N为总文档数,ni为包含第i个词的文档数。
但这种传统的TF-IDF算法在应用于文本分类时存在不足。实际上,若某词条在一个类别文档中频繁出现,则说明该词条能够很好代表这个类的特征,应赋予较高的权重。故提出一种针对文本分类的改进TF-IDF算法,改进了IDF公式,即对于某一类文本C,IDF为:
其中,mci为某类C中包含第i个词的文档数。如果除C类外,包含第i个词条的文档数为ki,则公式变为:
从公式中可以看出IDFi的值与mci正相关,与ki负相关。因此,以上公式可以体现出这种改进思想。TF-IDF将用户的倾向表示成关键词向量,并计算出每个关键词在整个喜好中的权重来建立学员的模型进行推荐,配合协同过滤,更能准确的推荐出符合要求的教练。
1.5.4 经验论坛模块
论坛(forum),简单可以理解为一个发帖回帖讨论的综合平台。是实现在互联网上的一种电子信息交互服务系统。它给用户提供一块公共电子版面,每个用户都可以在上发布信息或阐述观点。它是一种交互性强,内容丰富繁多而及时的电子信息交互服务系统,用户在BBS站点上可以获得各种信息服务,比如发布信息、进行讨论、单独交流等等。本模块主要是为了促进学员之间的交流,可以使老成员和新学员可以在一起交流经验,分享个人观点,发布资料,公布信息,解答迷茫的地方,也可以组织活动等,其次涉及的专业问题也会有专业人士来给出相关的答复,此模块可以提高学员的归属感,让学车更有乐趣。本模块采用JForum二次开发技术,它是基于Java平台开发的功能强大且稳定的论坛系统。它提供了抽象的接口、高效的论坛引擎以及方便使用的管理界面。JForum采用FreeMarke作为页面模板引擎,支持包括中文在内的二十几种语言。Fo⁃rum最大的优点是采用BSD开源协议,可以最大限度的进行任何修改和扩展,包括商业用途。
基于jForum二次开发运行流程如下:
1)URL:以.page结尾,通过web.xml配置,会找到net.jforum. JForum这个类,运行里面的init和service等方法。
2)net.jforum.JForum这个类会加载各种配置文件,包括国际化文件,系统配置文件、url与action映射文件等。
3)net.jforum.JForum这个类还会调用URL解析的方法,然后把解析出来的module和action放入parameter中。
4)获得parameter的module和action,根据类名实例化相应类,调用对应的action中的方法。
基于jForum二次开发的步骤:
1)建立数据库。
2)在net.jforum.entities下建立JavaBean(实体类,对应数据库字段,分别加get()、set()方法)。
3)在net.jforum.dao中建立Dao接口。
4)在net.jforum.dao.generic下实现Dao接口,实现类命名规则:GenericXxxxxDao,实现接口方法,jdbc对数据库CRUD。
5)在类net.jforum.dao.DataAccessDriver中加入Dao实例化的抽象方法。
6)在类net.jforum.dao.generic.GenericDataAccessDriver中完成Dao的实例化方法。
7)在net.jforum.view.forum下建立XxAction类。
8)创建模板xx_x.htm,放在/jforum_trydone/WebRoot/tem⁃plates/trydone目录下,应用freemarker
论坛流程执行图如下:
图5 论坛执行流程
1.5.5 个人中心模块
本模块利用ASP.NET,结合当前流行的B/S结构的模式和SQL SERVER数据库来完成系统功能。该模块可以修改个人资料、我的头像、我的积分、隐私筛选、个性化设置以及签到表,在每学习完的时候学员在此打卡,以计算教练是否完成课时并且会记录当天练车的场地和时间方便以后的查看。对于教练的主页,会让教练在每次上课前把时间和练车场地登记好,方便本项目的监督人员实地考察,监督和管理,防止教练弄虚作假,保证学员的切身利益,以学生的利益作为第一位。
图6 修改信息流程
1)管理员信息表(admin):用于记录管理员登录本平台的用户名和密码,该表的主键为管理员姓名,具体设计如表1所示。
表1 管理员信息表
2)学员信息表(Stu):用于记录本平台学员注册用户的基本信息,用户可在平台注册过程中添加用户名、登录密码、姓名、性别,电话等基本信息,还可记录该注册用户的使用次数和差评次数的信息。该表的主键为学员编号,具体设计如表2所示。
表2 学员信息表
3)教练信息表(Teacher):用于记录教练注册的基本信息,用户可在系统注册过程中添加用户名,登陆密码,姓名,性别,手机号,车牌号,驾照号等基本信息,加上平时教学好坏,将会展示教练的使用次数和差评次数等详细信息。该表的主键为教练编号,具体如表3所示。
表3 教练信息表
4)教练授课信息记录表(Sq):用于记录每次学车过程中的基本信息,包括教练编号,学员编号,学车时间,学成地点,完成课时,车牌号等信息。该表的主键为教练编号,具体的设计如表4所示。
表4 教练授课信息记录表
随着互联网的发展,越来越多的人选择在网上寻找自己的所需,对于驾考考生而言也是这样。本文采用的云计算技术和协同过滤算法作为推荐平台使得考生在网络资源上面对教练信息的搜索和锁定在效率和准确性上有很大的提高。现在是一个大数据的时代,需要利用到云计算这样可靠的技术资源来处理海量数据信息。本文就是围绕这一问题,从用户的角度来进行深入研究的。用户所需的就是得到更为准确的信息,找到更适合自己的教练。目前推荐平台的发展正在不断扩大,相信该平台将会得到更多的支持。
[1]王奇,马琳,莫梅骑,等.基于Web的实时在线咨询系统的设计与实现[J].微型电脑应用,2004(8).
[2]陈强,张超.基于Web Service跨平台空间信息服务模型[J].华中科技大学学报:自然科学版,2003(S1).
[3]谭欢.基于SSH架构的代码自动生成的研究[D].北京:大连交通大学,2007.
[4]王海涛,贾宗璞.基于Struts和Hibernate的Web应用开发[J].计算机工程,2011,37(9):112-114.
[5]张曦.基于Java的主流Web开发框架的研究和整合[D].北京:北京工业大学,2008.
[6]高云,崔艳春.SQL Server 2008数据库技术实用教程[M].北京:清华大学出版社,2011.
[7]陈全,邓倩妮.云计算及其关键技术[J].计算机应用,2009(9).
[8]胡慧,王辉.云计算技术现状与发展趋势分析[J].软件导刊, 2009,8(9):3-4.
Driving Test is Recommended Based on Cloud Computing Platform
LI Si1,JIN Si-yuan1,XIAO Xue-mei1,YANG Xue-jia1,YANG Jin1,2
(1.School of Computer Sciences,Leshan Normal University,Leshan 614000,China;2.College of Cybersecurity,Sichuan Univer⁃sity,Chengdu 610065,China)
With the introduction and implementation of the"self-taught straight exam",more and more test-takers are putting themselves in the line of self-study.The report now reports that there is a lot of demand for coaches and a lot of preference. Coach of the different users have different requirements,the user how to choose suits own coach,thus efficiently in-vehicle train⁃ing purpose,so you need to provide personalized services to different users,this is also the focus of the development of the Inter⁃net to research today.This paper studies the recommendation system,and proposes an improved cloud-based driving test recom⁃mendation platform.The introduction of TF-the IDF will users tend to be represented as keyword vector,and calculate the weight of each keyword in the be fond of to build the model to recommend students,cooperate with the collaborative filtering, accurate recommend more conform to the requirements of the coach.
Web;cloud computing;recommend;the data and information;collaborative filtering algorithm
TP399
A
1009-3044(2017)21-0076-04
2017-06-15
国家大学生创新创业项目:基于Web的驾考服务平台(201610649064)(省部级);四川省教育厅重点资助科研项目(No.17ZA0200);四川省学术和技术带头人培养支持经费资助