当前位置:   article > 正文

计算机毕业设计吊打导师Hadoop+Spark知识图谱酒店推荐系统 酒店评论情感分析 酒店价格预测系统 酒店可视化 酒店爬虫 neo4j知识图谱 深度学习 SpringBoot Vue.js 人工智能

计算机毕业设计吊打导师Hadoop+Spark知识图谱酒店推荐系统 酒店评论情感分析 酒店价格预测系统 酒店可视化 酒店爬虫 neo4j知识图谱 深度学习 SpringBoot Vue.js 人工智能
  • 选题依据(包括项目研究的背景、研究或应用的意义、国内外研究或应用现状,附主要参考文献)

(一)研究背景及意义

民宿起源于欧美乡村,而民宿在中国出现最早的是在台湾垦丁,并在台湾不断的发展兴盛,随着中国大陆经济以及旅游业的蓬勃发展,民宿的发展迅速[1]。随着民宿数量不断增加有些问题也随之而出,首先民宿行业准入机制不明确,导致一些不符合条件的机构或个人也进入民宿行业,他们往往缺乏专业的管理和运营能力,服务质量低下,用户体验差[2]。其次,民宿的监管机制不健全,导致一些民宿存在安全隐患、卫生问题、消防问题等,这些问题可能会对客人的生命财产安全造成威胁。此外,民宿的竞争激烈,一些民宿为了吸引客人,采用低价策略,导致整个行业的利润水平下降,这也会影响民宿的服务质量和用户体验[3]。

随着旅游业的快速发展和人们对于旅行体验的不断追求,民宿作为一种新的住宿选择方式,得到了越来越多人的喜爱。然而,随之而来的问题是如何更好地管理和分析民宿数据,提供相关的决策支持和可视化分析,以促进民宿行业的可持续发展,大数据技术的应用为民宿行业提供了更多的机会和挑战[4]。本研究旨在基于大数据技术设计并实现一个民宿数据可视化分析系统,以提供全面的数据分析和决策支持,让民宿的各个维度的数据指标更加全面生动的展示出来,帮助民宿经营者和旅游相关决策者更好地理解和分析民宿市场,提高民宿的运营效率和用户满意度。帮助消费者提前了解民宿的市场环境,对民宿的选择提供参考作用[5]。

(二)国内外研究现状

1、国外研究现状

国外民宿行业相较于中国起步较早,很早就进行民宿行业的研究。Jianzhuang等学者研究发现,民宿周围环境、经营者管理的情况和经营管理者与消费者之间的关系会影响消费者对民宿的选择倾向[6]。Dinesh等人用实验的方法探究房主特征对消费者信任的影响,发现房主的头像和声誉得分对消费者的选择倾向有显著影响,即会影响消费者是否选择体验其服务[7]。Adamia等人采用随机抽样的研究方法调查约翰内斯堡都市,以探究服务质量感知与客户期望之间的联系,其研究结果表明,为了提升服务质量,民宿经营者需在设施和环境管理上注重舒适性,并改变服务方式,这些举措不仅能够满足客户的期望,还能够提高客户对服务质量的感知[8]。

2、国内研究现状

在知网数据库中检索关键词“民宿”后利用知网的总体趋势分析功能得到自2014年后关于民宿的相关研究正在逐年线性递增。王春英和陈宏民将是否拥有厨房作为虚拟变量引入模型,得到厨房正向显著影响共享民宿的价格的结论,还提出地理位置因素影响房源定价[9]。张延宇通过文本分析和情感分析等技术探讨Airbnb网站评论信息中消费者的情感倾向,并利用多重线性回归的方法,分析了用户评论及房源的相关特征对共享民宿预订的影响[10]。王佳慧通过对大学生的旅游动机、旅游目的地的感知、旅游决策的分析,构建大学生旅游消费行为影响因素模型,最后得出月生活费是大学生旅游决策最大的影响因素[11]。

(三)参考文献

[1] 莫彩云. 阳朔民宿旅游发展调查研究[D].广西师范大学,2023.DOI:10.27036/d.cnki.ggxsu.2023.001684.

[2] 赵采云.北京市共享民宿销量的影响因素及空间格局差异性分析[D].东北财经大学,2023.DOl:10.27006/d.cnki.gdbcu.2022.000986.

