旅游景点数据分析项目说明

本项目主要对河南省旅游景点数据进行分析和可视化展示,并基于数据构建智能推荐系统。

文件说明

数据采集部分

spider/spider.py

主要功能:爬取去哪儿网的景点数据

  • 使用 Selenium 和 BeautifulSoup 进行网页爬取
  • 支持多城市数据采集
  • 采集内容包括:
    • 景点名称(中英文)
    • 攻略数量
    • 评论数量
    • 评分
    • 排名
    • 到访人数
    • 景点简介
    • 景点封面图
    • 所属省市
    • 链接地址
  • 数据保存为CSV和日志文件
  • 支持断点续爬
spider/config.py

主要功能:配置爬虫参数

  • 定义河南省各城市的爬取配置
  • 包含城市信息:
    • 省份名称
    • 城市名称(中英文)
    • 目标URL
    • 爬取页数
  • 支持18个河南省主要城市

推荐系统部分

Recommend/main.py

主要功能:推荐系统的主程序入口

  • 数据加载和预处理
  • 特征准备
  • 创建用户-景点交互矩阵
  • 训练和评估三种推荐模型:
    • 基于内容的推荐
    • 协同过滤推荐
    • 混合推荐
  • 模型评估和结果展示
  • 示例推荐生成
Recommend/models.py

主要功能:实现三种推荐算法模型

  1. ContentBasedRecommender(基于内容的推荐系统)

    • 使用景点特征进行推荐
    • 支持特征选择和标准化
    • 使用余弦相似度计算景点相似性
    • 批处理处理大规模数据
  2. CollaborativeFiltering(协同过滤推荐系统)

    • 基于SVD算法
    • 支持用户-景点评分预测
    • 可进行增量学习
    • 提供个性化推荐
  3. HybridRecommender(混合推荐系统)

    • 结合随机森林和稀疏矩阵
    • 融合用户行为和景点特征
    • 支持批量处理
    • 内存优化设计

数据分析和可视化部分

1. 景点分布.py

主要功能:生成河南省景点分布热力图

  • 使用 pandas 读取景点数据(GBK编码)
  • 过滤无效数据(star为0或00的记录)
  • 统计各城市景点数量
  • 使用 pyecharts 的 Map 组件创建热力图
  • 设置分段式视觉映射,展示不同区间的景点数量
  • 支持地图缩放和拖动
  • 输出文件:show/河南省景点分布热力图.html
2. 景点城市分布占比(扇形图).py

主要功能:展示各城市景点数量的占比情况

  • 使用 pandas 读取和处理数据
  • 统计各城市的景点数量
  • 使用 pyecharts 的 Pie 组件创建扇形图
  • 设置图表样式和布局(标题、图例位置等)
  • 添加数据标签显示具体数量
  • 输出文件:show/城市分布占比扇形图.html
3. 热门景点 Top10.py

主要功能:展示景点数量最多的前10个城市

  • 使用 pandas 读取和处理数据
  • 过滤无效评分数据
  • 统计并排序各城市景点数量
  • 使用 pyecharts 的 Bar 组件创建横向柱状图
  • 设置坐标轴标签和标题
  • 输出文件:show/热门景点Top10.html
4. 景点评分占比.py

主要功能:分析景点评分的分布情况

  • 使用 pandas 读取和处理数据
  • 定义评分区间:0-20、20-40、40-60、60-70、70-80、80-90、90-100
  • 统计各评分区间的占比
  • 使用 pyecharts 的 Pie 组件创建环形图
  • 设置图表样式(内外半径、标签格式等)
  • 显示每个区间的百分比
  • 输出文件:show/景点评分占比环形图.html
5. 景点评分分布直方图.py

主要功能:展示景点评分的频数分布

  • 使用 pandas 读取和处理数据
  • 过滤空值数据
  • 使用 pyecharts 的 Histogram 组件创建直方图
  • 设置图表样式(宽度、高度)
  • 添加坐标轴标签
  • 输出文件:show/评分分布直方图.html
6. 景点评论数量Top10.py

主要功能:展示评论数量最多的前10个景点

  • 使用 pandas 读取和处理数据
  • 过滤评论数量为空的数据
  • 按评论数量降序排序并选取前10名
  • 使用 pyecharts 的 Bar 组件创建柱状图
  • 设置图表样式和标签
  • 输出文件:show/评论数量Top10.html
7. 景点评论数量与评分的关系.py

主要功能:分析景点评论数量与评分之间的相关性

  • 使用 pandas 读取和处理数据
  • 过滤评论数量和评分为空的数据
  • 使用 pyecharts 的 Scatter 组件创建散点图
  • X轴表示评论数量,Y轴表示评分
  • 通过散点分布展示两者的关系
  • 输出文件:show/评论数量与评分关系.html

数据文件

  • 数据源文件:data/quneer_henan.csv(GBK编码)
  • 包含景点信息:
    • 景点名称(中英文)
    • 攻略数量
    • 评论数量
    • 评分
    • 排名
    • 到访人数
    • 景点简介
    • 景点封面图
    • 所属省市
    • 链接地址

输出目录

  • 所有生成的可视化图表保存在 show 目录下
  • 文件格式为HTML,可在浏览器中交互查看

技术栈

  • Python
  • 数据采集
    • Selenium:网页自动化
    • BeautifulSoup:HTML解析
    • Chrome WebDriver
  • 数据处理和机器学习
    • pandas:数据处理和分析
      • 数据读取和清洗
      • 数据分组和统计
      • 区间划分
      • 排序和筛选
    • scikit-learn:
      • RandomForestRegressor:随机森林回归
      • StandardScaler:特征标准化
      • SelectKBest:特征选择
    • surprise:协同过滤算法库
      • SVD:奇异值分解
  • 数据可视化
    • pyecharts:
      • Map:地图可视化
      • Pie:扇形图和环形图
      • Bar:柱状图
      • Histogram:直方图
      • Scatter:散点图
  • 文件操作
    • os:文件和目录操作
    • csv:CSV文件读写
    • json:JSON数据处理
  • 内存优化
    • gc:垃圾回收
    • scipy.sparse:稀疏矩阵处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