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

?

基于UBCF算法在圖書館個(gè)性化資源推薦中的應(yīng)用研究

2024-01-27 13:41聶偉鄭冰樹
電腦知識與技術(shù) 2023年36期
關(guān)鍵詞:個(gè)性化推薦圖書館

聶偉 鄭冰樹

摘要:針對讀者對圖書館圖書資源無法快速獲取的問題,引入基于用戶的協(xié)同過濾算法,對圖書館歷史數(shù)據(jù)進(jìn)行分析,構(gòu)建了讀者喜好度矩陣,并根據(jù)矩陣使用UBCF算法對數(shù)據(jù)建立推薦分類模型,進(jìn)而獲取讀者的閱讀行為和興趣愛好,借助該算法對讀者進(jìn)行有目的的推薦,提高讀者對圖書資源信息的有效獲取,實(shí)現(xiàn)圖書館個(gè)性化推薦服務(wù)。

關(guān)鍵詞:協(xié)同過濾算法;余弦相似度;圖書館;個(gè)性化推薦

中圖分類號:TP312? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2023)36-0022-03

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)

0 引言

隨著人工智能技術(shù)的發(fā)展,出現(xiàn)了很多個(gè)性化推薦技術(shù),特別是基于用戶的協(xié)同過濾(User-based Collaborative Filtering,簡稱UCBF)算法[1-2],在很多領(lǐng)域也得到了應(yīng)用。各個(gè)高校館藏書籍資源都很多,但是當(dāng)讀者進(jìn)入圖書館尋找需要的、符合自身需求的圖書資源,還是需要花很多時(shí)間和精力。當(dāng)前,各個(gè)高校圖書館在進(jìn)行閱讀推廣的時(shí)候,大多采用海報(bào)的形式進(jìn)行靜態(tài)推廣[3]。這種方式局限性較大,不能根據(jù)讀者的閱讀行為和興趣愛好進(jìn)行個(gè)性化推薦。針對這種情形,文本把UCBF算法用于圖書館圖書資源的個(gè)性化推薦,幫助讀者能迅速定位到自己滿意的書籍資源,更好地滿足讀者的需求,進(jìn)而促進(jìn)高校圖書資源借閱量的提升。

1 UBCF算法基本原理

1.1 基于用戶的協(xié)同過濾算法

UCBF算法是常用的推薦算法之一,在個(gè)性化資源推薦領(lǐng)域應(yīng)用非常廣泛[4]。UCBF算法的基本原理是對大量的讀者歷史行為數(shù)據(jù)進(jìn)行分析,找出他們之間的關(guān)聯(lián),然后再依據(jù)這些關(guān)聯(lián)信息推薦相關(guān)的圖書給興趣度相似的讀者[5]。UCBF算法在執(zhí)行的過程中,首先必須通過對歷史數(shù)據(jù)的分析,找到和目標(biāo)讀者閱讀習(xí)慣和行為相似的用戶集,接著對用戶集的讀者以興趣度為關(guān)聯(lián)進(jìn)行圖書推薦[6]。

1.2 余弦相似度[7-8]

UCBF算法是通過計(jì)算兩個(gè)讀者之間的相似度來體現(xiàn)他們的關(guān)聯(lián)程度[9],而相似度的計(jì)算采用余弦相似度。在圖書館圖書的個(gè)性化推薦中,通過計(jì)算圖書借閱數(shù)據(jù)分析出具有相似閱讀習(xí)慣的讀者,然后向具有相同閱讀習(xí)慣的讀者推薦他沒有接觸過的圖書資源。一般而言,余弦值會(huì)落在[-1,1]的范圍內(nèi),該值越接近1就表示兩個(gè)目標(biāo)之間相似度越高。余弦相似度的計(jì)算公式為:

[WUV=I(U)?I(V)I(U)||I(V)? ? ? ? ? ? ? ? ? ? ? ? (1)]

公式(1)表示目標(biāo)用戶U與用戶V對圖書資源喜歡的相似度。其中,I(U)表示歷史數(shù)據(jù)中用戶U喜歡的圖書資源集合,I(V)表示歷史數(shù)據(jù)中用戶V喜歡的圖書資源。

2 UBCF算法在圖書館個(gè)性化資源推薦中的應(yīng)用

2.1 數(shù)據(jù)的抽取