[3] 穆敏杰.SD民宿社交媒体营销策略研究[D]云南财经大学,2023.DOl:10.27455/d.cnki.gycm c.2023.001050.

[4] 马妍.共享经济发展背景下民宿业发展对策研究[J].商业文化,2022(07):114-115.

[5] 文君.基于大数据分析的高端民宿消费行为研究[D],郑州大学,2022.DOl:10.27466/d.cnki.g zzdu.2021.003666.

[6] Jianzhuang Zheng,Lingyan Huang.Characterizing the Spatiotemporal Patterns and Key Determinantsof Homestay Industry Agglomeration in Rural China Using Multi Geospatial Datasets[J].Sustainability.2022,72(42).

[7] Dinesh VALLABH.Profiling Tourists in the Bed and Breakfast Establishments in Port Alfred, Eastern Cape[J].Journal of Tourism Intelligence and Smartness,2019,1(1).

[8] Adamiak,C.,2018,“Mapping Airbnb Supply in European Cities”,Annals of Tourism Research,Vol.71,PP67-71.

[9] 王春英,陈宏民.共享短租平台住宿价格及其影响因素研究一基于小猪短租网站相关数据的分析[J].价格理论与实践,2018,(6):14-17.

[10] 张延宇.共享经济背景下在线民宿预订评价影响因素分析[D].哈尔滨工业大学,2017.

[11] 王佳慧.大学生旅游消费行为现状分析[D].河北经贸大学,2018.

[12]张艳丽,吴淮北.Hive数据仓库在Hadoop大数据环境下数据的导入与应用[J].电脑编程技巧与维护,2022(12):97-99.DOI:10.16184/j.cnki.comprg.2022.12.006.

[13] 赵海国.Ajax技术支持下的ECharts动态数据实时刷新技术的实现[J].电子技术,2018,47(03):25-27+57.

  • 设计或研究内容、预期目标及拟解决的关键问题(此部分为重点阐述内容)。

(一)研究内容

本次研究主要是对某民宿租赁网站上的某城市的相关民宿数据进行获取、清洗、分析然后可视化的过程。数据获取将利用Python网络爬虫的Scrapy框架、Selenium、Xpath解析库等相关技术。民宿数据的清洗、存储、分析分别采用Hadoop的MapReduce、HDFS、Hive数据仓库,可以高效地处理大规模数据集,提高数据处理效率,并具有可扩展性、灵活性和可定制性等优点[12]。数据的分析展示使用ECharts图表库,根据需求设计各类图表,并提供交互式操作,使用户能够灵活地进行数据分析和展示[13]。首先利用Python编程语言,结合第三方爬虫Scrapy框架,编写爬虫程序,实现对民宿的民宿描述、位置、价格、面积、户数、类型、床数、宜住人数、评分、点评数等数据的定向抓取。获取数据后接下来进行数据的预处理操作,在Linux虚拟机上开启已经搭建好Hadoop集群的服务器并启动Hadoop集群,将爬取的数据以文件的形式上传至HDFS中,并编写MapReduce程序对爬取的数据实现数据清洗操作。接下来将已清洗的数据加载至Hive数据仓库中并使用Hive自带的类SQL语言对数据进行数据分析,例如描述性统计、区域对应民宿均价、区域对应民宿评分均值、区域对应民宿平均户数、用户评价关键词等词频统计等。最后引入ECharts图表库,使用HTML、CSS和JavaScript等前端技术,设计各类图表。该系统具有数据获取及时准确、存储高效、分析结果直观等特点,可为民宿行业决策者提供更准确的数据支持和分析结果。

  1. 用户登录

实现用户登录功能模块的设计,用户需要使用正确的账户密码才能登录到系统中,主要功能为用户的注册、登录、修改密码。

  1. 民宿基本属性分析

对某城市的民宿情况进行具体的分析、例如对民宿的价格、点评数、床位数、区域平均价格、区域平均评分、区域民宿数量等民宿的基本数据。

  1. 用户评价分析

