No description
- Python 100%
| big_data_analysis.py | ||
| README.md | ||
| tangshan-travel-ui.zip | ||
| tangshan-travel.zip | ||
| tangshan_travel.sql | ||
唐山旅游舆情分析及景点推荐系统
一、项目简介
本项目是一个基于 Web 的大数据分析系统,聚焦唐山旅游业,集成了景点展示、舆情监控、大数据分析和智能推荐等功能。系统通过爬取携程网真实用户评论数据,运用 PySpark 大数据引擎和 jieba + TF-IDF + LDA 文本分析算法,对唐山 5A/4A 景点的 7220 条真实评论进行深度挖掘分析。
二、技术栈
后端
- Java 17
- Spring Boot 3.2.5
- MyBatis 3.0.3
- MySQL 9.x
- JWT(jjwt 0.12.5) 身份认证
前端
- Vue 3.5(Composition 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_frequency、tfidf_keyword、lda_topic、analysis_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 景区,包括清东陵、月坨岛、滦州古城、河头老街、曹妃甸湿地等。