為了進(jìn)一步驗(yàn)證UBCF算法在圖書館個(gè)性化圖書資源推薦中的有效性,本實(shí)驗(yàn)從某高校圖書館借閱系統(tǒng)中抽取111 352筆圖書館各種行為的信息記錄數(shù)據(jù)進(jìn)行驗(yàn)證,部分?jǐn)?shù)據(jù)截圖見圖1,抽取的圖書資源館藏狀態(tài)見圖2。從圖中可以看到,圖書借還比例接近1∶1,符合實(shí)驗(yàn)要求。對抽取出來的圖書數(shù)據(jù)進(jìn)行清洗,填充缺失值,提升數(shù)據(jù)質(zhì)量。經(jīng)過統(tǒng)計(jì),實(shí)驗(yàn)抽取的數(shù)據(jù)總共涉及55 676本不同類型的書籍,7 698名讀者。本次實(shí)驗(yàn)用到的數(shù)據(jù)維度見表1。

2.2 矩陣的生成

本實(shí)驗(yàn)使用R語言編寫,在實(shí)驗(yàn)過程中使用第三方資源包recommenderlab來擬合個(gè)性化圖書推薦模型。為了能得到更好的、更精準(zhǔn)的推薦模型,本文將數(shù)據(jù)整理為用戶對某個(gè)分類的喜好度,然后向用戶推薦出他可能喜好的分類[10]。基于此,用代碼生成一個(gè)名為realRatingMatrix的喜好度矩陣,核心代碼見算法1。

算法1:R語言生成名為realRatingMatrix的喜好度矩陣核心代碼

stu<-levels(as.factor(sete$NAME))

