国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于協(xié)同過(guò)濾算法的圖書(shū)推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)*

2023-08-22 03:47:14張盼盼劉凱凱
計(jì)算機(jī)時(shí)代 2023年8期
關(guān)鍵詞:字典物品圖書(shū)

張盼盼,劉凱凱

(運(yùn)城學(xué)院,山西 運(yùn)城 044000)

0 引言

如今人們會(huì)在互聯(lián)網(wǎng)上進(jìn)行各種各樣的活動(dòng),如觀看電影、購(gòu)買商品、閱讀書(shū)籍等,但隨著互聯(lián)網(wǎng)上信息的越來(lái)越多,人們發(fā)現(xiàn)越來(lái)越難以從海量信息中找出最適合自己的那些信息。圖書(shū)推薦系統(tǒng)的出現(xiàn),可以解決“信息過(guò)載”[1]的困擾。圖書(shū)推薦系統(tǒng)通過(guò)數(shù)據(jù)挖掘等大數(shù)據(jù)技術(shù),預(yù)測(cè)用戶的閱讀需求并推薦給用戶其最可能愛(ài)看的圖書(shū),將人們從海量圖書(shū)的選擇困難中拯救出來(lái)。

本文研究了推薦算法的基本概念及其實(shí)際應(yīng)用;通過(guò)基于物品的協(xié)同過(guò)濾算法[2]對(duì)用戶和圖書(shū)相關(guān)數(shù)據(jù)進(jìn)行計(jì)算,得出推薦結(jié)果,將推薦圖書(shū)展示給用戶,完成圖書(shū)推薦,為讀者解決實(shí)際問(wèn)題。

1 系統(tǒng)總體架構(gòu)設(shè)計(jì)

本文基于協(xié)同過(guò)濾算法的圖書(shū)推薦系統(tǒng)采用MTV 架構(gòu),來(lái)實(shí)現(xiàn)“高內(nèi)聚低耦合”。圖書(shū)推薦系統(tǒng)整體架構(gòu)如圖1 所示。

圖1 圖書(shū)推薦系統(tǒng)架構(gòu)圖

圖1 中,表現(xiàn)層的功能主要是將動(dòng)態(tài)生成的網(wǎng)頁(yè)文件進(jìn)行輸出,使用戶可以直觀的看到信息;業(yè)務(wù)邏輯層將一些邏輯封裝,在前端和數(shù)據(jù)庫(kù)端之間充當(dāng)中間人,便捷的將數(shù)據(jù)在兩者之間傳遞;數(shù)據(jù)存取層實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn),通過(guò)數(shù)據(jù)庫(kù)命令執(zhí)行操作,例如查詢,插入,更新,刪除等;數(shù)據(jù)庫(kù)采用MySQL,存儲(chǔ)圖書(shū)、讀者、評(píng)分等用戶信息。

2 功能模塊設(shè)計(jì)

本文圖書(shū)推薦系統(tǒng)借助基于物品的協(xié)同過(guò)濾算法,在用戶搜索圖書(shū)的同時(shí)自動(dòng)為讀者推薦一批相似的圖書(shū),因此在功能模塊上主要包含后臺(tái)管理系統(tǒng)和圖書(shū)推薦系統(tǒng)兩大部分。

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

后臺(tái)系統(tǒng)管理模塊實(shí)現(xiàn)了對(duì)用戶信息進(jìn)行的刪除操作以及對(duì)圖書(shū)信息進(jìn)行的添加和刪除操作,包括用戶賬號(hào)管理、圖書(shū)管理兩個(gè)部分,該功能主要通過(guò)管理員角色操作。

2.2 圖書(shū)推薦系統(tǒng)模塊

圖書(shū)推薦系統(tǒng)模塊主要包含用戶個(gè)人信息管理、熱門(mén)書(shū)籍、基于物品的推薦模塊三部分。

⑴用戶管理模塊主要實(shí)現(xiàn)用戶對(duì)本人信息的查看和修改操作、對(duì)用戶歷史評(píng)分記錄進(jìn)行查看和刪除操作以及對(duì)喜歡書(shū)單內(nèi)圖書(shū)的信息進(jìn)行查看和刪除操作。

