国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

濟(jì)南哪家公司做網(wǎng)站微信指數(shù)是搜索量嗎

濟(jì)南哪家公司做網(wǎng)站,微信指數(shù)是搜索量嗎,濰坊 網(wǎng)站建設(shè),歐陽(yáng)娜娜自創(chuàng)品牌文章目錄 基于Python旅游數(shù)據(jù)采集可視化分析推薦系統(tǒng)一、項(xiàng)目概述二、項(xiàng)目說(shuō)明三、開(kāi)發(fā)環(huán)境四、功能實(shí)現(xiàn)五、系統(tǒng)頁(yè)面實(shí)現(xiàn)用戶登錄注冊(cè)系統(tǒng)首頁(yè)數(shù)據(jù)操作管理價(jià)格與銷量分析旅游城市和景點(diǎn)等級(jí)分析旅游數(shù)據(jù)評(píng)分情況分析旅游數(shù)據(jù)評(píng)論情況分析旅游景點(diǎn)推薦Django系統(tǒng)后臺(tái)管理 六、…

文章目錄

  • 基于Python旅游數(shù)據(jù)采集可視化分析推薦系統(tǒng)
    • 一、項(xiàng)目概述
    • 二、項(xiàng)目說(shuō)明
    • 三、開(kāi)發(fā)環(huán)境
    • 四、功能實(shí)現(xiàn)
    • 五、系統(tǒng)頁(yè)面實(shí)現(xiàn)
      • 用戶登錄注冊(cè)
      • 系統(tǒng)首頁(yè)
      • 數(shù)據(jù)操作管理
      • 價(jià)格與銷量分析
      • 旅游城市和景點(diǎn)等級(jí)分析
      • 旅游數(shù)據(jù)評(píng)分情況分析
      • 旅游數(shù)據(jù)評(píng)論情況分析
      • 旅游景點(diǎn)推薦
      • Django系統(tǒng)后臺(tái)管理
    • 六、結(jié)語(yǔ)

基于Python旅游數(shù)據(jù)采集可視化分析推薦系統(tǒng)

一、項(xiàng)目概述

在互聯(lián)網(wǎng)時(shí)代,各行各業(yè)的人們都在尋求增長(zhǎng)點(diǎn),人們的日常生活越來(lái)越離不開(kāi)互聯(lián)網(wǎng)。以旅游信息為例,線下大量的各種旅游信息基本只會(huì)出現(xiàn)在旅游會(huì)上,但是現(xiàn)如今,人們?cè)絹?lái)越重視時(shí)間成本,所以越來(lái)越多的年輕人在網(wǎng)上查找自己想要查找的旅游就業(yè)信息。然而,在互聯(lián)網(wǎng)信息和海量數(shù)據(jù)源混合的情況下,如何快速精確的找到自己想要的數(shù)據(jù)是一個(gè)值得探討的問(wèn)題。

本系統(tǒng)主要針對(duì)解決獲取旅游信息滯后、參加線下旅行社和人工檢索時(shí)間成本高等問(wèn)題,運(yùn)用網(wǎng)絡(luò)爬蟲(chóng)信息技術(shù)設(shè)計(jì)思想,實(shí)現(xiàn)了一個(gè)基于Python的旅游信息推薦系統(tǒng)。本系統(tǒng)以Python語(yǔ)言為基礎(chǔ),使用 requests爬蟲(chóng)對(duì)去哪兒旅游信息源進(jìn)行抓取,針對(duì)網(wǎng)頁(yè)信息編寫(xiě)抽取規(guī)則,對(duì)旅游信息進(jìn)行必要的過(guò)濾和提取,使用MySql對(duì)旅游信息進(jìn)行數(shù)據(jù)存儲(chǔ)。然后使用 Python 開(kāi)源web框架 Django進(jìn)行系統(tǒng)搭建,基于旅游信息采用機(jī)器學(xué)習(xí)協(xié)同過(guò)濾推薦算法完成對(duì)用戶的旅游信息推薦,完成整個(gè)爬取以及數(shù)據(jù)檢索到成功進(jìn)行旅游推薦的網(wǎng)頁(yè)端操作展示。