userNo<-tibble(

No=seq_along(stu),

stu=stu

for (i in seq_along(sete$NAME)) {

sete$NAME[i]<-userNo$No[which(userNo$stu==sete$NAME[i])]

}

sete4<-group_by(sete,NAME,CLASSNO)%>%

summarise(n=n())

summary(sete4)

sete4$CLASSNO<-toupper(sete4$CLASSNO)

#將CLASSNO列存儲(chǔ)為數(shù)字,便于數(shù)據(jù)填充

for (i in seq_along(sete4$CLASSNO)) {

sete4$CLASSNO[i]<-which(type$No==sete4$CLASSNO[i])

}

sete4$CLASSNO<-as.integer(sete4$CLASSNO)

stu<-levels(as.factor(title$NAME))

recom<-matrix(nrow=length(stu),ncol=length(sete2$type),

dimnames = list(seq_along(stu),type$No))

#將數(shù)據(jù)填充到矩陣中

for (i in seq_along(sete4$NAME)) {

recom[sete4$NAME[i],sete4$CLASSNO[i]]<-sete4$n[i]

}

recom<-as(recom,'realRatingMatrix')

2.3 具體應(yīng)用

有了讀者喜好度矩陣realRatingMatrix,接下來就可以利用該矩陣,使用UBCF算法通過遍歷7 698名讀者的借閱數(shù)據(jù),并對編號為7 741的用戶推薦分類模型,核心代碼見算法2。

算法2:使用UBCF算法建立推薦分類模型,把結(jié)果存入book_user_1數(shù)據(jù)集中

recom.m <- Recommender(recom[1:7698], method = "UBCF")

#預(yù)測用戶編號為7741:7748的喜好分類,使用topNList算法,輸出前三個(gè),因此n=3

recom.predict <- predict(recom.m,recom[7741:7741],n=3)

recc_user_1 <- recom.predict@items[[1]]

book_user_1<- recom.predict@itemLabels[recc_user_1]

通過算法2已經(jīng)獲得了用戶可能喜好的分類,為了能進(jìn)一步深入地使用這個(gè)預(yù)測出來的分類實(shí)現(xiàn)對用戶的個(gè)性化推薦,同時(shí)避免該模型的失真情形,本實(shí)驗(yàn)中,選擇利用UBCF算法再重新擬合一個(gè)模型,結(jié)合算法2推薦出來的分類來將推薦出來的書籍進(jìn)行過濾,實(shí)現(xiàn)對用戶的個(gè)性化推薦。本實(shí)驗(yàn)隨機(jī)抽取記錄號為7 741的數(shù)據(jù)進(jìn)行驗(yàn)證,驗(yàn)證代碼見算法4。按興趣度最高的20本進(jìn)行排序,核心代碼見算法3。

算法3:重新擬合并推薦前20本最喜歡的書籍,把結(jié)果存入book_user_2中

book<-levels(as.factor(sete$TITLE))

bookNo<-tibble(

No=seq_along(book),

book=book

for (i in seq_along(sete$TITLE)) {

sete$TITLE[i]<-bookNo$No[which(bookNo$book==sete$TITLE[i])]

}

sete$TITLE<-as.integer(sete$TITLE)

recom.book<-matrix(data=0,nrow=length(stu),ncol=length(bookNo$book),

dimnames = list(1:7698,bookNo$book))

for (i in seq_along(sete$TITLE)) {

recom.book[sete$NAME[i],sete$TITLE[i]]<-1

}

#0-1二元矩陣:binaryRatingMatrix

recom.book<-as(recom.book,'binaryRatingMatrix')

recom.book.m<-Recommender(recom.book[1:7698],method="UBCF")

recommend.UBCF <- predict(recom.book.m,recom.book[7741:7741] , n = 20)

recc_user_2 <- recommend.IBCF@items[[1]]

book_user_2 <- recommend.IBCF@itemLabels[recc_user_2]

查看算法3的結(jié)果,如圖3所示。

從圖3的結(jié)果可以看到,使用UCBF算法重新擬合的推薦模型能很好地進(jìn)行推薦。

3 總結(jié)

本文嘗試將UBCF算法用于圖書館個(gè)性化圖書資源推薦服務(wù)中,利用圖書館存在歷史數(shù)據(jù),借助UBCF算法對數(shù)據(jù)進(jìn)行分析,找出讀者間潛在的相似的閱讀行為和閱讀愛好,對其進(jìn)行圖書資源的個(gè)性化推薦,提高讀者對目標(biāo)圖書信息的獲取。實(shí)驗(yàn)結(jié)果表明,UBCF算法對提升圖書館的個(gè)性化推薦服務(wù)有很好的效果。

參考文獻(xiàn):

[1] 趙雨帆,郭夢潔.基于協(xié)同過濾算法的志愿者服務(wù)平臺(tái)的實(shí)現(xiàn)[J].河南科技,2021,40(11):14-16.

[2] 鄭思霞,閉應(yīng)洲,潘懷奇,等.一種基于用戶的協(xié)同過濾與人氣排行榜的融合推薦算法[J].南寧師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,37(1):63-68.

[3] 張盼盼,劉凱凱.基于協(xié)同過濾算法的圖書推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2023(8):144-146.

[4] 石弘利,王從瑜,謝維奇.基于協(xié)同過濾算法的教育平臺(tái)課程推薦的研究[J].電腦知識與技術(shù),2021,17(34):19-22.

[5] 張雙慶.一種基于用戶的協(xié)同過濾推薦算法[J].電腦知識與技術(shù),2019,15(1):19-21.

[6] 凌坤,姜久雷,李盛慶.基于改進(jìn)用戶畫像的協(xié)同過濾推薦算法[J].計(jì)算機(jī)仿真,2022,39(12):533-541.

[7] 廖天星,王玲.融合項(xiàng)目標(biāo)簽相似性的協(xié)同過濾推薦算法[J].計(jì)算機(jī)應(yīng)用,2018,38(4):1007-1011,1022.

[8] 馬建強(qiáng),徐太星.協(xié)同過濾算法下公共計(jì)算機(jī)慕課資源推薦系統(tǒng)[J].現(xiàn)代電子技術(shù),2022,45(23):177-181.

[9] 董躍華,朱純煜.基于改進(jìn)用戶屬性評分的協(xié)同過濾算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2020,41(2):425-431.

[10] 劉姜.基于大數(shù)據(jù)的用戶畫像構(gòu)建方法與運(yùn)用探究[J].科技創(chuàng)新與應(yīng)用,2022,12(9):139-142.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
個(gè)性化推薦圖書館
圖書館
基于遠(yuǎn)程教育的個(gè)性化知識服務(wù)研究
巢湖市| 宝兴县| 疏勒县| 三原县| 潢川县| 都昌县| 韩城市| 崇仁县| 高雄县| 社旗县| 收藏| 辽源市| 开平市| 博客| 武强县| 哈尔滨市| 改则县| 嘉义县| 牙克石市| 耒阳市| 东阿县| 芜湖市| 灵宝市| 蒙城县| 灌云县| 绥化市| 观塘区| 九寨沟县| 泗水县| 右玉县| 高陵县| 青州市| 阿合奇县| 缙云县| 自治县| 奈曼旗| 上饶县| 莲花县| 勐海县| 纳雍县| 郧西县|