旅游推荐数据分析可视化系统——讯飞AI助手(超级v2版本)+论文+数据+源码

发布于:2025-05-10 ⋅ 阅读:(7) ⋅ 点赞:(0)

旅游推荐数据分析可视化系统——讯飞AI助手(超级v2版本)+论文+数据+源码

项目介绍

本项目是一个基于Django框架开发的旅游推荐数据分析可视化系统,集成了讯飞AI大模型助手功能。系统通过对去哪儿网的旅游数据进行采集、分析和可视化,为用户提供个性化的旅游景点推荐服务,同时通过数据可视化展示各类旅游数据的分析结果,帮助用户更好地了解旅游市场趋势和景点特点。

系统功能特点

1. 用户管理功能

  • 用户注册与登录
  • 个人信息管理(修改个人资料、密码等)
  • 用户浏览历史记录

2. 数据可视化功能

  • 景点地理分布热力图
  • 景点评分与销量排行榜
  • 景点价格分布分析
  • 用户评论数量统计
  • 省份景点数量分布
  • 用户活跃度时间分布

3. 景点推荐功能

  • 基于协同过滤的个性化推荐
  • 基于浏览历史的智能推荐
  • 主题推荐(亲子游、文化游、自然风光游)
  • 热门景点推荐

4. 文本分析与可视化

  • 景点介绍词云图生成
  • 用户评论词云图分析
  • 评论情感分析

5. 讯飞AI助手功能

  • 智能问答服务
  • 旅游咨询与建议

技术架构

前端技术

  • HTML/CSS/JavaScript
  • Bootstrap框架
  • ECharts图表库
  • ApexCharts图表库

后端技术

  • Python 3.x
  • Django Web框架
  • MySQL数据库
  • 讯飞星火大模型API

数据分析与可视化

  • NumPy/Pandas:数据处理
  • Matplotlib/Seaborn:绘图
  • Jieba:中文分词
  • WordCloud:词云生成

数据库设计

系统主要包含以下数据表:

  1. TravelInfo表:存储景点基本信息

    • 景点名称、等级、折扣、销量
    • 省份、热度、地址、简介
    • 详情URL、评分、价格、评论数
    • 详细介绍、图片列表、用户评论、封面图
  2. User表:存储用户信息

    • 用户名、密码、性别
    • 地址、头像、个人简介
    • 创建时间
  3. UserBrowseHistory表:存储用户浏览历史

    • 用户ID(外键)
    • 景点ID(外键)
    • 浏览时间

推荐算法详解

系统实现了多种推荐算法,以提供个性化的旅游推荐服务:

1. 基于用户的协同过滤推荐

def user_bases_collaborative_filtering(user_id, user_ratings, top_n=3):
    # 获取目标用户的评分数据
    target_user_ratings = user_ratings[user_id]

    # 初始化用户相似度得分字典
    user_similarity_scores = {}

    # 将目标用户的评分转化为numpy数组
    target_user_ratings_list = np.array([
        rating for _, rating in target_user_ratings.items()
    ])

    # 计算目标用户与其他用户之间的相似度得分
    for user, ratings in user_ratings.items():
        if user == user_id:
            continue
        # 将其他用户的评分转化为numpy数组
        user_ratings_list = np.array([ratings.get(item,0) for item in target_user_ratings])
        # 计算余弦相似度
        similarity_score = cosine_similarity([user_ratings_list],[target_user_ratings_list])[0][0]
        user_similarity_scores[user] = similarity_score

    # 对用户相似度得分进行降序排序
    sorted_similar_user = sorted(user_similarity_scores.items(), key=lambda x:x[1], reverse=True)

    # 选择 TOP N 个相似用户喜欢的景点作为推荐结果
    recommended_items = set()
    for similar_user, _ in sorted_similar_user[:top_n]:
        recommended_items.update(user_ratings[similar_user].keys())

    # 过滤掉目标用户已经评分过的景点
    recommended_items = [item for item in recommended_items if item not in target_user_ratings]

    return recommended_items

算法步骤说明:

  1. 获取目标用户的评分数据
  2. 计算目标用户与其他用户之间的相似度(使用余弦相似度)
  3. 找出与目标用户最相似的N个用户
  4. 将这些相似用户喜欢的景点(但目标用户尚未评分的)作为推荐结果

2. 基于浏览历史的推荐

系统通过分析用户的浏览历史,识别用户偏好的省份和评分阈值,推荐符合用户口味的景点:

