No description
Find a file
2026-09-02 15:57:24 +08:00
big_data_analysis.py 唐山旅游舆情分析及景点推荐系统 - 项目代码提交 2026-09-02 15:57:24 +08:00
README.md 唐山旅游舆情分析及景点推荐系统 - 项目代码提交 2026-09-02 15:57:24 +08:00
tangshan-travel-ui.zip 唐山旅游舆情分析及景点推荐系统 - 项目代码提交 2026-09-02 15:57:24 +08:00
tangshan-travel.zip 唐山旅游舆情分析及景点推荐系统 - 项目代码提交 2026-09-02 15:57:24 +08:00
tangshan_travel.sql 唐山旅游舆情分析及景点推荐系统 - 项目代码提交 2026-09-02 15:57:24 +08:00

唐山旅游舆情分析及景点推荐系统

一、项目简介

本项目是一个基于 Web 的大数据分析系统,聚焦唐山旅游业,集成了景点展示、舆情监控、大数据分析和智能推荐等功能。系统通过爬取携程网真实用户评论数据,运用 PySpark 大数据引擎和 jieba + TF-IDF + LDA 文本分析算法,对唐山 5A/4A 景点的 7220 条真实评论进行深度挖掘分析。

二、技术栈

后端

  • Java 17
  • Spring Boot 3.2.5
  • MyBatis 3.0.3
  • MySQL 9.x
  • JWTjjwt 0.12.5 身份认证

前端

  • Vue 3.5Composition API
  • Element Plus 2.14
  • ECharts 6.1 数据可视化
  • Vue Router 4.6
  • Pinia 4.0 状态管理
  • Axios 1.20 HTTP 请求
  • Vite 8.2 构建工具

大数据分析

  • PySpark 3.5 大数据处理引擎
  • jieba 中文分词
  • scikit-learn TF-IDF 关键词提取
  • gensim LDA 主题模型

三、项目结构

├── tangshan-travel/              # 后端项目
│   ├── src/main/java/com/tangshan/travel/
│   │   ├── controller/           # 控制器public + admin
│   │   │   ├── PublicDashboardController.java
│   │   │   ├── PublicSentimentController.java
│   │   │   ├── PublicAnalysisController.java    # 大数据分析接口
│   │   │   └── admin/             # 后台管理接口
│   │   ├── service/              # 业务逻辑层
│   │   ├── mapper/               # MyBatis 数据访问层
│   │   ├── entity/               # 实体类
│   │   ├── vo/                   # 视图对象
│   │   └── common/               # 通用工具Result 统一响应等)
│   ├── src/main/resources/
│   │   ├── mapper/               # MyBXML 映射文件
│   │   └── application.yml       # 配置文件
│   └── pom.xml                   # Maven 依赖
│
├── tangshan-travel-ui/           # 前端项目
│   ├── src/
│   │   ├── api/                  # API 接口封装
│   │   ├── components/           # 公共组件BaseChart 等)
│   │   ├── layouts/              # 布局PublicLayout + AdminLayout
│   │   ├── router/               # 路由配置
│   │   ├── views/
│   │   │   ├── public/           # 公共页面
│   │   │   │   ├── Dashboard.vue         # 首页大屏
│   │   │   │   ├── SpotList.vue          # 景点列表
│   │   │   │   ├── Sentiment.vue         # 舆情分析
│   │   │   │   ├── Analysis.vue          # 大数据分析
│   │   │   │   └── Plan.vue              # 行程规划
│   │   │   └── admin/            # 后台管理页面
│   │   │       ├── Stats.vue             # 数据分析
│   │   │       ├── SpotManage.vue        # 景点管理
│   │   │       └── ReviewManage.vue      # 评论管理
│   │   └── utils/                # 工具函数
│   └── package.json
│
├── big_data_analysis.py          # 大数据分析脚本PySpark + jieba + TF-IDF + LDA
└── tangshan_travel.sql           # 数据库脚本(建库 + 建表 + 数据)

四、环境要求

环境 版本要求
JDK 17+
Node.js 18+
MySQL 8.0+
Python 3.10+
Maven 3.8+

五、安装与运行

1. 导入数据库

# 登录 MySQL
mysql -u root -p

# 执行 SQL 脚本(导入建库建表 + 全部数据)
source tangshan_travel.sql;

数据库名:tangshan_travel,包含 7220 条真实评论、22 个景点、8 个 LDA 主题等。

2. 启动后端

cd tangshan-travel

# 修改数据库连接(如有需要)
# 文件src/main/resources/application.yml
# spring.datasource.url / username / password

# Maven 编译运行
mvn spring-boot:run

后端启动后访问:http://localhost:8080/api

3. 启动前端

cd tangshan-travel-ui

# 安装依赖
npm install

# 开发模式启动
npm run dev

前端启动后访问:http://localhost:5173

4. 运行大数据分析(可选)

如需重新运行 PySpark + jieba + TF-IDF + LDA 分析:

# 安装 Python 依赖
pip install pyspark jieba scikit-learn gensim pymysql openpyxl

# 执行分析脚本
python big_data_analysis.py

分析结果自动存入 MySQL 的 word_frequencytfidf_keywordlda_topicanalysis_overview 表。

六、功能模块

公共页面(无需登录)

页面 路径 说明
首页大屏 /dashboard 核心指标、热度排行、舆情滚动、热门推荐
景点列表 /spots 分页浏览、筛选、排序
景点详情 /spots/:id 详情、评论列表、情感分析
舆情分析 /sentiment 情感分布、关键词、趋势
大数据分析 /analysis PySpark+jieba+TF-IDF+LDA 可视化
行程规划 /plan 智能行程推荐

后台管理(需登录)

页面 路径 说明
数据分析 /admin/stats 评论趋势、区县/类别分布
景点管理 /admin/spots 景点 CRUD
评论管理 /admin/reviews 评论 CRUD、情感修正

七、管理员账号

用户名 密码
admin 123456

后台登录地址:http://localhost:5173/admin/login

八、数据库说明

表名 说明 数据量
admin 管理员账号 1 条
scenic_spot 景点信息 22 条
review 评论数据(携程真实评论) 7,220 条
sentiment_stat 情感统计 18 条
word_frequency jieba 分词词频统计 27,560 条
tfidf_keyword TF-IDF 关键词 270 条
lda_topic LDA 主题分析结果 8 个主题
analysis_overview 分析总览 1 条

九、数据来源

所有评论数据均来自携程官网ctrip.com真实用户评价通过 API 接口爬取,经去重处理后存入数据库。涵盖唐山 18 个 5A/4A 景区,包括清东陵、月坨岛、滦州古城、河头老街、曹妃甸湿地等。