渦陽縣第五中學 王捍軍
阜陽師范大學 王 穩
為了商家可以更容易去把握用戶的個人喜好,同時也使用戶能夠及時獲得自己所需要的相關圖書而不用再去耗時耗力地自行查找,本文設計和開發了圖書推薦系統。此系統使用MVC開發模式,前端使用JSP技術,后臺設計和數據庫的鏈接是使用Java進行的開發,數據庫使用Mysql。整個系統可以實現用戶的注冊登錄、搜索和瀏覽圖書、購買和收藏圖書;系統的推薦圖書;管理員的增刪改管理圖書。
由于信息技術的快速發展,互聯網上的信息量正在爆炸式增長,這不僅使企業難以準確獲取用戶信息,而且使用戶無法獲得真正有用的信息。這對他們而言,使用網絡反而達不到更方便和有效的目的,這也是網絡時代信息過載的問題。圖書作為人們日常生活中休閑放松、自我提升等的重要工具,自然也不能被科技發展的潮流所淘汰,圖書推薦系統也就有了出現的必要。基于此,本文設計和開發了圖書推薦系統,準確地分析用戶的需求,為用戶提供更好的購書體驗。
需求分析的作用是至關重要的,完整準確的需求分析是系統能否成功實現的關鍵,本圖書推薦系統進行了詳細的需求分析,先后了解過校圖書館、淘寶書籍網店、電子圖書商鋪等線上線下圖書類商鋪。本系統需要完成三個大的模塊,分別是推薦模塊、用戶模塊和管理員模塊。用戶模塊下要實現的有用戶登錄和注冊子模塊、圖書搜索和瀏覽子模塊、圖書加入購物車和訂單子模塊以及個人中心子模塊;管理員模塊下要實現管理員登陸子模塊、圖書管理子模塊、用戶管理子模塊以及對當前銷售榜單的下載子模塊,其中圖書管理模塊中再包含圖書的增刪改模塊,用戶管理模塊再包括對用戶信息的查詢和瀏覽模塊。系統需要完成的業務功能如圖1所示。
(1)用戶模塊
游客用戶可以瀏覽系統主頁,但游客要進行瀏覽圖書等其他操作必須先進行登錄。注冊登陸成功后,用戶可以進行系統提供的功能操作,在完成后,點擊注銷就會返回系統原始主界面。用戶在登陸系統后,可在查詢目標圖書,如果查詢成功則可以瀏覽圖書信息,用戶可以在這里選擇將圖書加入購物車操作。用戶進入圖書信息頁面,可以進行將圖書加入購物車的操作,加入購物車后,用戶可查看自己加入購物車的圖書,并可以在訂單中選擇支付方式并填寫支付信息,訂單開啟后用戶需選擇付費方式,完成后,系統將提醒發貨。

圖1 業務功能圖
(2)管理員模塊
管理員用戶不可注冊,直接在系統數據庫中添加,管理員用戶登陸之后才能使用管理員權限。當管理員進入系統后,可以對失效圖書以及缺貨圖書進行信息刪除;而當有新書入庫時,管理員需要添加圖書信息;當圖書價格、數量等信息變動時,管理員由此來修改圖書信息。用戶注冊后,他的個人信息會在管理員模塊更新,對于這個用戶的信息,管理員可以進行瀏覽操作,但是不能修改具體內容。