对用户在民宿网站上的评价进行分析,对评价进行分析可以了解用户的需求和期望,从而改进服务质量和水平,提高用户满意度。其他用户可以通过评价了解民宿的设施、环境、服务、卫生等方面的具体情况,从而做出更明智的预订决策。

  1. 民宿特点分析

为了提高房源的知名度和曝光率、吸引用户消费,房东在房源网页上都会标注特征描述,对标注的数据进行提取分析,例如民宿的基本设施和特点、民宿的特色和个性化服务、民宿的质量和用户口碑。针对房东用什么服务、准备何种特殊设施、特殊地理位置等来吸引消费者进行分析。

  1. 民宿位置分析

民宿的选址往往取决于经济、交通、景点几个方面,对房源网页上爬取的交通、景点、餐饮、商超等位置信息进行分析,得出哪个位置的民宿密度较高,以及该区域的民宿分布特点.

  1. 可视化展示

把分析获得的数据利用可视化工具进行可视化操作结合前端页面实现展示效果。

(二)预期目标

提升客户体验:通过对民宿数据的分析可视化,可以了解客户评价、投诉情况等信息,从而及时发现问题并采取措施改进。此外,可以根据客户喜好和需求,提供个性化的服务和增值服务,提升客户体验。

提供决策参考:通过对民宿数据的分析可视化,可以为管理层提供决策依据。例如,可以根据数据分析结果,判断是否需要扩大或调整民宿的规模,选择合适的营销渠道,或者进行资源的合理配置。

(三)拟解决的关键问题

1、网站为了预防恶意爬虫都会布置反爬虫技术,这要求在使用爬虫技术时应该遵从法律规定,做到友好访问,不破坏、不妨碍网站的正常运行。

2、数据质量问题,民宿数据的准确性和完整性可能存在问题。解决方案是获得数据后对特殊的数据通过数据清洗和预处理提高数据质量。

3、系统性能问题,大数据量和复杂的计算可能导致系统性能下降。解决方案是通过系统优化和资源调度解决性能问题。

三、研究方案(包括有关方法、技术路线、实验手段、关键技术等)。

(一)有关方法

1、信息研究方法

信息研究方法是利用信息来研究系统功能的一种科学研究方法。信息方法就是根据信息论、系统论、控制论的原理,通过对信息的收集、传递、加工和整理获得知识,并应用于实践,以实现新的目标。在本研究中利用从民宿网站上获取的数据进行去重、清洗、分析,最后再利用可视化工具展示出来。

2、文献研究法

本研究通过查阅中国知网数据库,对民宿与大数据技术等主题相关的文献进行遴选、整理、归纳和总结,为科学系统地认知和理解民宿的发展和营销以及大数据技术奠定基础。

(二)技术路线

(三)实验手段

1、 数据获取模块:利用Python编程语言,结合第三方爬虫框架,编写爬虫程序,实现对民宿数据字段的定向抓取。

2、数据存储模块:利用Hadoop自带的HDFS,将爬取的数据以文件形式上传至HDFS,利用Hadoop的MapReduce对数据进行数据清洗,最后将清洗后的数据以json文件形式再次上传至HDFS中,进行存储。

3、数据清洗模块:利用Hadoop自带的的MapReduce编程模型,编写MapReduce程序对上传到HDFS中数据进行数据清洗操作。

4、数据分析模块:利用Hadoop自带的Hive数据仓库,编写Hive类SQL编程,对以清洗的数据进行数据分析。

5、 数据可视化模块:引入ECharts图表库,使用HTML、CSS和JavaScript等前端技术,设计各类图表。

(四)、关键技术

1、数据的爬取用到Python的Scrapy框架、Selenium、Xpath解析库等相关技术。

2、数据的存储用到Hadoop集群的HDFS,该数据库免费开源易于使用、且性能出色、方便后期存储大量数据和进行数据的提取处理。

3、数据的清洗用到了Hadoop集群中的MapReduce编程模型,利用MapReduce进行数据清洗可以大大提高数据的质量和准确性,为后续的数据分析和应用提供可靠的基础。

4、数据分析用到Hadoop集群的Hive数据仓库,操作接口采用类SQL语法,提供快速开发的能力。

5、数据的可视化利用HTML、CSS和JavaScript等前端技术,引入ECharts图表库设计各类图表。

