旅游推荐系统毕业设计总结(包含旅游信息爬取、算法应用和旅游推荐系统实现)
哇塞,大學本科四年的時光就這樣結束了,雖然做畢設的整個過程并不是特別煎熬,也沒有像別人一樣熬夜寫代碼,但是通過畢設我確實了解很多計算機相關知識,現在進行一個簡單的總結:
最近更新這個系統,具體頁面展示在這一片博客:
旅游推薦系統更新版本_#Amark的博客-CSDN博客
整個推薦模型的設計和實現的大體結構如下:
通過從數據庫或csv文件中獲取數據源,首先把數據進行數據清洗、數據集成、數據規約和模型鑒定,緊接著將數據與對應模式庫的規則進行模式匹配,從而選擇合適的算法進行模型訓練和學習,并進行算法評估和對新出現的數據進行存儲和學習,在上述過程中對所有操作進行日志管理和檢驗是否具備可操作權限,最后輸出用戶所期望的數據信息和內容。該模型能應用在景點分類、經費計算、路徑規劃、酒店推薦、特征提取、美食推薦。
目錄
了解基于django的web開發
學會了python的基本使用,包含其中的numpy、pandas、jieba、sqlite、re等各式各樣的庫
開始接觸算法的應用和創新,在畢設設計到了TF-IDF算法、樸素貝葉斯分類、蟻群算法
學會了網絡爬蟲,本次畢設使用的是beautifulsoup4v?
接觸了數據挖掘、基于內容的推薦
現在目錄上的章節如果有時間會進行詳細的文章編寫,目前暫時只完成了網絡爬蟲部分。
了解基于django的web開發
由于本次在研究中需要對模型的應用進行一個更好的可視化展示效果,我做了兩個簡單的開發界面,第一個是旅游界面的推薦,第二個是推薦后得到的結果。其具體Django教程在:快速入門Django開發教程(旅游推薦系統實現教程)
學會了python的基本使用,包含其中的numpy、pandas、jieba、sqlite、re等各式各樣的庫
自從使用了python以后,才發現python是真的很好用哈,基本可以使用python進行編程了。
開始接觸算法的應用和創新,在畢設設計到了TF-IDF算法、樸素貝葉斯分類、蟻群算法
這些算法還是真的神奇,佩服數學的神奇!
學會了網絡爬蟲,本次畢設使用的是beautifulsoup4
第一次爬蟲額,成功的爬取到了攜程網的酒店、景點、美食信息。
其中本次爬蟲的主要思想是:首先是找到攜程網url的編寫規律,然后根據規律使用beautifulsoup4對所需的html語言中的信息提取,最后就是封裝處理。
如下是我爬取美食的代碼,貌似景點和酒店已經我寫的代碼已經爬不了了。其具體代碼在使用python爬取攜程網旅游信息(包含景點、酒店、美食)
# -*- coding: utf-8 -*- import requests import io from bs4 import BeautifulSoup as BS import time import re"""從網上爬取數據"""headers = { "Origin": "https://piao.ctrip.com", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36", } places=["beijing1","shanghai2","changsha148","sanya61","chongqing158","hongkong38","chengdu104","haerbin151", "xian7","guangzhou152","hangzhou14"] placenames=["北京","上海","長沙","三亞","重慶","香港","成都","哈爾濱","西安","廣州","杭州"]places=["changsha148"] placenames=["長沙"]base="https://you.ctrip.com/fooditem/"; base2="https://you.ctrip.com"; requestlist=[]for j in range(len(places)): #爬取對應的特色菜requestlist.append({"url":base+places[j]+".html","place":placenames[j]})for i in range(2,2):tmp=base+places[j]+"/s0-p"+str(i)+".html"requestlist.append({"url":tmp,"place":placenames[j]}); #對應的url地址和所查詢的位置 print(requestlist) l=[] count=1; for i in range(len(requestlist)):response = requests.get(requestlist[i]["url"], headers=headers)#print(response)html=response.text#print(html)soup=BS(html,'html.parser')vs=soup.find_all(name="div",attrs={"class":"rdetailbox"})print("len(vs)",len(vs))for j in range(len(vs)):print("正在打印的條數:",j)try:#獲取子網頁鏈接地址href=vs[j].find(name="a",attrs={"target":"_blank"}).attrs["href"];#print("href",href)# 再次請求子網頁,獲取景點詳細信息res = requests.get(base2+href, headers=headers)print("當前訪問的網址:",base2+href)with open("3.html","w",encoding="utf-8") as f:f.write(res.text)soupi = BS(res.text,"html.parser") #該網頁的html代碼#print(soupi)vis = soupi.find_all(name="li",attrs={"class":"infotext"}); #獲取此時的dom文件位置所在#print(vis)introduce=[]for i in range(len(vis)):introduce.append(vis[i].get_text())imgs=[];imglinks=soupi.find_all(name="a",attrs={"href":"javascript:void(0)"})#print(imte)# print(imglinks)# print(type(imglinks))#for img in imte:#imgs.append(img.attrs["src"])tmp={};tmp["id"]=count;tmp["name"]=vs[j].find(name="a",attrs={"target":"_blank"}).string;tmp["name"]=tmp["name"].replace(" ","").replace("\n","");tmp["introduce"]=introducetmp["img"]=imglinkstmp["city"]=requestlist[i]["place"]count=count+1;l.append(tmp);time.sleep(1);except Exception as e:print(e)pass#print ("打印tmp",tmp)# with open("datap/"+tmp["name"]+".pk",'wb') as f:# pickle.dump(tmp,f);with io.open("/Users/hujinhong/PycharmProjects/untitled5/food/changsha/"+tmp["name"]+".txt",'w',encoding="utf-8") as f:f.write(str(tmp)) #print(l) for i in l:print((i)) # # browser.close()#關閉瀏覽器 # with open("data2.txt",'w',encoding='utf-8') as f: # f.write(str(l)) # with open("data2.pk","w",encoding="utf-8") as f: # pickle.dump(l,f); #https://hotels.ctrip.com/hotel/qingdao7/star2/k1%E4%BA%94%E5%9B%9B%E5%B9%BF%E5%9C%BA#ctm_ref=ctr_hp_sb_lst所以爬蟲還是挺有意思的。
接觸了數據挖掘、基于內容的推薦
這兩個話題雖然比較大,但是我還是想簡單說一下自己的理解
總結
以上是生活随笔為你收集整理的旅游推荐系统毕业设计总结(包含旅游信息爬取、算法应用和旅游推荐系统实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Markdown_LaTex_极限符号
- 下一篇: oa系统在线试用,零成本开始研发协作免费