⑵熱門(mén)書(shū)籍模塊的功能是通過(guò)對(duì)用戶的歷史評(píng)分記錄進(jìn)行排行,得到熱門(mén)書(shū)籍。該功能是對(duì)所有用戶的評(píng)分記錄中圖書(shū)評(píng)分總和最高的圖書(shū)進(jìn)行排行,根據(jù)評(píng)分由高到低進(jìn)行排序,生成熱門(mén)圖書(shū)的排行榜。

⑶基于物品的推薦模塊是通過(guò)對(duì)圖書(shū)以及用戶評(píng)分記錄的分析,完成對(duì)用戶進(jìn)行圖書(shū)推薦的功能。

3 算法設(shè)計(jì)

基于物品的協(xié)同過(guò)濾算法是本系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的源泉,本節(jié)敘述有關(guān)該算法的實(shí)現(xiàn)過(guò)程與設(shè)計(jì)思想。

用戶依據(jù)數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的提取,通過(guò)推薦算法的分析、對(duì)用戶的行為分析[3]得出與自己所評(píng)的圖書(shū)相似的其他圖書(shū),其結(jié)果將通過(guò)SQL 語(yǔ)句傳遞到前端,然后展示在HTML 頁(yè)面上,完成基于物品的協(xié)同過(guò)濾算法推薦的全過(guò)程。算法的流程圖如圖2所示。

圖2 基于物品的推薦功能模塊圖

3.1 獲取數(shù)據(jù)

首先從文件中獲取所需的數(shù)據(jù)集,并且根據(jù)列進(jìn)行劃分得到所需的數(shù)據(jù),將其存入訓(xùn)練集train 中。本系統(tǒng)中使用的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)爬取獲得,本系統(tǒng)側(cè)重點(diǎn)在于推薦系統(tǒng)的設(shè)計(jì),因此數(shù)據(jù)獲取不再詳細(xì)描述。

3.2 計(jì)算相似度

對(duì)所獲取的數(shù)據(jù),對(duì)每本圖書(shū)統(tǒng)計(jì)用戶數(shù)及評(píng)分,記入空字典中,例如創(chuàng)建一個(gè)空字典為Self.N={},N[i]表示對(duì)圖書(shū)i評(píng)分的用戶數(shù)。

然后建立物品相似度矩陣W[i][j],計(jì)算出圖書(shū)i與圖書(shū)j 之間的相似度,填入該矩陣。利用如公式⑴計(jì)算圖書(shū)之間的相似度[4]。W[i][j]標(biāo)識(shí)圖書(shū)i 和圖書(shū)j的相似度,N[i]則是喜歡圖書(shū)i的用戶數(shù),N[j]則是喜歡圖書(shū)j的用戶數(shù),除號(hào)上方表示同時(shí)喜歡圖書(shū)i和圖書(shū)j的用戶數(shù)。

部分相似度矩陣如圖3。

3.3 為當(dāng)前用戶提供推薦圖書(shū)

面向當(dāng)前用戶,搜尋和用戶歷史評(píng)分上的圖書(shū)最相似的圖書(shū)集合,為用戶進(jìn)行推薦。本文以用戶123為例,展示整個(gè)推薦過(guò)程:用戶123 對(duì)一本圖書(shū)進(jìn)行評(píng)分后,歷史評(píng)分如圖4所示。

圖4 用戶123歷史評(píng)分展示圖

接下來(lái)用戶123在首頁(yè)點(diǎn)擊與你喜歡的圖書(shū)類似按鈕,后臺(tái)運(yùn)行推薦算法:

首先創(chuàng)建字典self.train={},從本地?cái)?shù)據(jù)集中獲取數(shù)據(jù),存儲(chǔ)所有的用戶對(duì)圖書(shū)的評(píng)分?jǐn)?shù)據(jù);創(chuàng)建字典self.W,用來(lái)存儲(chǔ)圖書(shū)之間的相似度;創(chuàng)建self.N,用來(lái)存儲(chǔ)每本圖書(shū)被用戶評(píng)價(jià)過(guò)的次數(shù)。

然后通過(guò)3.2 節(jié)中的相似度公式計(jì)算圖書(shū)之間的相似度,生成圖書(shū)-圖書(shū)相似矩陣存入字典self.W 中。從得到的相似度矩陣中取出與用戶123 所評(píng)圖書(shū)最相似的其他圖書(shū)及其評(píng)分。所有用戶評(píng)價(jià)過(guò)的圖書(shū)信息存儲(chǔ)在self.train 中,由于當(dāng)前用戶名(user)為123,所以可以通過(guò)self.train[user]可獲取到用戶123 評(píng)價(jià)過(guò)的圖書(shū)信息。如表1所示。

表1 算法獲取到用戶123評(píng)價(jià)的圖書(shū)信息表

將用戶123 對(duì)每本圖書(shū)的評(píng)分與用戶123 評(píng)分過(guò)的每本圖書(shū)和其他圖書(shū)之間的相似度兩者之積進(jìn)行求和,得到推薦字典rank{},后對(duì)推薦字典進(jìn)行堆排序,用來(lái)判斷用戶123 對(duì)某一圖書(shū)的喜好程度[5,6]的高低,根據(jù)推薦分由高到低排列,將指定數(shù)量的圖書(shū)推薦給用戶123,排序之后推薦字典內(nèi)的部分推薦圖書(shū)如表2所示。

表2 推薦字典經(jīng)過(guò)排序之后的部分圖書(shū)表

排序后將推薦圖書(shū)展示在HTML 頁(yè)面,如圖5所示,完成本系統(tǒng)基于物品的推薦功能。

圖5 為用戶123推薦圖書(shū)展示圖

4 結(jié)束語(yǔ)

圖書(shū)推薦系統(tǒng)根據(jù)圖書(shū)、評(píng)分?jǐn)?shù)據(jù)集,通過(guò)圖書(shū)記錄與用戶評(píng)分記錄進(jìn)行推薦的軟件系統(tǒng)。本系統(tǒng)的圖書(shū)推薦模塊是由基于物品的協(xié)同推薦算法進(jìn)行的圖書(shū)推薦,本文設(shè)計(jì)的熱門(mén)書(shū)籍模塊將圖書(shū)評(píng)分排行榜展示出來(lái),使讀者對(duì)熱門(mén)書(shū)籍有一個(gè)直觀的感受,并且向沒(méi)有對(duì)圖書(shū)進(jìn)行評(píng)分的用戶提供一批大眾評(píng)分較高的書(shū)籍。在文中應(yīng)用的推薦算法中,仍存在推薦準(zhǔn)確性的問(wèn)題,下一步將在推薦算法上繼續(xù)討論研究,提高系統(tǒng)推薦圖書(shū)的推薦性能,使推薦結(jié)果更精準(zhǔn),更好地為讀者服務(wù)。

猜你喜歡
字典物品圖書(shū)
開(kāi)心字典
家教世界(2023年28期)2023-11-14 10:13:50
開(kāi)心字典
家教世界(2023年25期)2023-10-09 02:11:56
稱物品
“雙十一”,你搶到了想要的物品嗎?
圖書(shū)推薦
南風(fēng)(2020年22期)2020-09-15 07:47:08
誰(shuí)動(dòng)了凡·高的物品
歡迎來(lái)到圖書(shū)借閱角
班里有個(gè)圖書(shū)角
我是小字典
正版字典
讀者(2016年14期)2016-06-29 17:25:50
绥阳县| 安溪县| 邵东县| 东至县| 金川县| 喀喇沁旗| 镇坪县| 陵川县| 益阳市| 巴林右旗| 神农架林区| 馆陶县| 湖北省| 梁平县| 平塘县| 安龙县| 云梦县| 宁都县| 延寿县| 吴旗县| 安岳县| 正阳县| 浑源县| 巧家县| 灌云县| 德江县| 汾阳市| 九寨沟县| 望江县| 富源县| 平邑县| 青海省| 东山县| 枝江市| 湘潭市| 天门市| 托克托县| 长葛市| 鲁甸县| 迭部县| 吉隆县|