2012-02-03 125 views
-2

我需要實現網站推薦系統列出的歌曲,其想法是,該系統可以推薦歌曲,可能是有趣的人觀看當前歌曲的基礎上,其他人投什麼。建議算法/庫/系統

我意識到這是一個巨大的領域,可以得到非常複雜,但如果有可能被用來生成建議的任何標準算法或第三方庫(PHP)我想知道?我知道,我們可能需要收集取決於我們實現系統上附加的數據,但我們已經記錄下了兩年:

VOTES (users can vote on songs based on a 5 star system), data collected is: 
song id, user id, session id, vote date & time, star rating 1-5 
+0

你對環境有多少控制?如果你有一個合適的數據庫,其中一些事情會更容易。 (介紹http://www.slideshare.net/jperras/graphs-edges-nodes-untangling-the-social-web) – 2012-02-03 13:01:05

+0

完全控制,這是對我們自己的VPS,DB是MySQL,但是我們可以安裝任何我們喜歡的。 – 2012-02-03 20:50:04

+0

你可能要考慮在這種情況下安裝圖形數據庫。推薦算法使用它們是微不足道的。 – 2012-02-03 23:24:03

回答

0

如果你想全力以赴,例如追蹤網站上的每個用戶的動作,並尋找重疊(如我想象亞馬遜等做的),那麼,它可能會有點毛。

但是,如果你想與你的投票系統純粹駕駛這,我不認爲你需要什麼複雜到一個庫,或PHP的甚至是線。你可以在你的數據庫查詢中建立一個體面的啓發式權限。就在我頭頂:

SELECT FIRST 10 V2.SongID, AVG(V2.Stars) 
FROM Votes V1 
JOIN Votes V2 USING (UserID) 
WHERE V1.SongID = :CurrentSong AND V1.Stars > 3 
GROUP BY V2.SongID 
ORDER BY 2 
+0

謝謝,建立了一個查詢是類似(MySQL的),工作真的很好。 – 2012-02-09 19:28:09