二、項(xiàng)目說(shuō)明

基于python旅游采集數(shù)據(jù)分析可視化推薦系統(tǒng)是基于Django框架開(kāi)發(fā)的一個(gè)旅游信息采集和推薦的應(yīng)用。該系統(tǒng)通過(guò)爬蟲(chóng)技術(shù)從各個(gè)旅游網(wǎng)站抓取旅游信息,并利用推薦算法對(duì)用戶進(jìn)行個(gè)性化推薦,同時(shí)提供可視化展示界面。

以下是該系統(tǒng)的主要功能和組成部分的介紹:

旅游信息采集:系統(tǒng)通過(guò)編寫(xiě)爬蟲(chóng)程序,定期從各大旅游網(wǎng)站抓取旅游景點(diǎn)、酒店、機(jī)票等相關(guān)信息,包括價(jià)格、評(píng)價(jià)、位置等。這些采集到的數(shù)據(jù)會(huì)被保存到數(shù)據(jù)庫(kù)中供后續(xù)使用。

用戶注冊(cè)與登錄:用戶可以注冊(cè)自己的賬號(hào),并通過(guò)登錄來(lái)獲取個(gè)性化推薦和享受更多功能。

個(gè)性化推薦:系統(tǒng)會(huì)根據(jù)用戶的歷史瀏覽記錄、收藏記錄以及其他行為數(shù)據(jù),利用推薦算法生成個(gè)性化推薦結(jié)果。推薦算法使用協(xié)同過(guò)濾、內(nèi)容過(guò)濾方法,根據(jù)用戶的興趣和偏好為其推薦最相關(guān)的旅游信息。

可視化展示界面:系統(tǒng)會(huì)將采集的旅游信息以可視化方式展示給用戶,包括地圖標(biāo)記、圖片展示、價(jià)格對(duì)比等功能。用戶可以通過(guò)地圖選擇感興趣的地區(qū),查看該地區(qū)的旅游景點(diǎn)、酒店等信息。

用戶交互和反饋:系統(tǒng)提供用戶評(píng)價(jià)、評(píng)論和收藏等功能,用戶可以對(duì)自己的旅游經(jīng)歷進(jìn)行評(píng)價(jià),同時(shí)也可以保存自己喜歡的旅游信息以便日后查看。

后臺(tái)管理:系統(tǒng)提供一個(gè)后臺(tái)管理界面,管理員可以對(duì)用戶信息、采集的數(shù)據(jù)、推薦算法參數(shù)等進(jìn)行管理和配置。

三、開(kāi)發(fā)環(huán)境

開(kāi)發(fā)環(huán)境版本/工具
PYTHON3.9.0
開(kāi)發(fā)工具PyCharm2021.2.1
操作系統(tǒng)Windows 10
內(nèi)存要求16GB
瀏覽器Firefox
數(shù)據(jù)庫(kù)MySQL 8.0.26
數(shù)據(jù)庫(kù)工具Navicat 15 for MySQL
項(xiàng)目技術(shù)棧Python語(yǔ)言、Django框架、MySQL數(shù)據(jù)庫(kù)、requests網(wǎng)絡(luò)爬蟲(chóng)技術(shù)、機(jī)器學(xué)習(xí)算法、BootStrap、數(shù)據(jù)可視化

四、功能實(shí)現(xiàn)

系統(tǒng)爬蟲(chóng)部分核心代碼

  def spiderMain(self,resp,province):respJSON = resp.json()['data']['sightList']for index,travel in enumerate(respJSON):print('正在爬取該頁(yè)第%s數(shù)據(jù)' % str(index + 1))time.sleep(2)detailAddress = travel['address']discount = travel['discount']shortIntro = travel['intro']price = travel['qunarPrice']saleCount = travel['saleCount']try:level = travel['star'] + '景區(qū)'except:level = '未評(píng)價(jià)'title = travel['sightName']cover = travel['sightImgURL']sightId = travel['sightId']# ================================= 詳情爬取detailUrl = self.detailUrl % sightIdrespDetailXpath = etree.HTML(self.send_request(detailUrl).text)score = respDetailXpath.xpath('//span[@id="mp-description-commentscore"]/span/text()')if not score:score = 0star = 0else:score = score[0]star = int(float(score)*10)commentsTotal = respDetailXpath.xpath('//span[@class="mp-description-commentCount"]/a/text()')[0].replace('條評(píng)論','')detailIntro = respDetailXpath.xpath('//div[@class="mp-charact-intro"]//p/text()')[0]img_list = respDetailXpath.xpath('//div[@class="mp-description-image"]/img/@src')[:6]# ================================= 評(píng)論爬取commentSightId = respDetailXpath.xpath('//div[@class="mp-tickets-new"]/@data-sightid')[0]commentsUrl = self.commentUrl % commentSightIdcomments = []try:commentsList = self.send_request(commentsUrl).json()['data']['commentList']for c in commentsList:if c['content'] != '用戶未點(diǎn)評(píng),系統(tǒng)默認(rèn)好評(píng)。':author = c['author']content = c['content']date = c['date']score = c['score']comments.append({'author': author,'content': content,'date': date,'score': score})except:comments = []resultData = []

在這里插入圖片描述

基于用戶的協(xié)同過(guò)濾推薦算法,用于根據(jù)用戶的評(píng)分?jǐn)?shù)據(jù)推薦其可能喜歡的其他景點(diǎn)。

基于用戶的協(xié)同過(guò)濾算法部分核心代碼:

在這里插入圖片描述

def user_bases_collaborative_filtering(user_id,user_ratings,top_n=20):
# def user_bases_collaborative_filtering(user_id, user_ratings, top_n=3):# 獲取目標(biāo)用戶的評(píng)分?jǐn)?shù)據(jù)target_user_ratings = user_ratings[user_id]# 初始化一個(gè)字段,用于保存其他用戶與目標(biāo)用戶的相似度得分user_similarity_scores = {}# 將目標(biāo)用戶的評(píng)分轉(zhuǎn)化為numpy數(shù)組target_user_ratings_list = np.array([rating for _ , rating in target_user_ratings.items()])# 計(jì)算目標(biāo)用戶與其他用戶之間的相似度得分for user,ratings in user_ratings.items():if user == user_id:continue# 將其他用戶的評(píng)分轉(zhuǎn)化為numpy數(shù)組user_ratings_list = np.array([ratings.get(item,0) for item in target_user_ratings])# 計(jì)算余弦相似度similarity_score = cosine_similarity([user_ratings_list],[target_user_ratings_list])[0][0]user_similarity_scores[user] = similarity_score# 對(duì)用戶相似度得分進(jìn)行降序排序sorted_similar_user = sorted(user_similarity_scores.items(),key=lambda x:x[1],reverse=True)# 選擇 TOP N 個(gè)相似用戶喜歡的景點(diǎn) 作為推薦結(jié)果recommended_items = set()for similar_user,_ in sorted_similar_user[:top_n]:recommended_items.update(user_ratings[similar_user].keys())# 過(guò)濾掉目標(biāo)用戶已經(jīng)評(píng)分過(guò)的景點(diǎn)recommended_items = [item for item in recommended_items if item not in target_user_ratings]return recommended_items
  1. user_bases_collaborative_filtering 函數(shù)接受三個(gè)參數(shù):
    • user_id: 目標(biāo)用戶的ID。
    • user_ratings: 包含用戶評(píng)分信息的字典,其中鍵是用戶ID,值是包含景點(diǎn)及其評(píng)分的字典。
    • top_n: 選擇推薦結(jié)果的前N個(gè)景點(diǎn),默認(rèn)為20。
  2. target_user_ratings = user_ratings[user_id]:獲取目標(biāo)用戶的評(píng)分?jǐn)?shù)據(jù),即目標(biāo)用戶對(duì)各個(gè)景點(diǎn)的評(píng)分。
  3. user_similarity_scores = {}:初始化一個(gè)空字典,用于保存其他用戶與目標(biāo)用戶的相似度得分。
  4. target_user_ratings_list = np.array([...]):將目標(biāo)用戶的評(píng)分轉(zhuǎn)換為 NumPy 數(shù)組,以便后續(xù)計(jì)算余弦相似度。
  5. 遍歷 user_ratings 中的每個(gè)用戶,計(jì)算目標(biāo)用戶與其他用戶之間的相似度得分:
    • 將其他用戶的評(píng)分轉(zhuǎn)化為 NumPy 數(shù)組。
    • 使用余弦相似度計(jì)算兩個(gè)用戶之間的相似度得分。
    • 將相似度得分存儲(chǔ)在 user_similarity_scores 字典中。
  6. sorted_similar_user = sorted(user_similarity_scores.items(),key=lambda x:x[1],reverse=True):對(duì)用戶相似度得分進(jìn)行降序排序,得到一個(gè)包含用戶ID和相似度得分的元組列表。
  7. recommended_items = set():初始化一個(gè)集合,用于保存推薦的景點(diǎn)。
  8. 遍歷排序后的相似用戶列表,選擇前 top_n 個(gè)相似用戶喜歡的景點(diǎn),將這些景點(diǎn)添加到 recommended_items 集合中。
  9. recommended_items = [item for item in recommended_items if item not in target_user_ratings]:過(guò)濾掉目標(biāo)用戶已經(jīng)評(píng)分過(guò)的景點(diǎn),得到最終的推薦結(jié)果。
  10. 返回 recommended_items,即推薦給目標(biāo)用戶的景點(diǎn)列表。

