如何輕鬆實現個性化推薦系統

2021-09-19 18:45:30 字數 2059 閱讀 7328

這裡採用的是.net的乙個引用nreco.recommender.dll,這是乙個國外電影**推薦系統衍生而來的,有興趣的可以到他們的官網看看。

首先需要對資料庫進行設計,增加一張使用者的行為資料表,記錄使用者訪問**的行為,例如**的一般記錄瀏覽的商品和購買過的商品,根據你的業務邏輯進行設計。

需要對商品的進行評分,一般採用5分制,可以根據你的業務邏輯進行設計。

public class indexjobratings : ijob

var logmodel = setingsbll.loadentities(c=>c.id==16).firstordefault();

if (logmodel != null && logmodel.value == "true")

else

}#endregion

}

本人使用時間進度外掛程式定時執行改任務,更新資料提高資料的準確率。

直接在nuget管理中新增即可,搜尋nreco.recommender

/// /// 推薦

///

/// 當前頁

/// 頁容量

/// 顯示數量

///

public listrecommendbooks(int pageindex, int pagesize, int showcount)}}

#endregion

if (string.isnullorempty(sb.tostring()))

else

else

var pathtodatafile =

if (datamodel == null)

var plusanonymmodel = new plusanonymoususerdatamodel(datamodel);

var prefarr = new genericuserpreferencearray(filmids.length);

prefarr.setuserid(0, plusanonymoususerdatamodel.temp_user_id);

for (int i = 0; i < filmids.length; i )

plusanonymmodel.settempprefs(prefarr);

var similarity = new loglikelihoodsimilarity(plusanonymmodel);

var neighborhood = new nearestnuserneighborhood(15, similarity, plusanonymmodel);

var recommender = new genericuserbasedrecommender(plusanonymmodel, neighborhood, similarity);

var recommendeditems = recommender.recommend(plusanonymoususerdatamodel.temp_user_id, showcount, null);

listnewbooks = new list();

foreach (var item in recommendeditems)

books = newbooks.skip((pageindex - 1) * pagesize).take(pagesize).tolist();}}

else //不推薦

#endregion

return books.count() <= 0 ? booksbll.loadentities(c => true).orderbydescending(c => c.rating).skip((pageindex - 1) * pagesize).take(pagesize).tolist() : books;

}

當然直接這樣會有冷啟動問題,就是使用者沒有登入的情況和使用者還沒有行為資料的情況,本人採用熱門商品的推薦。你也可以根據你的業務邏輯進行設計。

個性化推薦系統

基於協同過濾的推薦大體包括 基於專案的協同過濾 item basedcf 基於使用者的協同過濾 user basedcf 基於模型的協同過濾演算法 1 3 基於專案的協同過濾 item basedcf 首先根據不同使用者歷史購買商品的評分資訊計算出各專案之間的相似度,構建各專案之間的相似度矩陣 再找...

推薦系統概述 個性化推薦

1.從乙個例子出發 兩名使用者都在某電商 購買了a b兩種產品。當他們產生購買這個動作的時候,兩名使用者之間的相似度便被計算了出來。其中一名使用者除了購買了產品a和b,還購買了c產品,此時推薦系統會根據兩名使用者之間的相似度會為另一名使用者推薦專案c。2.應用現狀 推薦系統可以說是無處不在了,比如 ...

個性化推薦技術

如果說過去的十年是搜尋技術大行其道的十年,那麼個性化推薦技術將成為未來十年中最重要的革新之一。目前幾乎所有大型的電子商務系統,如amazon cdnow netflix等,都不同程度地使用了各種形式的推薦系統。而近來以 發現 為核心的 正開始在網際網路上嶄露頭角,比如側重於 推薦的八寶盒,側重於圖書...