def getBrowseBasedRecommendation(user_id, limit=10):
    # 获取用户浏览过的景点
    browsed_travels = UserBrowseHistory.objects.filter(user_id=user_id)
    
    # 统计用户偏好的省份
    province_count = {}
    for travel in browsed_travels_info:
        if travel.province not in province_count:
            province_count[travel.province] = 0
        province_count[travel.province] += 1
    
    # 获取前3个最受欢迎的省份
    favorite_provinces = []
    if province_count:
        sorted_provinces = sorted(province_count.items(), key=lambda x: x[1], reverse=True)
        favorite_provinces = [p[0] for p in sorted_provinces[:3]]
    
    # 计算平均评分
    avg_score = 计算用户浏览景点的平均评分
    
    # 根据用户喜欢的省份和评分阈值筛选景点
    # 返回符合条件的景点列表

3. 主题推荐

系统还提供了几种主题推荐功能:

  • 亲子游推荐:分析景点描述中包含"亲子"、“家庭”、"儿童"等关键词的景点
  • 文化游推荐:分析景点描述中包含"文化"、“历史”、"博物馆"等关键词的景点
  • 自然风光推荐:分析景点描述中包含"自然"、“风景”、“山”、"海"等关键词的景点

讯飞AI助手集成

系统集成了讯飞星火大模型API,提供智能问答和旅游咨询服务:

# 讯飞星火API配置
appid = "xxx"
api_secret = "xxx"
api_key = "xxx"
domain = "lite"  # 使用Lite版本
Spark_url = "wss://spark-api.xf-yun.com/v1.1/chat"

数据分析与可视化效果

系统对旅游数据进行了多维度分析,包括:

  1. 词云分析:通过jieba分词和WordCloud生成景点介绍和用户评论的词云图
def getIntroCloudImg(targetImgSrc, resImgSrc):
    travelList = TravelInfo.objects.all()
    text = ''
    stopwords = ['的', '是', '在', '这', '那', '他', '她', '它', '我', '你','和','等','为','有','与']
    for travel in travelList:
         text += travel.detailIntro

    cut = jieba.cut(text)
    newCut = []
    for tex in cut:
        if tex not in stopwords:
            newCut.append(tex)

    string = ' '.join(newCut)
    
    # 生成词云图
  1. 地理分布:通过ECharts实现全国景点地理分布可视化

  2. 评分与销量分析:展示不同景点的评分和销量数据,帮助用户识别高品质景点

  3. 价格分析:分析景点价格分布,帮助用户了解旅游市场价格行情

系统部署指南

Mac部署

  1. 安装Python环境(建议Python 3.8+)
  2. 安装MySQL数据库
  3. 克隆项目到本地
  4. 安装依赖:pip install -r requirements.txt
  5. 创建MySQL数据库:qunarinfos
  6. 修改数据库配置:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'qunarinfos',
            'USER': "root",
            'PASSWORD': 'your_password',
            'HOST': "localhost",
            'port': '3306'
        }
    }
    
  7. 迁移数据库:
    python manage.py makemigrations
    python manage.py migrate
    
  8. 启动服务:python manage.py runserver

Windows部署

  1. 安装Python环境(建议Python 3.8+)
  2. 安装MySQL数据库
  3. 克隆项目到本地
  4. 在虚拟环境中安装依赖:pip install -r requirements.txt
  5. 创建MySQL数据库:qunarinfos
  6. 修改数据库配置:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'qunarinfos',
            'USER': "root",
            'PASSWORD': 'your_password',
            'HOST': "localhost",
            'port': '3306'
        }
    }
    
  7. 修改词云生成中的字体路径为Windows系统字体路径
  8. 迁移数据库并启动服务

技术创新点

  1. 多维度数据可视化:系统通过多种图表类型(地图、柱状图、折线图、词云等)对旅游数据进行可视化展示,使数据分析结果更加直观。

  2. 混合推荐算法:结合协同过滤、内容分析和浏览历史等多种推荐策略,提高推荐准确性。

  3. 讯飞AI大模型集成:集成讯飞星火大模型API,为用户提供智能问答服务,增强用户体验。

  4. 用户行为分析:通过记录和分析用户的浏览历史,实现个性化推荐。

  5. 文本挖掘技术:对景点介绍和用户评论进行分词和词云分析,挖掘有价值的信息。

作者信息

B站: 万能程序员

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

在这里插入图片描述
b站视频:https://www.bilibili.com/video/BV1tAVezxED6

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到