圖2 數據模型
(3)圖書推薦模塊
用戶第一次登錄系統時,系統會默認推薦五本書,若用戶產生將圖書加入購物車或購買等歷史紀錄后,系統會自動收集這些圖書的特征屬性,分析出用戶可能感興趣的其他書,并在用戶下次登陸時推送給用戶。
本系統有書籍和用戶兩個的主要實體,它們之間通過購買操作和加入購物車操作來產生聯系。數據模型如圖2所示。
首先,考慮書本的特征詞的提取。在本系統中,每本書籍都有簡要介紹,所以我們可以使用書籍的關鍵字來當做書籍的簡要介紹內容,這些關鍵字由管理員在添加圖書時進行錄入。然后,需要考慮生成用戶的配置文件,因為用戶的配置文件表示用戶的興趣點,這些興趣點是通過對用戶對書籍的歷史操作進行分析而得出來的。用戶的將書籍收入購物車操作或購買書籍操作在一定程度上代表了用戶的喜好。數據庫中的relate表記錄了被用戶加入購物車或購買的書籍。在分析用戶時,在數據庫的relate表中獲得與用戶ID相對應的所有書籍。然后,從數據庫的book表中提取與這些書的ID號對應的書籍簡要介紹即關鍵字并進行疊加。而在疊加后,根據字頻從高到低對單詞進行排序,列出前5個單詞,所以我們有理由認為這5個詞在某種程度上代表了用戶的興趣。最后,也就是推薦建議結果的出現。將表示用戶興趣的5個單詞與每本書中的關鍵詞進行比較,并使用余弦相似度算法去計算每本書與用戶的配置文件之間的相似度。此時,就可以向當前用戶推薦那些具有高度相似性的書籍了。至此,推薦功能的整個過程也就完成了。另外,由于新注冊的用戶沒有對書籍進行相關操作,因此在首次登錄時系統默認會推薦五本書。該圖書推薦系統的實現流程圖如圖3所示。

圖3 系統推薦圖書流程圖
推薦算法的核心思想是計算用戶和對象之間的相似性。本系統使用基于余弦相似性的算法,該算法的概念是為每個用戶和對象都各構建一個特征向量,然后將兩個向量放置在向量空間模型中。在這個空間模型中,兩個向量之間的角度清晰地使兩者相似度表示出來,即兩個矢量越相似,兩個矢量之間的角度就越接近0,這個角的的cos值就越接近1。
圖書的相似度計算公式如公式(1)所示:

其中x1k、x2k分別是a(x11,x12, …,x1n)和b(x21,x22, …,x2n)兩個n維特征向量的特征詞。系統把相似度比較大的圖書推薦給用戶。
本系統主要涉及的數據庫關系表有圖書表、用戶圖書關系表和用戶表等。

表1 book表

表2 relate表

表3 user表
book(圖書表),包含圖書id號、圖書名、價格、封面路徑、圖書數量、關鍵詞簡介,如表1所示。
relate(用戶圖書關系表),存儲用戶加入購物車或者購買的圖書的信息記錄,包含關系id、用戶id、書籍id和一個狀態標記(1表示收藏,0表示購買),如表2所示。
user(用戶表),包含用戶id、姓名、昵稱、密碼、郵箱、更新時間,如表3所示。
本系統使用MVC開發模式,前端使用JSP技術,后臺設計以及和數據庫的鏈接使用Java進行開發,數據庫使用Mysql。
主界面是未登錄用戶和游客進入系統后的第一個界面,可以在主界面上實現用戶登錄、游客注冊、管理員頁面跳轉、瀏覽圖書目錄等功能,并且主界面還實現了促銷圖書的幻燈片顯示。系統主界面如圖4所示。

圖4 系統主界面

圖5 默認推薦界面圖
新用戶進入系統后,系統會推薦五本默認的書籍,當老用戶進入系統后,系統會根據用戶的操作自動化推薦五本書。默認推薦界面如圖5所示。
總結:用戶個人信息以及交易數據爆發式增長,使得線上商家對用戶個人數據的分析和對書籍的管理變得難上加難。而推薦系統的出現,使得商家可以更容易去把握用戶的個人喜好,同時也使用戶能夠及時獲得自己所需要的相關圖書而不用再去耗時耗力的自行查找,成功的實現了商家和用戶的共贏。為此,本文設計和開發了圖書推薦系統,該系統可以實現用戶的注冊登錄、搜索和瀏覽圖書、購買和收藏圖書;系統的推薦圖書;管理員的增刪改管理圖書。當然系統中還有其他的很多問題,還需去改進,尤其是在推薦功能的實現中,要加入分詞器提取關鍵詞,而且在推薦算法中,也要加入同義詞分析,這樣能夠更加準確地為用戶推薦相關圖書。