核心算法代码分享如下:

  1. #Flink连接HDFS上面的CSV文件 使用Flink_SQL分析完入表
  2. ## 启动hadoop
  3. ## cd /data/hadoop/sbin
  4. ## sh /data/hadoop/sbin/start-all.sh
  5. ## 启动hive
  6. ## cd /data/hive
  7. ## nohup hive --service metastore &
  8. ## nohup hive --service hiveserver2 &
  9. import os
  10. from pyflink.common import Row
  11. from pyflink.table import (EnvironmentSettings, TableEnvironment, TableDescriptor, Schema,
  12. DataTypes, FormatDescriptor)
  13. from pyflink.table.expressions import lit, col
  14. from pyflink.table.udf import udtf
  15. env_settings = EnvironmentSettings.in_streaming_mode()
  16. table_env = TableEnvironment.create(env_settings)
  17. jars = []
  18. for file in os.listdir(os.path.abspath(os.path.dirname(__file__))):
  19. if file.endswith('.jar'):
  20. file_path = os.path.abspath(file)
  21. jars.append(file_path)
  22. str_jars = ';'.join(['file:///' + jar for jar in jars])
  23. table_env.get_config().get_configuration().set_string("pipeline.jars", str_jars)
  24. # table_env.get_config().get_configuration().set_float('taskmanager.memory.network.fraction',0.8)
  25. # table_env.get_config().get_configuration().set_string('taskmanager.memory.network.min','8gb')
  26. # table_env.get_config().get_configuration().set_string('taskmanager.memory.network.max','16gb')
  27. table_env.get_config().get_configuration().set_string('parallelism.default','1')
  28. #先读取hadoop_hdfs上的CSV文件
  29. table_env.execute_sql(
  30. """
  31. create table ods_rooms(
  32. `title` string COMMENT '标题',
  33. `addr` string COMMENT '地址',
  34. `fno` string COMMENT '民宿网站编号',
  35. `room_type` string COMMENT '房源类型',
  36. `price` int COMMENT '房源类型',
  37. `hu_type` string COMMENT '户型',
  38. `rent_type` string COMMENT '出租类型',
  39. `bed_type` string COMMENT '床型',
  40. `beds` int COMMENT '总床数',
  41. `peoples` int COMMENT '可住人数',
  42. `washs` int COMMENT '独立卫生间数量',
  43. `mianji` int COMMENT '面积',
  44. `fapiao` string COMMENT '发票是否提供',
  45. `good_rate` int COMMENT '好评率',
  46. `score` double COMMENT '综合评分',
  47. `wszk` double COMMENT '卫生状况',
  48. `fwtd` double COMMENT '服务态度',
  49. `tpwh` double COMMENT '图片吻合',
  50. `sszh` double COMMENT '设施装潢',
  51. `city_cn` string COMMENT '城市名称中文',
  52. `city_en` string COMMENT '城市名称英文',
  53. `url` string COMMENT '网站页面地址'
  54. ) WITH(
  55. 'connector' = 'filesystem',
  56. 'path' ='hdfs://bigdata:9000/minsu2024/rooms/rooms.csv',
  57. 'format' = 'csv'
  58. )
  59. """
  60. )
  61. #设置下沉到mysql的表
  62. table_env.execute_sql(
  63. """
  64. create table tables02(
  65. `room_type` string primary key ,
  66. `num` bigint
  67. ) WITH(
  68. 'connector' = 'jdbc',
  69. 'url' = 'jdbc:mysql://bigdata:3306/hive_minsu',
  70. 'table-name' = 'tables02',
  71. 'username' = 'root',
  72. 'password' = '123456',
  73. 'driver' = 'com.mysql.jdbc.Driver'
  74. )
  75. """
  76. )
  77. #数据分析并且导入
  78. #result=table_env.sql_query("select * from ods_zymk limit 10 ")
  79. table_env.execute_sql("""
  80. insert into tables02
  81. select room_type,count(1) num
  82. from ods_rooms
  83. group by room_type
  84. order by num desc
  85. limit 10
  86. """).wait()
  87. #print("表结构",result.get_schema())
  88. #print("数据检查",result.to_pandas())

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/572526
推荐阅读
相关标签
  

闽ICP备14008679号