<optgroup id="liuka"><i id="liuka"><center id="liuka"></center></i></optgroup>

<span id="liuka"></span>
  • <ruby id="liuka"><menu id="liuka"></menu></ruby>

  • <optgroup id="liuka"></optgroup>
    <span id="liuka"><video id="liuka"><b id="liuka"></b></video></span>
    書簽 分享 收藏 舉報 版權申訴 / 31

    類型基于協同過濾的房源推薦系統的設計與實現.docx

  • 上傳人:小香灰
  • 文檔編號:83759
  • 上傳時間:2021-07-29
  • 格式:DOCX
  • 頁數:31
  • 大?。?74.35KB
  • 注意事項:

    本文檔如無特殊說明,請使用OfficeWPS軟件打開,文檔中的文字與圖均可以修改和編輯。

    版權聲明:

    本文檔由用戶上傳版權歸上傳用戶所有,搜文庫僅提供文檔存儲空間。若發現您的權利被侵害,請聯系客服郵件kefu@souwenku.com,我們盡快處理。

    關 鍵  詞:
    基于 協同 過濾 房源 推薦 系統 設計 實現
    文本預覽:
    本科畢業設計(論文) 基于協同過濾的房源推薦系統的設計與實現 Design and implementation of house recommendation system based on collaborative filtering 院 (系) 計算機學院 專 業 網絡工程 班 級 一班 學 號 16210220110 學生姓名 林澤恒 指導教師 趙元成 提交日期 2020 年 4 月 24 日 畢業設計(論文)原創性聲明 本人鄭重聲明:所呈交的畢業設計(論文),是本人在指導老師的指導下,獨立進行的設計(研究)工作及取得的成果,論文中引用他人的文獻、數據、圖件、資料均已明確標注出,論文中的結論和結果為本人獨立完成,不包含他人已經發表或撰寫的作品及成果。對本文的研究作出貢獻的個人和集體,均已在論文中作了明確的說明。本人完全意識到本聲明的法律結果由本人承擔。 畢業論文作者(簽字): 簽字日期: 年 月 日 成績評定 成績項 論文成績(百分制) 折合比例 實得成績(折合分) 指導教師成績 30% 評閱教師成績 20% 答辯成績 50% 總評成績 注:畢業設計(論文)成績按百分制評定。答辯成績不及格的(評分低于60分的),則該畢業設計(論文)總評成績為答辯成績。 摘 要 本論文通過對當前房屋租賃市場存在的痛點問題進行分析,結合互聯網信息系統的考察,以自主開發一個B/S架構的房源推薦系統為例,對開發過程的一些技術問題提出一些實用性的建議及實現。論文首先從房屋租賃市場的發展現況與互聯網信息系統發展前景進行分析,提出了將兩者結合起來,通過實現一個算法推薦系統改善房屋租賃市場現狀的設想。 在此基礎上,本論文介紹了房源推薦系統的開發過程以及其中的技術問題,以B/S模式進行系統的開發,以Java作為開發語言,以IntelliJ IDEA作為開發工具,采用Spring Boot開發框架,借助業界現有的推薦算法,由需求分析,功能設計,數據組織,代碼組織等各個方面對房源推薦系統的開發過程做出一定的實踐,在實現的同時,總結經驗,并將前期的整體設計,中期的具體實現過程,后續的軟件測試的具體思路呈現在論文中。 關鍵詞:房屋租賃 推薦系統 Java Spring Boot 協同過濾 ABSTRACT This paper analyzes the pain points existing in the current housing rental market, combined with the investigation of the Internet information system, and takes an independent development of a B / S architecture house recommendation system as an example to propose some practical problems in the development process. Proposal and realization. The thesis first analyzes the development status of the housing rental market and the development prospects of the Internet information system, and puts forward the idea of ??combining the two and improving the status of the housing rental market by implementing an algorithm recommendation system. On this basis, this paper introduces the development process of the house recommendation system and its technical problems. The system is developed in B / S mode, Java is used as the development language, IntelliJ IDEA is used as the development tool, and the Spring Boot development framework is adopted. With the help of the existing recommendation algorithms in the industry, we need to make certain practices in the development process of the house recommendation system from the aspects of demand analysis, functional design, data organization, code organization, etc. The overall design, the specific implementation process in the medium term, and the specific ideas for subsequent software testing are presented in the paper. Key words: Housing Rental Recommendation Algorithm Java Spring Boot Collaborative filtering 目 錄 1. 緒論 1 1.1. 研究背景 1 1.2. 研究目的和意義 1 1.2.1. 研究目的 1 1.2.2. 研究意義 2 1.3. 研究現狀 2 1.4. 研究內容 2 2. 推薦算法研究與分析 4 2.1. 推薦算法現狀 4 2.2. 系統推薦算法分析 4 2.3. 本章小結 6 3. 系統分析 7 3.1. 系統可行性分析 7 3.1.1. 技術可行性 7 3.1.2. 經濟可行性 7 3.1.3. 操作可行性 7 3.2. 系統需求分析 8 3.2.1. 需求概述 8 3.2.2. 推薦模塊需求分析 8 3.2.3. 系統功能需求分析 8 3.3. 本章小結 9 4. 系統設計與實現 10 4.1. 系統設計框架 10 4.2. 系統推薦模塊的設計 11 4.3. 系統功能模塊設計 12 4.4. 系統數據庫設計 17 4.4.1. E-R模型 17 4.4.2. 數據庫表 18 4.5. 系統實現 19 4.5.1. 推薦模塊的實現 19 4.5.2. 系統功能的實現 19 4.6. 系統測試 20 4.6.1. 功能測試 20 4.7. 本章小結 21 5. 總結與展望 22 參考文獻 23 致 謝 24 廣東東軟學院本科畢業設計(論文) 1. 緒論 1.1. 研究背景 在中國共產黨的領導下,中國的市場經濟發展迅速,城市化進程不斷加速。與此同時,越來越多的農村剩余勞動力涌入城市,加大了人口流動,使得城市流動人口數量不斷增長。然而這些外來務工人員或者城市低收入者沒有能力購買價格高企的商品房。因此,房屋租賃市場對于買賣雙方都有著很大的需求。無論是租房還是出租,都具有重大的現實意義。然而現實中房屋租賃市場規模大且信息復雜,買賣雙方經常發生糾紛。由于信息的不對等,在房屋租賃市場中,求租方往往是弱勢的一方,一些求租者需要花費高昂的交易費通過中介公司尋求房源。一些黑心的中介公司出于利益不會客觀地為客戶推薦房源,中介費也在一定程度上加重了求租者的負擔。另外,由于語言表述的局限性,承租方很難將自己心中的理想房屋形容出來,中介也很難滿足承租方的全部需求,這種信息的不對稱對于房屋租賃是個很大的問題。這些問題都急需一個減輕承、出租雙方溝通成本,使滿足各類需求的房源真實地展現給所需用戶的平臺。 當今時代,互聯網應用越來越廣泛,計算機算法發展迅猛,極大地方便了人們的工作生活。其中基于算法的推薦系統無處不在,例如國民購物網站淘寶網、以推薦算法著稱的新聞應用今日頭條,用戶在使用過程中能夠不斷獲得自己想要的內容,并且呈現的內容會隨著瀏覽量的增多而越來越接近自己的需求,信息也越來越對稱,逐漸受到用戶的青睞,這背后的推薦系統功不可沒。 1.2. 研究目的和意義 1.2.1. 研究目的 通過對房屋租賃市場存在的問題以及承租、出租雙方的需求進行研究和分析,開發一款房源推薦系統,降低承租、出租雙方的溝通成本,在一定程度上改善房屋租賃市場的痛點問題。 本課題結合國內房屋租賃市場存在的問題以及互聯網信息推薦系統的發展方向,設計了一個基于協同過濾的房源推薦系統,借助業界現有的協同過濾推薦算法,以Java為開發語言、以Spring Boot為開發框架、IntelliJ IDEA為開發工具,數據庫采用MySQL數據庫和Redis緩存,通過后臺數據庫的建立和前臺界面的設計與功能實現等幾個階段來完成房源推薦系統的開發。 1.2.2. 研究意義 衣食住行是人們最基本的生活需求。如今,隨著房價的不斷上漲,租房成為外來務工人員以及剛進入社會工作的年輕人解決居住問題的主要方式,每一年都有許許多多的人需要租房,促進了房屋租賃市場的發展。因此,我國的房屋租賃市場需求巨大,發展前景廣闊,但仍然存在零散、不規范等弊端。此時,設計實現一款房源推薦系統具有重要的實踐價值,也可以為社會發展提供一些技術幫助。 本系統通過推薦算法為承租方個性化推薦房源,給生活中的難題帶來技術上的解決方案,為智能化生活場景提供一定的參考價值。 1.3. 研究現狀 隨著機器學習技術的逐漸成熟以及人工智能的發展,推薦系統目前是一塊很大的研究領域,許多電商應用、新聞應用和短視頻應用都開始使用推薦系統為用戶推薦內容。 當前,諸如阿里巴巴和字節跳動等國內知名的互聯網公司正在廣泛使用推薦系統, 而像搜房網、58同城,這些房地產服務網絡平臺通常以信息檢索為主,網站以統一格式發布房源數據,用戶再通過條件過濾來檢索網站上的房源數據。 目前對于推薦房產信息的研究并不是很多,文獻[2]提出了混合業界常用的推薦算法,并建立雙方互相評分的概念模型,通過承租方和出租方互相打分作為系統推薦的依據。文獻[3]提出了統計、分析用戶訪問網站時的操作行為,從中發現用戶訪問網站的規律和用戶習慣進而對用戶進行個性化推薦。文獻[4]提出了基于粒子群算法的房產推薦系統,該系統需錄入房產信息內容,在指定的格式下,每一條房屋信息的屬性都需要在信息錄入的初期登記在數據庫中。 1.4. 研究內容 本文的研究內容主要是提出目前國內房屋租賃市場存在的一些問題,結合互聯網信息推薦系統的應用場景,開發一款基于協同過濾的房源推薦系統。通過協同過濾中的ItemCF算法為承租方用戶推薦與其喜好類型相似的房源信息。 具體從以下三個方面入手: (1) 通過系統研究背景以及對推薦算法的現狀進行分析,確定系統的開發方向和核心推薦模塊的設計。 (2) 在系統的詳細開發上,確定合適的軟件結構以及數據庫的設計,本系統采用Spring Boot開發框架搭建,前端框架使用Layui,數據庫使用MySQL關系型數據庫和Redis緩存。 (3) 系統的詳細功能設計,包括用戶注冊登錄、房源信息推薦等。 本文以房源推薦系統為研究對象,研究業界上常用的推薦算法,分析該房源推薦系統的設計與開發過程。重點分析了推薦算法的原理和系統功能的實現,并對實現的系統進行了功能測試。本系統選用的開發語言是Java,開發框架是Spring Boot,采用的開發工具是IntelliJ IDEA,應用服務器是Tomcat,結合MySQL和Redis數據庫進行實現,開發出基于協同過濾的房源推薦系統,幫助承租方和出租方提高操作效率,使工作流程清晰化且提高管理效率。 2. 推薦算法研究與分析 2.1. 推薦算法現狀 目前推薦系統的發展非常迅速,基本上分為幾大類:基于流行度的推薦、基于內容的推薦、基于協同過濾的推薦、混合推薦等。 (1) 基于流行度的推薦實際上就是熱門內容的推薦,基于最高評分、最多購買、 最多下載、最多觀看等維度給用戶進行推薦,優點是十分簡單直接,對于新用戶來說十分友好,因為新用戶沒有產生過任何歷史行為記錄,一些具有冷啟動缺陷的推薦系統很難對其進行推薦。不過,基于流行度的推薦只能推薦熱門的內容,無法提供個性化推薦,因此在推薦系統中一般將其作為替補策略。 (2) 基于內容的推薦是根據用戶對Item進行點贊、收藏、瀏覽、評論等行為,獲得用戶的興趣偏好,根據用戶的興趣偏好為其推薦相似的Item,優點是避免Item冷啟動問題,并且只依賴于用戶自身的行為,不涉及其他用戶的行為,因此能夠進行個性化推薦,缺點是推薦范圍具有局限性。 (3) 基于協同過濾的推薦是推薦系統中一種應用十分廣泛的技術,行業中已經有了很多應用,其中應用最多的種類是基于用戶的CF(User-based CF)和基于項目的CF(Item-based CF)。UserCF的原理是找到與當前用戶相似的用戶群,將這些用戶中比較流行但當前用戶又沒有瀏覽過的內容推薦給當前用戶。它的優勢是具有多樣性,能夠幫助用戶找到新類別的有驚喜的內容,缺點是計算復雜度較高。而ItemCF的原理是計算所有Item之間的相似度,找出與當前用戶喜歡的Item相似度最高的Item集合推薦給當前用戶。它的優點是用戶的歷史行為作為推薦解釋,因此可解釋性強,缺點是具有冷啟動問題,即一個新用戶在沒有對Item進行任何操作時無法進行推薦。 (4) 因為單一推薦算法各有優勢和缺陷,所以在實際應用場景中很少直接采用單一算法來做推薦,而是采用混合算法來推薦,其中研究和應用最多的是結合內容推薦和協同過濾推薦的混合推薦。 考慮到本系統的數據集較為基礎,功能量和用戶數都比較少,如果采用基于UserCF的協同過濾推薦算法可能會導致算法占用資源太高、重復推薦等問題,因此決定變換采用基于流行度的推薦和基于ItemCF的協同過濾推薦,以協同過濾推薦為主,流行度推薦為輔,取長補短,為用戶提供房源信息的推薦。 2.2. 系統推薦算法分析 基于流行度的推薦算法較為簡單直接,什么內容吸引用戶,就給用戶推薦什么內容。它基于用戶對項目的操作行為(通常是點擊、評論、分享等)來獲取項目的熱度,進而獲取熱度高的項目推薦給用戶。 本系統中,用戶的操作行為有兩種,一是點擊,二是收藏。當房源信息獲得用戶的一次點擊,熱度加1分;當房源信息獲得用戶的一次收藏,熱度加2分。 基于協同過濾的推薦則根據用戶的行為來進行推薦,一是通過給用戶推薦和他興趣編好相似的其他用戶喜歡的內容,即UserCF;二是給用戶推薦和用戶本身喜歡的內容相似的內容,即ItemCF。 本系統采用ItemCF算法,Item等價于房源信息,用戶喜歡某個房源的行為表現為收藏操作,算法運算過程主要分為兩步: (1) 計算房源之間的相似度。 假設有用戶A、B、C、D、E,他們各自的收藏如下: A a,b,d B b,c,e C c,d D b,c,d E a,d 根據他們的收藏列表構建倒排表,例如,房源a被用戶A和用戶E所收藏。 a A,E b A,B,D c B,C,D d A,C,D,E e B 得到用戶的收藏列表后,將列表中的房源兩兩加一,最后累加獲得共現矩陣,矩陣中記錄了同時收藏房源i和房源j的用戶數,計算過程如圖 2.1所示。 圖 2.1 共現矩陣計算過程 假設有房源i和房源j,它們之間的相似度取決于它們同時被很多的用戶所收藏,同時收藏它們的用戶數越多,相似度越高。設N(i)為收藏房源i的用戶數,N(j)為收藏房源j的用戶數,|N(i)∩N(j)|表示同時收藏房源i和房源j的用戶數,則房源之間的相似度Wij可以通過以下公式計算得出: 對共現矩陣進行遍歷并去重,導入上面的公式就可以計算出房源之間的相似度。 (2) 根據房源之間的相似度和用戶的歷史行為為用戶生成推薦列表。 有了房源信息之間的相似度,就可以找到與當前用戶收藏列表中的房源信息相似度高的其他房源信息,推薦給當前用戶。 2.3. 本章小結 本章主要分析了推薦算法的現狀和一些基本定義,并分析了本系統推薦算法的原理和設計思路。 3. 系統分析 3.1. 系統可行性分析 在系統的設計和開發之前進行可行性分析是十分必要的,通過可行性分析我們能夠明確系統開發時可能會出現的問題,同時確定這些問題是否能夠解決,以及對于用戶是否難以操作等。本系統從技術、經濟和操作三個方面進行了可行性分析。 3.1.1. 技術可行性 本系統由Java語言進行開發;開發工具使用JetBrains公司出品的IntelliJ IDEA,IntelliJ IDEA對Java生態的支持范圍十分之廣,具有好用的快捷鍵和代碼模板;數據庫采用MySQL,它具有體積小、速度快、免費的特點;前端框架采用門檻較低、結構較為清晰、頁面效果較好的Layui框架。以上技術和工具均是當前成熟好用的技術方案,所以技術上可行。 3.1.2. 經濟可行性 在房屋租賃市場中,房屋中介需要向尋租者收取一定比例的中介費,這無疑增加了尋租者的額外負擔。而采用自動化、全天化的房源推薦系統,尋租者不僅可以省去中介費用,同時大大減少了找房的時間成本和溝通成本。在當今的互聯網時代,計算機、手機等電子產品幾乎人手一部,硬件方面是基本滿足的,而基于硬件的軟件開發也可以做到接近零成本。出租方也能借助該系統充分展現自己的房屋特色,找到合適的房客。系統為尋租方和出租方帶來了很大的便捷,所以在經濟上可行。 3.1.3. 操作可行性 現如今許許多多的人基于都能用個人電腦上網,就算沒有電腦或者不方便使用笨重的電腦,也可以使用手機上網,所以硬件條件是可以滿足的。本系統為B/S架構,只要使用瀏覽器便可隨時使用,且界面美觀、操作簡單、非常容易上手,所以,在操作上可行。 3.2. 系統需求分析 3.2.1. 需求概述 隨著城市流動人口的增加,房屋租賃市場蓬勃發展。與此同時,傳統的房屋中介不僅加重了房屋承租者的負擔,承租、出租雙方的交易過程也變得十分繁瑣。因此,承租、出租雙方迫切需要一種低成本、便捷的房源推薦平臺,以取代傳統中介機構的各種弊端。 本項目實現了一個基于協同過濾的房源推薦系統,通過算法為用戶進行房源信息的推薦。推薦系統在一方面減輕了尋租方的時間、交通成本,另一方面也為出租方提供了一個范圍更廣的銷售渠道。 具體來說,對于承租方用戶,當賬號未登錄時可以查看按熱度排行的房源信息,當賬號登錄時,系統會根據用戶的歷史行為通過算法進行個性化推薦,將用戶想看的內容盡可能的呈現出來,減少了用戶在尋找信息所花費的時間,提升了用戶體驗;對于出租方用戶,只需注冊好賬號就可以在系統中發布自己想要出租的房屋信息,還可以查看自己的房屋信息的點擊量和收藏量,幫助出租方調整房屋的信息發布,盡快達到將房屋租出去的目標。 3.2.2. 推薦模塊需求分析 本系統變換采用基于流行度的推薦算法和基于ItemCF的協同過濾推薦算法。 (1) 基于流行度的推薦:當用戶是游客或者新用戶時,系統對當前房源信息的熱度進行計算并排序,返回按熱度從高到低排列的房源信息。 (2) 基于ItemCF的協同過濾推薦:當用戶對房源信息進行了點擊、收藏,系統根據當前用戶歷史行為里的房源信息返回與之相似度高的其他房源信息。 總的來說,本系統推薦模塊核心是基于ItemCF的協同過濾推薦,而基于流行度的推薦則作為協同過濾的補充,這樣能夠解決協同過濾的冷啟動問題。 3.2.3. 系統功能需求分析 (1) 登錄、注冊模塊:游客只能瀏覽按熱度排行的房源信息,無法進行其他操作。用戶可以注冊賬號,登錄系統之后就可以體驗系統的各種功能。 (2) 查看房源信息模塊:未登錄系統的游客只能查看按熱度排列的房源信息。新用戶進入系統后,看到的房源信息與游客相同。新用戶遇到中意的房源,可以點擊收藏將其添加進自己的收藏列表,之后系統將會分析用戶的收藏列表,將相似度高的其他房源信息推薦給用戶。用戶的收藏行為影響系統的推薦結果。另外設置一個按鈕,當用戶不滿意當前推薦的信息時,點擊可以更換下一批。 (3) 發布房源信息模塊:出租方用戶注冊登錄系統后可以把自己名下空閑的想要出租的房源發布出去,填寫房源的基本信息、上傳房源的宣傳圖片,等待承租方的聯系。此外還可以查看自己已發布的房源信息的點擊量和收藏量等。 (4) 修改個人信息模塊:已注冊的用戶登錄系統后可以隨時修改自己的頭像、登錄密碼和密保手機號碼。 3.3. 本章小結 本章介紹了系統的可行性分析,主要從技術、經濟、操作三方面展開了介紹,并從功能方面對系統的需求進行了分析。 4. 系統設計與實現 4.1. 系統設計框架 目前基于B/S模式的信息管理系統大多采用MVC架構設計,即模型(Model)、視圖(View)、控制器(Controller)三層架構。 (1) 模型通常負責訪問數據庫,對數據進行增刪改查等操作,是應用程序中與數據進行交互的部分。 (2) 視圖依據模型數據創建,負責顯示模型數據。 (3) 控制器負責處理用戶的請求,通常從視圖中獲取用戶的請求參數,調用模型操作數據,最終將結果返回給用戶。 MVC模式就像一臺電腦,模型好比是硬盤里的文件,視圖好比是顯示器,控制器好比是CPU。每一層各司其職,缺一不可,大大簡化了應用程序的開發。 圖 4.1 MVC架構示意圖 本系統以MVC模式進行開發,系統架構如圖 4.2所示。 圖 4.2 系統開發架構 4.2. 系統推薦模塊的設計 當游客進入系統時,推薦模塊對當前房源信息的熱度進行計算、排序,返回按熱度從高到低排列的房源信息;當新用戶進入系統時,推薦模塊首先返回熱門的房源信息,此時對于新用戶的推薦和對于游客的推薦是一致的,當新用戶對房源信息進行了收藏,推薦模塊才會調用協同過濾方法分析用戶的收藏列表,為用戶推薦相似度高的其他房源。推薦模塊運行流程如圖 4.3所示。 圖 4.3 推薦模塊運行流程 4.3. 系統功能模塊設計 (1) 登錄、注冊模塊:前臺網站首頁設置一個房源信息的瀏覽入口,未登錄的游客可以預覽按熱度排行的房源信息,并可以點擊某個房源的預覽信息查看詳細信息,除此之外無法進行其他操作。游客的點擊也會增加房源的點擊量。游客進行注冊、登錄之后就可以體驗網站的各項功能,包括收藏、推薦等。用戶注冊流程如圖 4.4所示,用戶登錄流程如圖 4.5所示。 圖 4.4 用戶注冊流程圖 圖 4.5 用戶登錄流程圖 (2) 查看房源信息模塊:該模塊以卡片形式展現系統推薦的N個房源信息,游客可點擊查看詳情,用戶可收藏。具體流程如圖 4.6所示。 圖 4.6 查看房源信息流程圖 (3) 發布房源信息模塊:出租方用戶登錄系統后,可以將自己名下空閑的想要出租的房源發布到系統中,填寫好房源的信息就可以提交了。房源的詳細信息包括房屋圖片、地址、房東聯系方式以及房屋的簡介等。房源信息發布成功后,出租方可以修改、刪除已發布的房源信息,還可以查看點擊量和被收藏量。具體流程如圖 4.7所示。 圖 4.7 發布房源信息流程圖 (4) 修改個人信息模塊:用戶登錄系統后可以修改頭像、登錄密碼和密保手機號碼。具體流程如圖 4.8所示。 圖 4.8 修改個人信息流程圖 4.4. 系統數據庫設計 4.4.1. E-R模型 本系統數據庫表主要有房源信息表、房源熱度表、用戶信息表、用戶收藏表,E-R圖如圖 4.9所示。 圖 4.9 系統E-R圖 4.4.2. 數據庫表 (1) 用戶信息表 用戶信息表存儲用戶的相關信息,表結構如下: 字段名 字段描述 數據類型 允許空值 鍵型 id 用戶id int 否 主鍵 username 用戶名 varchar 否 password 用戶密碼 varchar 否 phone 手機號碼 char 否 avatar_path 頭像地址 varchar 否 create_time 創建時間 datetime 否 (2) 房源信息表 房源信息表存儲房源的相關信息,表結構如下: 字段名 字段描述 數據類型 允許空值 鍵型 id 房源id int 否 主鍵 thumbnail 縮略圖地址 varchar 否 images 詳情圖片地址 varchar 否 address 房源地址 varchar 否 introduction 簡介 varchar 是 (3) 房源熱度表 房源熱度表存儲房源信息的熱度,表結構如下: 字段名 字段描述 數據類型 允許空值 鍵型 house_id 房源id int 否 主鍵、外鍵 click_count 點擊量 int 否 mark_count 收藏量 int 否 (4) 用戶收藏表 用戶收藏表存儲用戶的收藏信息,表結構如下: 字段名 字段描述 數據類型 允許空值 鍵型 id 收藏id int 否 主鍵 user_id 用戶id int 否 外鍵 house_id mark_time 房源id 收藏時間 int datetime 否 否 外鍵 4.5. 系統實現 4.5.1. 推薦模塊的實現 推薦模塊主要包含流行度計算函數以及ItemCF算法計算函數。 流行度計算函數較為簡單,通過每個房源信息的點擊量和收藏量,按照點擊加1分、收藏加2分,計算當前各個房源信息的熱度,按降序排列。 ItemCF算法計算函數傳入當前用戶的id,遍歷所有用戶的收藏列表,根據第二部分的模型構建共現矩陣,并按照相似度計算公式計算出各個房源信息之間的相似度,以相似度從高到低的順序進行排列,最終返回排好序的房源信息集合。 4.5.2. 系統功能的實現 系統功能圍繞用戶的操作來實現,主要分為游客瀏覽、注冊成功后的承租方用戶登錄系統進行操作和出租方用戶登錄系統進行操作三個部分。 (1) 游客功能實現:打開網站來到主頁,以游客身份點擊主頁上的“查看房源”鏈接,將會跳轉到房源信息頁面。房源信息以熱度排行,點擊量和收藏量越大越靠前。游客在瀏覽的過程中只能點擊房源信息查看詳情,無法進行其他操作。若要進行其他操作,可以點擊頂部欄的登錄鏈接進行登錄。 (2) 承租方用戶功能實現:用戶注冊時可以選擇用戶類型,選擇承租方,正確輸入用戶名、密碼、確認密碼、密保手機號碼后提交,輸入錯誤會彈出提示,并且無法提交。注冊成功后進行登錄,填寫用戶名、密碼后點擊“登錄”按鈕,若錯誤會彈出提示。用戶可以選擇“記住我”,在成功登錄后系統會記住賬戶信息,下次便可直接登錄。若用戶忘記密碼可以點擊“忘記密碼”鏈接,進行密保手機驗證,驗證通過則可以重置密碼。成功登錄系統后房源信息將會由系統進行個性化推薦,用戶可以點擊房源信息查看詳情,也可以點擊收藏將其添加進自己的收藏列表。此外,頂部狀態欄顯示頭像和用戶名信息,鼠標移動或觸屏至該位置,將會彈出下拉框,可以在下拉框選擇相應的操作修改頭像、修改密碼、修改手機號碼和退出系統。 (3) 出租方用戶功能實現:用戶注冊時可以選擇用戶類型,選擇出租方,正確輸入用戶名、密碼、確認密碼、密保手機號碼后提交,輸入錯誤會彈出提示,并且無法提交。注冊成功后進行登錄,填寫用戶名、密碼后點擊“登錄”按鈕,若錯誤會彈出提示。用戶可以選擇“記住我”,在成功登錄后系統會記住賬戶信息,下次便可直接登錄。若用戶忘記密碼可以點擊“忘記密碼”鏈接,進行密保手機驗證,驗證通過則可以重置密碼。成功登錄系統后用戶可以發布自己想要出租的房屋信息,包括房屋圖片、地址、租金、面積大小、房東聯系方式以及房屋的簡介。用戶還可以修改、刪除已發布的房源信息,查看被收藏量。此外,頂部狀態欄顯示頭像和用戶名信息,鼠標移動或觸屏至該位置,將會彈出下拉框,可以在下拉框選擇相應的操作修改頭像、修改密碼、修改手機號碼和退出系統。 4.6. 系統測試 系統測試的目的是盡早發現系統中隱藏的錯誤和缺陷,盡可能避免出現BUG,從而保證系統的正確性、完整性、安全性。 4.6.1. 功能測試 本系統主要對每個功能模塊進行了單元測試和黑盒測試。單元測試是為了保證數據的增刪改查不會出現錯誤、功能能夠正常運行。黑盒測試是不考慮程序內部的結構和性能,只檢查程序的運行結果是否符合預期。 在本系統開發階段,每個功能模塊在編寫完畢后通過單元測試保證了數據的正確操作以及功能的正常運行。當一個功能模塊初步開發完成后,通過模擬真實場景檢測功能是否達到了預期的效果。經過測試,本系統的各個功能模塊能夠正常運行。 4.7. 本章小結 本章從系統框架設計、推薦算法的選擇、功能模塊設計、數據庫設計、系統實現和系統功能測試方面,詳細介紹了本系統的設計與實現。 5. 總結與展望 本文通過對當前房屋租賃市場的分析以及實現一個基于協同過濾的房源推薦系統,對改善當前房屋租賃市場存在的問題提出了一些可行性建議。 基于協同過濾的房源推薦系統雖在一定程度上能夠改善房屋租賃市場的痛點問題,但由于房屋租賃市場大而復雜,系統依然無法徹底解決房屋租賃市場的其他相關問題。因此,在今后的研究中可以從以下幾個方面來進一步完善系統的功能。 (1) 添加即時通訊模塊,讓承租方和出租方能夠在線上進行溝通,增加溝通效率。 (2) 添加智能建議模塊,當出租方的房源信息排行靠后時,為其提供信息修改建議,讓好房子得到更多曝光。 (3) 考慮到系統存在偶然的并發量上升的可能性,應進一步提高網站的響應速度,提升用戶體驗。 參考文獻 [1] 律瑞雪.房屋租賃市場現狀與發展對策探討[J].科技與企業,2014(6): 234~234. [2] 董瑩.基于用戶意向分析的房屋租賃系統的設計與實現[D].大連海事大學,2017. [3] 郭書豪.基于用戶行為的個性化推薦研究[D].北京:中國地質大學,2018. [4] 劉林,蔚成建.基于粒子群算法的房產推薦系統[J].計算機工程與應用,2005. [5] 趙迎芳.基于J2EE的房屋租賃管理信息系統設計與實現[D].河北科技大學,2014. [6] 吳瓊.基于B/S模式的房屋租售管理系統的設計與開發[J].智能計算機與應用,2010(2):19~20. [7] 汪云飛.JavaEE開發的顛覆者:Spring Boot實戰[M].北京:電子工業出版社,2016. [8] 吳泓辰,王新軍,成勇,彭朝暉.基于協同過濾與劃分聚類的改進推薦算法[J].計算機研究與發展,2011,48(S3):205-212. [9] 余永紅.融合多源信息的推薦算法研究[D].南京大學,2017. [10] 楊松樺.基于協同過濾的論文推薦系統[D].中原工學院,2019. [11] 李曉瑜.協同過濾推薦算法研究[J].2019. 致 謝 本論文從選題到開題,從編寫提綱到最后定稿,我的導師趙元成老師沒有給我太大的壓力,在我遇到難題時給予了我極大的幫助。經過他的耐心指導,循循善誘,讓我的論文得以完成,在此我表示衷心的感謝。 同時,我也感謝我在實習期間的同事。在我進行畢業設計期間,他們幫我分擔了一些工作上的事情,讓我留有時間來攻克一些難題。我也非常感謝我的家人,當我忙于論文寫作時,他們對我表達了支持和鼓勵。 2020年是不平凡的一年,在疫情“黑天鵝”事件影響下,許多行業發生了天翻地覆的變化,我也即將以一種特殊的方式結束大學生涯。感謝大學里我親愛的老師、同學和朋友,在我青春里留下了印記,讓我度過了難忘的大學生活。2020終將會翻篇,祝福各位都有美好的未來。 24
    展開閱讀全文
    提示  搜文庫是C2C交易模式,所有文檔均是用戶上傳分享,僅供網友學習交流。文檔版權歸屬內容提供方,未經書面授權,請勿作他用!
    關于本文
    本文標題:基于協同過濾的房源推薦系統的設計與實現.docx
    鏈接地址:http://www.sherlockholmespart3.com/p-83759.html

    copyright@ 2016-2022 搜文庫網站版權所有   網站客服QQ:425721614

    經營許可證編號:粵ICP備2021173911號

    本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。

    搜文庫平臺僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知搜文庫平臺,我們立即給予刪除!


    搜文庫
    收起
    展開
    jealousvue老大太,美女作爱全过程免费观看国产,忘忧草在线社区www日本,人c交zoozooxx真实视频
    <optgroup id="liuka"><i id="liuka"><center id="liuka"></center></i></optgroup>

    <span id="liuka"></span>
  • <ruby id="liuka"><menu id="liuka"></menu></ruby>

  • <optgroup id="liuka"></optgroup>
    <span id="liuka"><video id="liuka"><b id="liuka"></b></video></span>