旅游推荐系统毕业设计总结(包含旅游信息爬取、算法应用和旅游推荐系统实现)
哇塞,大學(xué)本科四年的時光就這樣結(jié)束了,雖然做畢設(shè)的整個過程并不是特別煎熬,也沒有像別人一樣熬夜寫代碼,但是通過畢設(shè)我確實(shí)了解很多計(jì)算機(jī)相關(guān)知識,現(xiàn)在進(jìn)行一個簡單的總結(jié):
最近更新這個系統(tǒng),具體頁面展示在這一片博客:
旅游推薦系統(tǒng)更新版本_#Amark的博客-CSDN博客
整個推薦模型的設(shè)計(jì)和實(shí)現(xiàn)的大體結(jié)構(gòu)如下:
通過從數(shù)據(jù)庫或csv文件中獲取數(shù)據(jù)源,首先把數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)規(guī)約和模型鑒定,緊接著將數(shù)據(jù)與對應(yīng)模式庫的規(guī)則進(jìn)行模式匹配,從而選擇合適的算法進(jìn)行模型訓(xùn)練和學(xué)習(xí),并進(jìn)行算法評估和對新出現(xiàn)的數(shù)據(jù)進(jìn)行存儲和學(xué)習(xí),在上述過程中對所有操作進(jìn)行日志管理和檢驗(yàn)是否具備可操作權(quán)限,最后輸出用戶所期望的數(shù)據(jù)信息和內(nèi)容。該模型能應(yīng)用在景點(diǎn)分類、經(jīng)費(fèi)計(jì)算、路徑規(guī)劃、酒店推薦、特征提取、美食推薦。
目錄
了解基于django的web開發(fā)
學(xué)會了python的基本使用,包含其中的numpy、pandas、jieba、sqlite、re等各式各樣的庫
開始接觸算法的應(yīng)用和創(chuàng)新,在畢設(shè)設(shè)計(jì)到了TF-IDF算法、樸素貝葉斯分類、蟻群算法
學(xué)會了網(wǎng)絡(luò)爬蟲,本次畢設(shè)使用的是beautifulsoup4v?
接觸了數(shù)據(jù)挖掘、基于內(nèi)容的推薦
現(xiàn)在目錄上的章節(jié)如果有時間會進(jìn)行詳細(xì)的文章編寫,目前暫時只完成了網(wǎng)絡(luò)爬蟲部分。
了解基于django的web開發(fā)
由于本次在研究中需要對模型的應(yīng)用進(jìn)行一個更好的可視化展示效果,我做了兩個簡單的開發(fā)界面,第一個是旅游界面的推薦,第二個是推薦后得到的結(jié)果。其具體Django教程在:快速入門Django開發(fā)教程(旅游推薦系統(tǒng)實(shí)現(xiàn)教程)
學(xué)會了python的基本使用,包含其中的numpy、pandas、jieba、sqlite、re等各式各樣的庫
自從使用了python以后,才發(fā)現(xiàn)python是真的很好用哈,基本可以使用python進(jìn)行編程了。
開始接觸算法的應(yīng)用和創(chuàng)新,在畢設(shè)設(shè)計(jì)到了TF-IDF算法、樸素貝葉斯分類、蟻群算法
這些算法還是真的神奇,佩服數(shù)學(xué)的神奇!
學(xué)會了網(wǎng)絡(luò)爬蟲,本次畢設(shè)使用的是beautifulsoup4
第一次爬蟲額,成功的爬取到了攜程網(wǎng)的酒店、景點(diǎn)、美食信息。
其中本次爬蟲的主要思想是:首先是找到攜程網(wǎng)url的編寫規(guī)律,然后根據(jù)規(guī)律使用beautifulsoup4對所需的html語言中的信息提取,最后就是封裝處理。
如下是我爬取美食的代碼,貌似景點(diǎn)和酒店已經(jīng)我寫的代碼已經(jīng)爬不了了。其具體代碼在使用python爬取攜程網(wǎng)旅游信息(包含景點(diǎn)、酒店、美食)
# -*- coding: utf-8 -*- import requests import io from bs4 import BeautifulSoup as BS import time import re"""從網(wǎng)上爬取數(shù)據(jù)"""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)): #爬取對應(yīng)的特色菜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]}); #對應(yīng)的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("正在打印的條數(shù):",j)try:#獲取子網(wǎng)頁鏈接地址href=vs[j].find(name="a",attrs={"target":"_blank"}).attrs["href"];#print("href",href)# 再次請求子網(wǎng)頁,獲取景點(diǎn)詳細(xì)信息res = requests.get(base2+href, headers=headers)print("當(dāng)前訪問的網(wǎng)址:",base2+href)with open("3.html","w",encoding="utf-8") as f:f.write(res.text)soupi = BS(res.text,"html.parser") #該網(wǎng)頁的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()#關(guān)閉瀏覽器 # 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所以爬蟲還是挺有意思的。
接觸了數(shù)據(jù)挖掘、基于內(nèi)容的推薦
這兩個話題雖然比較大,但是我還是想簡單說一下自己的理解
總結(jié)
以上是生活随笔為你收集整理的旅游推荐系统毕业设计总结(包含旅游信息爬取、算法应用和旅游推荐系统实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Markdown_LaTex_极限符号
- 下一篇: oa系统在线试用,零成本开始研发协作免费