這個(gè)函數(shù)接受目標(biāo)用戶ID、用戶評(píng)分字典以及要返回的推薦結(jié)果數(shù)量作為參數(shù)。它計(jì)算目標(biāo)用戶與其他用戶的相似度得分,然后選擇相似度最高的用戶喜歡的景點(diǎn)作為推薦結(jié)果。

– 獲取目標(biāo)用戶的評(píng)分?jǐn)?shù)據(jù)

– 初始化一個(gè)字典,用于保存其他用戶與目標(biāo)用戶的相似度得分

– 將目標(biāo)用戶的評(píng)分轉(zhuǎn)化為numpy數(shù)組

– 計(jì)算目標(biāo)用戶與其他用戶之間的相似度得分(余弦相似度)

– 對(duì)用戶相似度得分進(jìn)行降序排序

– 選擇TOP N個(gè)相似用戶喜歡的景點(diǎn)作為推薦結(jié)果

– 過(guò)濾掉目標(biāo)用戶已經(jīng)評(píng)分過(guò)的景點(diǎn)

五、系統(tǒng)頁(yè)面實(shí)現(xiàn)

啟動(dòng)項(xiàng)目,在終端窗口輸入命令,這里我設(shè)置的端口在8091:

python manage.py runserver 8091

在這里插入圖片描述

用戶登錄注冊(cè)

在這里插入圖片描述

系統(tǒng)首頁(yè)

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

數(shù)據(jù)操作管理

在這里插入圖片描述

價(jià)格與銷量分析

在這里插入圖片描述

旅游城市和景點(diǎn)等級(jí)分析

在這里插入圖片描述

旅游數(shù)據(jù)評(píng)分情況分析

在這里插入圖片描述

旅游數(shù)據(jù)評(píng)論情況分析

在這里插入圖片描述

旅游景點(diǎn)推薦

在這里插入圖片描述

Django系統(tǒng)后臺(tái)管理

http://127.0.0.1:8091/admin

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

六、結(jié)語(yǔ)

基于python旅游采集數(shù)據(jù)分析可視化推薦系統(tǒng)的目標(biāo)是為用戶提供便捷的旅游信息獲取和個(gè)性化推薦,并通過(guò)可視化展示使用戶更好地了解和選擇適合自己的旅游產(chǎn)品。它可以幫助用戶節(jié)省時(shí)間和精力,提高旅行的滿意度。

需項(xiàng)目資料/商業(yè)合作/交流探討等可以添加下面?zhèn)€人名片,后續(xù)有時(shí)間會(huì)持續(xù)更新更多優(yōu)質(zhì)內(nèi)容,感謝各位的喜歡與支持!

http://aloenet.com.cn/news/41668.html

相關(guān)文章:

  • 怎么做wordpress主題模板福州seo網(wǎng)絡(luò)推廣
  • 刷qq會(huì)員自己做網(wǎng)站杭州正規(guī)引流推廣公司
  • 石家莊做網(wǎng)站建設(shè)的公司排名百度公司的發(fā)展歷程
  • 免費(fèi)網(wǎng)站制作公司優(yōu)化網(wǎng)站排名軟件
  • 女子醫(yī)院網(wǎng)站設(shè)計(jì)怎么做欒城seo整站排名
  • 用rp怎么做網(wǎng)站按鈕下拉菜單免費(fèi)發(fā)廣告的網(wǎng)站大全
  • 網(wǎng)站建設(shè)排期什么是網(wǎng)站推廣?
  • 福州網(wǎng)站建設(shè)哪家好班級(jí)優(yōu)化大師免費(fèi)下載安裝
  • 政府網(wǎng)站html5媒體平臺(tái)
  • 動(dòng)態(tài)網(wǎng)站商品瀏覽怎么做seo流量排名軟件
  • 注冊(cè)深圳公司的好處惠州抖音seo策劃
  • 網(wǎng)站后臺(tái)無(wú)法審核怎么把網(wǎng)站排名排上去
  • 近期新冠感染情況吉林網(wǎng)站seo
  • 阿里云域名怎樣做網(wǎng)站百度直播推廣
  • 電商網(wǎng)站建設(shè)流程推廣方案是什么
  • 建設(shè)銀行論壇網(wǎng)站廈門(mén)seo搜索引擎優(yōu)化
  • xp做網(wǎng)站服務(wù)器seo創(chuàng)業(yè)
  • asp.net網(wǎng)站開(kāi)發(fā)流程手機(jī)維修培訓(xùn)班學(xué)校
  • 合肥企業(yè)做網(wǎng)站app制作費(fèi)用一覽表
  • 網(wǎng)站改版原則惠城網(wǎng)站設(shè)計(jì)
  • 什么軟件做高級(jí)網(wǎng)站網(wǎng)絡(luò)推廣企業(yè)
  • 微信小程序開(kāi)發(fā)技術(shù)棧c盤(pán)優(yōu)化大師
  • 網(wǎng)站關(guān)鍵詞推廣方案國(guó)產(chǎn)長(zhǎng)尾關(guān)鍵詞拘挖掘
  • 張家口網(wǎng)站開(kāi)發(fā)電子商務(wù)網(wǎng)站有哪些?
  • 網(wǎng)站面包屑導(dǎo)航設(shè)計(jì)即位置導(dǎo)航青島網(wǎng)絡(luò)科技公司排名
  • 互聯(lián)網(wǎng)裝修服務(wù)平臺(tái)成都網(wǎng)站優(yōu)化及推廣
  • 想找人做網(wǎng)站 要怎么選擇如何用百度平臺(tái)營(yíng)銷
  • 深圳市做網(wǎng)站有哪些公司建站推廣網(wǎng)站
  • .org做商業(yè)網(wǎng)站跟我學(xué)seo
  • 網(wǎng)站建設(shè)頁(yè)面設(shè)計(jì)規(guī)格百度指數(shù)與百度搜索量