渦陽縣第五中學(xué) 王捍軍
阜陽師范大學(xué) 王 穩(wěn)
為了商家可以更容易去把握用戶的個(gè)人喜好,同時(shí)也使用戶能夠及時(shí)獲得自己所需要的相關(guān)圖書而不用再去耗時(shí)耗力地自行查找,本文設(shè)計(jì)和開發(fā)了圖書推薦系統(tǒng)。此系統(tǒng)使用MVC開發(fā)模式,前端使用JSP技術(shù),后臺(tái)設(shè)計(jì)和數(shù)據(jù)庫的鏈接是使用Java進(jìn)行的開發(fā),數(shù)據(jù)庫使用Mysql。整個(gè)系統(tǒng)可以實(shí)現(xiàn)用戶的注冊(cè)登錄、搜索和瀏覽圖書、購買和收藏圖書;系統(tǒng)的推薦圖書;管理員的增刪改管理圖書。
由于信息技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)上的信息量正在爆炸式增長(zhǎng),這不僅使企業(yè)難以準(zhǔn)確獲取用戶信息,而且使用戶無法獲得真正有用的信息。這對(duì)他們而言,使用網(wǎng)絡(luò)反而達(dá)不到更方便和有效的目的,這也是網(wǎng)絡(luò)時(shí)代信息過載的問題。圖書作為人們?nèi)粘I钪行蓍e放松、自我提升等的重要工具,自然也不能被科技發(fā)展的潮流所淘汰,圖書推薦系統(tǒng)也就有了出現(xiàn)的必要?;诖?,本文設(shè)計(jì)和開發(fā)了圖書推薦系統(tǒng),準(zhǔn)確地分析用戶的需求,為用戶提供更好的購書體驗(yàn)。
需求分析的作用是至關(guān)重要的,完整準(zhǔn)確的需求分析是系統(tǒng)能否成功實(shí)現(xiàn)的關(guān)鍵,本圖書推薦系統(tǒng)進(jìn)行了詳細(xì)的需求分析,先后了解過校圖書館、淘寶書籍網(wǎng)店、電子圖書商鋪等線上線下圖書類商鋪。本系統(tǒng)需要完成三個(gè)大的模塊,分別是推薦模塊、用戶模塊和管理員模塊。用戶模塊下要實(shí)現(xiàn)的有用戶登錄和注冊(cè)子模塊、圖書搜索和瀏覽子模塊、圖書加入購物車和訂單子模塊以及個(gè)人中心子模塊;管理員模塊下要實(shí)現(xiàn)管理員登陸子模塊、圖書管理子模塊、用戶管理子模塊以及對(duì)當(dāng)前銷售榜單的下載子模塊,其中圖書管理模塊中再包含圖書的增刪改模塊,用戶管理模塊再包括對(duì)用戶信息的查詢和瀏覽模塊。系統(tǒng)需要完成的業(yè)務(wù)功能如圖1所示。
(1)用戶模塊
游客用戶可以瀏覽系統(tǒng)主頁,但游客要進(jìn)行瀏覽圖書等其他操作必須先進(jìn)行登錄。注冊(cè)登陸成功后,用戶可以進(jìn)行系統(tǒng)提供的功能操作,在完成后,點(diǎn)擊注銷就會(huì)返回系統(tǒng)原始主界面。用戶在登陸系統(tǒng)后,可在查詢目標(biāo)圖書,如果查詢成功則可以瀏覽圖書信息,用戶可以在這里選擇將圖書加入購物車操作。用戶進(jìn)入圖書信息頁面,可以進(jìn)行將圖書加入購物車的操作,加入購物車后,用戶可查看自己加入購物車的圖書,并可以在訂單中選擇支付方式并填寫支付信息,訂單開啟后用戶需選擇付費(fèi)方式,完成后,系統(tǒng)將提醒發(fā)貨。
圖1 業(yè)務(wù)功能圖
(2)管理員模塊
管理員用戶不可注冊(cè),直接在系統(tǒng)數(shù)據(jù)庫中添加,管理員用戶登陸之后才能使用管理員權(quán)限。當(dāng)管理員進(jìn)入系統(tǒng)后,可以對(duì)失效圖書以及缺貨圖書進(jìn)行信息刪除;而當(dāng)有新書入庫時(shí),管理員需要添加圖書信息;當(dāng)圖書價(jià)格、數(shù)量等信息變動(dòng)時(shí),管理員由此來修改圖書信息。用戶注冊(cè)后,他的個(gè)人信息會(huì)在管理員模塊更新,對(duì)于這個(gè)用戶的信息,管理員可以進(jìn)行瀏覽操作,但是不能修改具體內(nèi)容。
圖2 數(shù)據(jù)模型
(3)圖書推薦模塊
用戶第一次登錄系統(tǒng)時(shí),系統(tǒng)會(huì)默認(rèn)推薦五本書,若用戶產(chǎn)生將圖書加入購物車或購買等歷史紀(jì)錄后,系統(tǒng)會(huì)自動(dòng)收集這些圖書的特征屬性,分析出用戶可能感興趣的其他書,并在用戶下次登陸時(shí)推送給用戶。
本系統(tǒng)有書籍和用戶兩個(gè)的主要實(shí)體,它們之間通過購買操作和加入購物車操作來產(chǎn)生聯(lián)系。數(shù)據(jù)模型如圖2所示。
首先,考慮書本的特征詞的提取。在本系統(tǒng)中,每本書籍都有簡(jiǎn)要介紹,所以我們可以使用書籍的關(guān)鍵字來當(dāng)做書籍的簡(jiǎn)要介紹內(nèi)容,這些關(guān)鍵字由管理員在添加圖書時(shí)進(jìn)行錄入。然后,需要考慮生成用戶的配置文件,因?yàn)橛脩舻呐渲梦募硎居脩舻呐d趣點(diǎn),這些興趣點(diǎn)是通過對(duì)用戶對(duì)書籍的歷史操作進(jìn)行分析而得出來的。用戶的將書籍收入購物車操作或購買書籍操作在一定程度上代表了用戶的喜好。數(shù)據(jù)庫中的relate表記錄了被用戶加入購物車或購買的書籍。在分析用戶時(shí),在數(shù)據(jù)庫的relate表中獲得與用戶ID相對(duì)應(yīng)的所有書籍。然后,從數(shù)據(jù)庫的book表中提取與這些書的ID號(hào)對(duì)應(yīng)的書籍簡(jiǎn)要介紹即關(guān)鍵字并進(jìn)行疊加。而在疊加后,根據(jù)字頻從高到低對(duì)單詞進(jìn)行排序,列出前5個(gè)單詞,所以我們有理由認(rèn)為這5個(gè)詞在某種程度上代表了用戶的興趣。最后,也就是推薦建議結(jié)果的出現(xiàn)。將表示用戶興趣的5個(gè)單詞與每本書中的關(guān)鍵詞進(jìn)行比較,并使用余弦相似度算法去計(jì)算每本書與用戶的配置文件之間的相似度。此時(shí),就可以向當(dāng)前用戶推薦那些具有高度相似性的書籍了。至此,推薦功能的整個(gè)過程也就完成了。另外,由于新注冊(cè)的用戶沒有對(duì)書籍進(jìn)行相關(guān)操作,因此在首次登錄時(shí)系統(tǒng)默認(rèn)會(huì)推薦五本書。該圖書推薦系統(tǒng)的實(shí)現(xiàn)流程圖如圖3所示。
圖3 系統(tǒng)推薦圖書流程圖
推薦算法的核心思想是計(jì)算用戶和對(duì)象之間的相似性。本系統(tǒng)使用基于余弦相似性的算法,該算法的概念是為每個(gè)用戶和對(duì)象都各構(gòu)建一個(gè)特征向量,然后將兩個(gè)向量放置在向量空間模型中。在這個(gè)空間模型中,兩個(gè)向量之間的角度清晰地使兩者相似度表示出來,即兩個(gè)矢量越相似,兩個(gè)矢量之間的角度就越接近0,這個(gè)角的的cos值就越接近1。
圖書的相似度計(jì)算公式如公式(1)所示:
其中x1k、x2k分別是a(x11,x12, …,x1n)和b(x21,x22, …,x2n)兩個(gè)n維特征向量的特征詞。系統(tǒng)把相似度比較大的圖書推薦給用戶。
本系統(tǒng)主要涉及的數(shù)據(jù)庫關(guān)系表有圖書表、用戶圖書關(guān)系表和用戶表等。
表1 book表
表2 relate表
表3 user表
book(圖書表),包含圖書id號(hào)、圖書名、價(jià)格、封面路徑、圖書數(shù)量、關(guān)鍵詞簡(jiǎn)介,如表1所示。
relate(用戶圖書關(guān)系表),存儲(chǔ)用戶加入購物車或者購買的圖書的信息記錄,包含關(guān)系id、用戶id、書籍id和一個(gè)狀態(tài)標(biāo)記(1表示收藏,0表示購買),如表2所示。
user(用戶表),包含用戶id、姓名、昵稱、密碼、郵箱、更新時(shí)間,如表3所示。
本系統(tǒng)使用MVC開發(fā)模式,前端使用JSP技術(shù),后臺(tái)設(shè)計(jì)以及和數(shù)據(jù)庫的鏈接使用Java進(jìn)行開發(fā),數(shù)據(jù)庫使用Mysql。
主界面是未登錄用戶和游客進(jìn)入系統(tǒng)后的第一個(gè)界面,可以在主界面上實(shí)現(xiàn)用戶登錄、游客注冊(cè)、管理員頁面跳轉(zhuǎn)、瀏覽圖書目錄等功能,并且主界面還實(shí)現(xiàn)了促銷圖書的幻燈片顯示。系統(tǒng)主界面如圖4所示。
圖4 系統(tǒng)主界面
圖5 默認(rèn)推薦界面圖
新用戶進(jìn)入系統(tǒng)后,系統(tǒng)會(huì)推薦五本默認(rèn)的書籍,當(dāng)老用戶進(jìn)入系統(tǒng)后,系統(tǒng)會(huì)根據(jù)用戶的操作自動(dòng)化推薦五本書。默認(rèn)推薦界面如圖5所示。
總結(jié):用戶個(gè)人信息以及交易數(shù)據(jù)爆發(fā)式增長(zhǎng),使得線上商家對(duì)用戶個(gè)人數(shù)據(jù)的分析和對(duì)書籍的管理變得難上加難。而推薦系統(tǒng)的出現(xiàn),使得商家可以更容易去把握用戶的個(gè)人喜好,同時(shí)也使用戶能夠及時(shí)獲得自己所需要的相關(guān)圖書而不用再去耗時(shí)耗力的自行查找,成功的實(shí)現(xiàn)了商家和用戶的共贏。為此,本文設(shè)計(jì)和開發(fā)了圖書推薦系統(tǒng),該系統(tǒng)可以實(shí)現(xiàn)用戶的注冊(cè)登錄、搜索和瀏覽圖書、購買和收藏圖書;系統(tǒng)的推薦圖書;管理員的增刪改管理圖書。當(dāng)然系統(tǒng)中還有其他的很多問題,還需去改進(jìn),尤其是在推薦功能的實(shí)現(xiàn)中,要加入分詞器提取關(guān)鍵詞,而且在推薦算法中,也要加入同義詞分析,這樣能夠更加準(zhǔn)確地為用戶推薦相關(guān)圖書。