音樂推薦系統的軟件設計方案


一 項目介紹

本系統旨在構建基於音樂特征值的個性化音樂推薦系統,通過提取音樂中的 DNA 特征進行聚類,生成音樂曲庫,並采取協同過濾的方式記錄積累用戶的偏好,對其進行加權處理,向用戶推薦個性化的音樂服務內容。

個性化音樂推薦系統主要解決兩方面的問題:

  • 基於音樂的特征屬性,設計一個音樂 DNA 庫,發現音樂間的關聯關系,為系統提供給個性化推薦提供支持。
  • 建立個性化音樂推薦引擎,采用協同過濾的方式為用戶進行個性化音樂推薦,提升用戶對產品的滿意度。

二 設計模式

2.1 項目架構

本項目設計實現一個個性化音樂推薦系統, 經過慎重考慮最終決定做一個網站, 采用 B/S 模式,其中網頁的設計中采用了 JSP 技術,在數據庫的選擇上,考慮到 MySQL 的可移植性較高,故選擇 MySQL 數據庫,系統本體選用 SpringMVC 架構。

 

MVC 項目架構圖

 

 

  • 模型(Model) 用於封裝與應用程序的業務邏輯相關的數據以及對數據的處理方法。“ Model ”有對數據直接訪問的權力,例如對數據庫的訪問。“Model”不依賴“View”和“Controller”,也就是說, Model 不關心它會被如何顯示或是如何被操作。但是 Model 中數據的變化一般會通過一種刷新機制被公布。為了實現這種機制,那些用於監視此 Model 的 View 必須事先在此 Model 上注冊,從而,View 可以了解在數據 Model 上發生的改變。
  • 視圖(View)能夠實現數據有目的的顯示(理論上,這不是必需的)。在 View 中一般沒有程序上的邏輯。為了實現 View 上的刷新功能,View 需要訪問它監視的數據模型(Model),因此應該事先在被它監視的數據那里注冊。
  • 控制器(Controller)起到不同層面間的組織作用,用於控制應用程序的流程。它處理事件並作出響應。“事件”包括用戶的行為和數據 Model 上的改變。

 

2.2 系統功能結構

 

系統功能結構圖

 

2.3 分解視圖

 

 

 2.4 執行視圖

 

 

 

 

 

 

 

 

 2.5 實現試圖

 

 

 

 三 數據庫設計

3.1 user_library_song 表

列名 類型 長度 是否為空 說明
id int 20 id
song_id int 20 歌曲 id
album_id int 20 專輯 id
play_count int 11 播放量
add_time datetime   添加時間
delete_flag int 4 是否刪除

 

3.2 song 表

 列名  類型  長度  是否為空  注釋
 id  int  20  否  歌曲 id
 name  varchar  255  否  歌曲名
 artlist_name  varchar  255  否  演唱者
 album_name  varchar  255  是  專輯名稱
 author  varchar  255  否  作者

 

3.3 album 表

列名 類型 長度 是否為空 注釋
id int 20 id
name char 255 專輯名稱
cover int 255 藝術家 id
artlist_id char 20 藝術家名稱

 

3.4 topic_song 表

列名 類型 長度 是否為空 注釋
id int 20 id
topic_id int 20 主題 id
song_id int 20 歌曲 id
description char 255 描述
song_play_count int 20 播放量

五 工作機制

用戶登錄系統之后,通過瀏覽相關歌曲或在開始頁面添加歌曲口味,可以進行添加新的音樂和刪除音樂等操作。

系統根據用戶瀏覽痕跡(包括歌曲播放量、對歌曲的點贊、點踩、歌曲的評論等)推薦相關的音樂。

管理員主要是對歌曲和用戶進行增刪改查等操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM