張揚(yáng) 彭明坤 蔡莉 金力 孫大勇
關(guān)鍵詞:新聞推薦系統(tǒng);總體結(jié)構(gòu)設(shè)計(jì);協(xié)同過濾算法
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)03-0060-02
0 引言
當(dāng)前人們獲取新聞的方式已從傳統(tǒng)的報(bào)紙端轉(zhuǎn)向數(shù)字新聞端。面對(duì)瀏覽器中海量的新聞內(nèi)容,如何快速有效的閱讀到自己感興趣的信息,已成為當(dāng)前亟待解決的問題,為此開發(fā)了基于每位讀者閱讀興趣的新聞推薦系統(tǒng),以提高人們閱讀新聞的效率。
1 系統(tǒng)設(shè)計(jì)思路
系統(tǒng)最終要求管理者能夠通過簡(jiǎn)潔的前端頁面完成相關(guān)的新聞發(fā)布,同時(shí)也能從多角度思考理解大眾用戶的需求,以方便瀏覽者隨時(shí)隨地閱讀所感興趣的新聞。這就要求在設(shè)計(jì)系統(tǒng)時(shí),應(yīng)從數(shù)據(jù)收集、相似度計(jì)算、用戶集合篩選、新聞推薦以及反饋優(yōu)化等方面進(jìn)行考慮以實(shí)現(xiàn)基于用戶行為的個(gè)性化新聞推薦需要[1]。
本系統(tǒng)采用Java作為編程語言,運(yùn)行于Windows 平臺(tái),應(yīng)用程序部署于Tomcat上,對(duì)于服務(wù)器上的數(shù)據(jù)使用MySQL接口以實(shí)現(xiàn)交互式響應(yīng),最終效果呈現(xiàn)于服務(wù)器上,使用Navicat Premium連接MySQL數(shù)據(jù)庫(kù),從而使各個(gè)功能以圖形化界面展示。
2 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
2.1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)設(shè)計(jì)了新聞后臺(tái)管理者和瀏覽用戶兩個(gè)角色。對(duì)應(yīng)總體結(jié)構(gòu)如圖1所示。
2.2 新聞發(fā)布順序
本系統(tǒng)中,新聞發(fā)布是主要特性。為了完成新聞的添加工作,管理員首先需要通過輸入賬號(hào)密碼登錄管理后臺(tái)進(jìn)入新聞管理的主頁。接著,通過新聞管理選項(xiàng),選擇新聞編輯,然后在網(wǎng)頁中編輯新聞標(biāo)題、類別、內(nèi)容等信息,并點(diǎn)擊提交[2]。最后,管理員需要刷新服務(wù)器緩存,以完成新聞添加。這些步驟按照特定的時(shí)間順序進(jìn)行,確保新聞添加的順利完成。
3 系統(tǒng)采用的核心算法
從系統(tǒng)的核心功能考慮,采用了基于用戶的協(xié)同過濾算法以實(shí)現(xiàn)新聞推薦功能。該算法的優(yōu)點(diǎn)是簡(jiǎn)單易懂,個(gè)性化程度高。然而,該算法存在數(shù)據(jù)稀疏性和冷啟動(dòng)問題。為了解決這些問題,系統(tǒng)同時(shí)采用基于統(tǒng)計(jì)的熱點(diǎn)推薦和標(biāo)簽隨機(jī)推薦來解決數(shù)據(jù)稀疏性和冷啟動(dòng)問題,從而解決了新用戶登錄或系統(tǒng)剛實(shí)施而無法進(jìn)行個(gè)性化推薦的問題[3]。
基于用戶的協(xié)同過濾是一種常見的推薦算法,它基于用戶之間的相似性來進(jìn)行推薦。本系統(tǒng)是根據(jù)用戶對(duì)新聞的評(píng)分,為目標(biāo)用戶找到評(píng)分相同或者相近的用戶,這些評(píng)分相同或者相近的用戶稱之為目標(biāo)用戶的近鄰用戶,然后在這些近鄰用戶中找出目標(biāo)用戶沒有評(píng)分行為同時(shí)近鄰用戶同時(shí)有評(píng)分行為的新聞,最后將這些新聞推薦給目標(biāo)用戶。
基于用戶的協(xié)同過濾算法推薦過程可分以下4個(gè)步驟進(jìn)行。
步驟1:構(gòu)建用戶-新聞評(píng)分矩陣
根據(jù)用戶對(duì)新聞的評(píng)分?jǐn)?shù)據(jù),M個(gè)用戶和N個(gè)項(xiàng)目最大有M×N條用戶對(duì)項(xiàng)目的評(píng)分?jǐn)?shù)據(jù),記為矩陣MN,在計(jì)算機(jī)語言中可以通過一個(gè)二維數(shù)組來表達(dá)array,用戶用數(shù)組下標(biāo)0-M表示,項(xiàng)目用數(shù)組下標(biāo)0-N表示,矩陣MN圖形如表1所示(新聞評(píng)分:0~5;0表示用戶對(duì)項(xiàng)目沒有評(píng)分;M=53,N=152) 。
步驟2:計(jì)算用戶之間相似度
根據(jù)余弦算法計(jì)算用戶之間相似度,余弦相似度計(jì)算公式如下:
通過以上過程,再結(jié)合熱點(diǎn)推薦和標(biāo)簽推薦算法,將最終推薦結(jié)果通過前端展示給用戶,以此實(shí)現(xiàn)個(gè)性化新聞推薦。
4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)使用JAVA語言編寫,后臺(tái)數(shù)據(jù)庫(kù)是MySQL,采用比較主流的SSM框架搭建。
4.1 后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)
在系統(tǒng)的開發(fā)階段,后臺(tái)數(shù)據(jù)暫且存放于輕量級(jí)的數(shù)據(jù)庫(kù)MySQL中,主要設(shè)計(jì)了管理表、用戶表、新聞?lì)愋捅?、評(píng)分記錄表等表格。
4.2 前端界面設(shè)計(jì)
系統(tǒng)大致分為前端和后端模塊。用戶通過前端頁面瀏覽新聞,新聞管理員在后臺(tái)對(duì)新聞發(fā)布編輯修改。以下分別介紹幾個(gè)模塊的相關(guān)功能。
4.2.1 前臺(tái)用戶功能模塊
用戶通過注冊(cè)、登錄首頁后,可以查看新聞列表、熱點(diǎn)推薦、個(gè)性化推薦、設(shè)置用戶信息等內(nèi)容,并進(jìn)行相關(guān)操作。例如當(dāng)用戶點(diǎn)擊新聞后,在新聞首頁的搜索欄輸入標(biāo)題,進(jìn)行查詢,新聞信息可以看到新聞?lì)愋?、封面圖片、添加時(shí)間、添加收藏評(píng)論、新聞內(nèi)容、新聞評(píng)分分析等信息,然后可以點(diǎn)擊收藏或者評(píng)論等操作。當(dāng)用戶點(diǎn)擊新聞時(shí),相關(guān)推薦板塊根據(jù)當(dāng)前新聞所屬新聞?lì)愋瓦M(jìn)行隨機(jī)推薦。相關(guān)推薦界面如圖2 所示。
在系統(tǒng)的首頁中顯示有熱點(diǎn)新聞和個(gè)性化推薦兩個(gè)板塊。其中熱點(diǎn)新聞根據(jù)新聞被收藏?cái)?shù)量降序推薦。個(gè)性化推薦基于用戶的協(xié)同過濾算法進(jìn)行推薦[6]。
4.2.2 后臺(tái)管理員功能模塊
管理員登錄系統(tǒng)后,可以看到系統(tǒng)相關(guān)數(shù)據(jù)統(tǒng)計(jì)、用戶管理、新聞?lì)愋凸芾怼⑾埠脴?biāo)簽管理、評(píng)分記錄管理、收藏記錄管理、評(píng)價(jià)記錄管理、瀏覽記錄管理等進(jìn)行相應(yīng)的操作管理,管理員功能如圖3所示。
管理員點(diǎn)擊新聞管理后在新聞管理頁面對(duì)標(biāo)題、新聞?lì)愋汀l(fā)布時(shí)間、新聞內(nèi)容等信息進(jìn)行查詢,新增或刪除新聞等操作。當(dāng)管理員點(diǎn)擊系統(tǒng)數(shù)據(jù),可以查詢用戶數(shù)量、新聞?lì)愋蛿?shù)量、新聞數(shù)量、評(píng)分記錄數(shù)量、收藏記錄數(shù)量以及評(píng)論記錄數(shù)量。
5 結(jié)論
開發(fā)的個(gè)性化新聞推薦系統(tǒng)在試用期間,運(yùn)行流暢,能在第一時(shí)間將用戶所感興趣的信息推送到面前,效果令人滿意。
在下一步的工作中,將在系統(tǒng)中嘗試使用基于多種推薦算法的混合推薦算法,以提高推送新聞的精準(zhǔn)度,同時(shí)采用增加屏蔽關(guān)鍵字技術(shù),提高新聞推薦系統(tǒng)的智能化程度。
【通聯(lián)編輯:聞翔軍】