




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重点实验室开放项目结题报告(第十五期)基于兴趣度的移动旅行路线挖掘系统实现项目编号:zd201415133单位:交通信息与控制实验室指导教师: 项目成员: 实验时间:2014年 11月2015年6月一、 项目名称及主要研究内容1.1项目名称:基于兴趣度的移动旅行路线挖掘1.2主要研究内容:本项目将相关旅游网站、论坛等,利用数据挖掘算法和自然语言处理技术提取相关旅行路线因素,设计出符合用户兴趣度需求的旅游线路安排推荐。主要研究内容包括:(1)利用网络爬虫技术及改进后的fp-tree算法,对旅游点进行格式化信息爬取,并利用数据库进行存储利用。(2)利用java程序设计语言编写相应android客户端,实现用户需求,并传达信息给服务器。(3)服务器搭建,旨在完成用户实时请求需要,实现对android客户端的数据支持。二、 参加学生情况及表现序号姓名学号班级承担主要工作教师评价1物联网1fptree算法的实现2物联网1java服务器的建立3物联网1网络爬虫的实现4物联网1android客户端三、 项目成果设计实现了基于移动互联网旅游路线推荐,本文设计并实现了一种基于频繁模式和兴趣度的旅游路线推荐系统。介绍了使用改进 fp-tree算法进行频繁模式挖掘的步骤,提出了对频繁模式进行排序的简易方法,设计了提高推荐准确性的路线兴趣度计算方法。此外,提供个性化路线筛选功能极大地改善了用户的个性化体验效果。四、 学生撰写部分:李向波的个人总结1在项目中的分工本人在项目中主要负责基于约束树的fp-tree改进算法的实现,通过该算法,对从网页上爬取的路线数据进行挖掘,从而得出最频繁的旅游路线。2查阅资料、方案确定等准备工作通过请教指导老师和查阅相关资料,确定本项目采用改进的fp-tree算法。最初对fp-tree算法并不是很理解,通过查阅图书馆相关资料,并参考网上技术论坛及博客相关文章,深入理解fp-tree算法的思想与原理。但是传统的fp-tree算法并不适用于旅游路线数据的挖掘。因为传统fp-tree算法所挖掘的数据之间并不存在先后顺序的约束,所以只需挖掘出频繁项集即可。而如果采用传统fp-tree算法,所挖掘出的频繁路线中景点顺序会被打乱,二者并不符合实际情况。所以我们在传统fp-tree算法的基础上进行改进,通过构造邻接矩阵,计算出最符合实际情况的旅游路线,从而最终完成旅游路线的挖掘。3项目实施过程描述具体的实现步骤如下:首先利用fp-tree算法对原始数据进行频繁项挖掘,得到无顺序的频繁路线,同时构造邻接矩阵供以后排序使用;然后利用邻接矩阵通过对上一步的路线结果进行排序,并选出置信度最高的路线作为最终路线;最后将挖掘的路线数据保存到mysql数据库中,作为移动app的数据来源。频繁路线挖掘包括频繁模式挖掘和频繁路线生成两个步骤。(1)频繁模式的挖掘:首先构造fp-tree。第一步,第一次扫描数据库,对所有路线包含的景点进行计数并降序排列,并删除频数小于最小支持度的景点,最终得到频繁1项集;第二步,第二次扫描数据库,对于每条路线的景点按照频繁1项集进行排序,并提出频繁1项集中不包含的景点;第三步,根据第一步得到的频繁1项集构造header表,并将第二步得到的结果插入到fp-tree树中。至此fp-tree树构造完成。然后通过基于约束树的递归挖掘算法对fp-tree进行频繁模式的挖掘,得到无顺序的路线挖掘结果。(2)频繁路线生成:由于得到的路线结果是无顺序的,所以并没有实际应用价值,所以要对每条路线所包含的景点重新排序,得到最符合实际的路线结果。频繁路线生成包括构造邻接矩阵和对频繁模式进行排序两个步骤.构造邻接矩阵:通过第一次扫描数据库得到邻接矩阵所包含的项,然后在第二次扫描数据库时,保存原始路线中景点a在景点b之前出现的数据,从而完成邻接矩阵的构造。对频繁模式进行排序:通过构造二叉树,将步骤一得到的频繁模式中的每条路线中的景点进行排列组合,并利用邻接矩阵计算每种排序的置信度,从中选出置信度最高的一条路线作为最终结果。至此频繁路线生成完成。、最后将挖掘结果保存到mysql数据库中,并根据支持度和置信度对挖掘结果进行综合排序,对原始数据的挖掘工作便完成了。4最终成果完成旅游路线挖掘系统改进fp-tree算法的编写,可以成功对原始旅游路线进行挖掘得到频繁旅游路线。数据挖掘结果如下:图1 数据挖掘后的结果5个人收获体会由于之前从未做过数据挖掘方面的项目,所以最初着手编写这个程序的时候根本无从下手,所以前期做了大量的学习工作。在查阅大量相关资料后,终于理解了fp-tree算法的思想。但是在着手编写程序的时候也遇到了很多意想不到的困难。在开始写程序的时候感觉思路还是很简单的,但是在实现的过程中,每一个小功能的实现都要编写大量的代码。再加上最初并没有对程序有个整体的规划和把握,最终导致的结果就是功能虽然实现了,但是代码比较臃肿,复用性比较差,所以还存在很多地方需要改进。在本次重点实验室的项目中,收获的不仅仅是完成了一个项目,更多的是自己完成复杂任务的能力得到了提升,同时程序编写能力也得到了进步。由于之前没有接触过需要处理大量数据的比较复杂的算法,所以这个项目对我来说具有一定的挑战性,但这也正式它的意义所在。赵扬的个人总结1.项目组分工情况本人主要负责系统各模块间交互接口和mysql数据库的表结构的定义,提出可行的设计方案。构建了java服务器实现了系统上下层之间的交互。2.查阅资料、方案确定等准备工作最开始对于服务器并没有任何的概念可言,一开始只是觉得网络服务器才算是服务器,所以查阅资料的侧重点也就是在java的网络编程上面,但很长时间并没有成果。最后碰巧看到一个网站,上面介绍服务器分为两种,一种是网络服务器,一种是应用服务器。应用服务器并不是基于浏览器实现的,就是一个服务器可以满足客户端的请求。现在才终于知道原来我们要搭建的是一个应用服务器。所以改变方向,才慢慢有了进展。至此,我终于对整个系统的整体架构有了比较好的认识,开始给各个组员分工。我还找到了一个非常好的教学网站慕课网(),上面对于很多知识有比较详细的讲解,非常的不错。然后我就开始拼命地学习各种知识,包括java的多线程、网络通信、文件的输入输出,连接数据库的中间件jdbc和mysql数据库的相关操作,先把每一个部分都弄得比较熟之后,就开始进行功能实现了。3.项目实施过程描述首先是路径表的建立,路径表中共有四个字段(分别为路径id、路径所在城市、路径含有的景点数目和路径的详细信息),网络爬虫所爬出的数据将会存放在旧的路径表中,通过改进后fp-tree算法,经过频繁向挖掘和邻接矩阵的处理,挖掘出的路径存放在新的路径表中。然后是服务器的连接数据库,此项目用jdbc连接java服务器和mysql数据库。jdbc(java data base connectivity)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。利用jdbc连接数据库的步骤是:第一应该加载驱动程序。第二应获取数据库的连接,实现上述两步之后就可以用java.sql包下面的statement类操纵数据库了。最后就是服务器的搭建,首先利用serversocket类建立一个实例,并把端口设置为30000。然后利用此类的accept()函数接收客户端的请求,当接收到客户端请求之后就新建一个线程runnable单独处理客户端的请求,返回客户端所需要的信息。此项目开发用到了mvc开发的方法,首先是模型层,根据数据库表结构建立了java模型类,用于存放数据库返回的信息。然后是视图层,视图层是给用户看的界面,并不参与控制数据库,只是模型层和控制层之间的中间层,最后是控制层,控制层主要负责操纵数据库,并把数据库的信息传递给其它层。4. 最终成果图2 数据表结构图3 jdbc连接数据库图4 android server主函数图5 服务器运行图5.个人收获与体会通过这次重点实验室项目,我收获颇丰。首先肯定是专业知识有所提高,不管是对于c/s服务器模式还是数据库的连接与操作都有了明显的提升。从刚开始的什么都不懂,到现在把这个东西编出来,还是有那么一点成就感的,这个感觉在平时是没有的。然后是自己的学习能力和自我解决问题的能力有了很大的提升,这些东西都是在大学课程中学习不到但却终身受益的。另外,通过本次重点实验室项目的完成,我更认识到了团队协作的重要性,首先是要对整体的系统有一个很直观的认识,对系统所实现的功能,用到的东西必须要熟悉,才能把整个系统分割成几个模块交到组员手中。系统分割并不是简简单单的分隔开,而必须要大家一起商量好上下层的服务与接口,最后才能把各个部分整合在一起,才能保证整个项目合理有序地进行下去。在项目完成的过程中,每个人或多或少都会有一些问题,不管是通过自己努力,或者问学长学姐,或者问组里的人,对自己的能力总归是一种提升。希望还可以参加多个这样的项目锻炼自己。孙策的个人总结1、项目组分工情况本人主要负责网络爬虫设计,抓取旅游网站景点信息,并存储到数据库中。2、查阅资料、方案确定等准备工作当在项目前期确定小组各成员项目分工后,我就着手在图书馆查阅关于网络爬虫以及与之对应的数据库相关配置操作的相关资料,最后经过材料的综合比对,并结合网络上相关辅助资料和csdn论坛上针对不同网络爬虫实现方式的实现难易以及实现效率,最后决定采用java程序设计语言对网络爬虫进行相关实现。对于第二部分数据库将会采用mysql对爬去数据进行存储。mysql数据库使用范围较高,服务支持较好。3、项目实施过程描述网络爬虫是一个自动提取网页的程序,其基本流程如下图:图6 网络爬虫结构图包含网络接入,依据url进行多线程下载相关数据,最后进入存储模块。依据以上流程,利用java实现简单的网络爬虫,总共有6个类,先介绍下每个类的功能:downloadpage.java:下载此超链接的页面源代码;functionutils.java:提供不同的静态方法,包括:页面链接正则表达式匹配,获取url链接的元素,判断是否创建文件,获取页面的url并将其转换为规范的url,截取网页网页源文件的目标内容;hrefofpage.java:获取页面源代码的超链接;urldatahanding.java:整合各个给类,实现url到获取数据到数据处理类;urlqueue.java:未访问url队列;visitedurlqueue.java:已访问过的url队列。通过以上6个类的功能实现可以实现对于设定url的网页信息抓取工作,并与mysql数据库连接存储信息。4、最终成果可以利用java编写的网页爬虫工具对相关旅游站点进行景点线路信息抓取,并可以存储在建立的mysql数据库中。下图为查表部分内容。图7 网络爬虫得到的原始数据5、个人收获与体会通过这次重点实验室项目,我个人收获很多。这种收获并不仅仅是专业知识的收获,更是编程能力和解决问题能力的提升。例如,在解决网络爬虫问题时,可实现的语言有很多,但是java自带有网络请求以及相关获取的类库,可以在实现上更便捷。另外,通过本次重点实验室项目的完成,我更认识到了团队协作的重要性,这个项目如果一个人完成工作量相对较大,我们团队合作,将本项目分割成不同模块,分工进行,但由于前端和后台需要接口衔接起到承接传输数据的作用,因此就要在动手前做好协商数据结构,接口方法等一系列事宜。这样才能保证整个项目合理有序地进行下去。另外,在项目进行过程中,每个人都会遇到各种问题,但小组成员互相帮助,集思广益,互相促进,解决问题。因此本项目的完成也充分体现了一个团队团结协作的重要性。娄旸的个人总结1.项目组分工实现基于兴趣度旅游路线挖掘系统的手机客户端,主要功能为景点查询,路线搜索,景点攻略查询,以及用户兴趣度收集。2.前期准备工作前期学习android各个主流控件的使用方法,通过去图书馆借阅图书,上网查资料的方法学习。学习android socket网络编程,以及android 传递数据(全局变量)的方法。并申请百度地图开发者api,学习百度地图开发。3.项目实施过程3.1景点查询:从服务器端下载数据之后通过关键词检索出城市以及景点,显示给用户以供用户选择。3.2路线搜索:运用百度地图的路线规划功能,将景点之间的路线通过驾车,步行以及公交三个方式来供用户选择。实现景点与景点之间的路线规划。3.3景点攻略查询:用户通过点击景点路线查询该条旅游路线的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 面试官必看:上班面试题目及答案精 编
- 高血压健康管理知识试题及答案
- 植物检疫试题含参考答案
- 三级(新员工)班组级安全培训考核试题及答案
- 心电图讲解课件
- 2025年消毒灭菌知识试题及答案
- 2025年安全生产标准化建设基础试题及答案
- 2025年防护、隔离、抗菌等知识考试题库附完整答案
- 广东省东莞市2024-2025学年高一下学期期末考试 地理含答案
- 职场必 备:自律面试问题及答案精 编
- JJG 693-2011可燃气体检测报警器
- (新版)网约车考试题库(全国题库)-500题
- 移动通信课件(全)全书教学教程完整版电子教案最全幻灯片
- 药监系统官方培训 王似锦 非无菌药品的控制菌检查与不可接受微生物的评估
- 2022年版小学数学新课程标准测试题含答案【附新课标解读】
- 三花电子膨胀阀C51程序
- 智慧羊肚菌种植示范基地解决方案
- 麻醉与生理止血课件
- 聚谷氨酸项目建议书范文
- 模块化低压配电柜MODAN6000样本_图文
- 钣金件品质控制计划
评论
0/150
提交评论