赞
踩
[毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。
互联网改变了世界,在互联网时代,各行各业的人们都在寻求增长点,人们的日常生活越来越离不开互联网。以旅游信息为例,线下大量的各种旅游信息基本只会出现在旅游会上,但是现如今,人们越来越重视时间成本,所以越来越多的年轻人在网上查找自己想要查找的旅游就业信息。然而,在互联网信息和海量数据源混合的情况下,如何快速精确的找到自己想要的数据是一个值得探讨的问题。
本系统主要针对解决获取旅游信息滞后、参加线下旅行社和人工检索时间成本高等问题,运用网络爬虫信息技术设计思想,实现了一个基于Python的旅游信息推荐系统。本系统以Python计算机设计语言为基础,使用 requests对去哪儿旅游信息源进行抓取,针对网页信息编写抽取规则,对旅游信息进行必要的过滤和提取,使用MySql对旅游信息进行数据存储。然后使用 Python 开源web框架 Django进行系统搭建,基于旅游信息采用协同过滤推荐算法完成对用户的旅游信息推荐,完成整个爬取以及数据检索到成功进行旅游推荐的网页端操作展示。
项目截图
1、价格与销量分析
2、城市与景点等级分析
3、首页—数据概况
4、评分情况分析
5、景点推荐---------协同过滤推荐算法
6、景点数据管理
7、后台管理
8、数据采集页面
import numpy as np from sklearn.metrics.pairwise import cosine_similarity import os import json import django os.environ.setdefault('DJANGO_SETTINGS_MODULE','travel.settings') django.setup() from app.models import TravelInfo user_ratings = { "admins": {"广州塔": 5}, "user2": {"广州塔": 5, "三亚蜈支洲岛旅游区": 2}, } def getUser_ratings(): user_ratings = {} for travel in TravelInfo.objects.all(): comments = json.loads(travel.comments) for com in comments: try: com['userId'] except: continue if user_ratings.get(com['userId'],-1) == -1: user_ratings[com['userId']] = {travel.title:com['score']} else: user_ratings[com['userId']][travel.title] = com['score'] return user_ratings def user_bases_collaborative_filtering(user_id,user_ratings,top_n=20): # 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 if __name__ == '__main__': user_id =1 user_ratings = getUser_ratings() recommended_items = user_bases_collaborative_filtering(user_id,user_ratings)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/389529
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。