LibRec 學習筆記(二):如何成功運行 LibRec 官方提供的code snippet?

首先,Librec官方針對librec-core 2.0 提供的code snippet鏈接在此,該代碼只適用於2.0。

我這裏直接使用的是librec-core 3.0,官方提供的針對3.0 提供的code snippet鏈接在此,代碼如下:

public static void main(String[] args) throws Exception {

                // build data model
                Configuration conf = new Configuration();
                conf.set("dfs.data.dir", "path to the data dir");
                TextDataModel dataModel = new TextDataModel(conf);
                dataModel.buildDataModel();
        
                // build recommender context
                RecommenderContext context = new RecommenderContext(conf, dataModel);
        
                // build similarity
                conf.set("rec.recommender.similarity.key" ,"item");
                conf.setBoolean("rec.recommender.isranking", true);
                conf.setInt("rec.similarity.shrinkage", 10);
                RecommenderSimilarity similarity = new CosineSimilarity();
                similarity.buildSimilarityMatrix(dataModel);
                context.setSimilarity(similarity);
        
                // build recommender
                conf.set("rec.neighbors.knn.number", "200");
                Recommender recommender = new ItemKNNRecommender();
                recommender.setContext(context);
        
                // run recommender algorithm
                recommender.train(context);
        
                // evaluate the recommended result
                EvalContext evalContext = new EvalContext(conf, recommender, dataModel.getTestDataSet(), context.getSimilarity().getSimilarityMatrix(), context.getSimilarities());
                RecommenderEvaluator ndcgEvaluator = new NormalizedDCGEvaluator();
                ndcgEvaluator.setTopN(10);
                double ndcgValue = ndcgEvaluator.evaluate(evalContext);
                System.out.println("ndcg:" + ndcgValue);
}

這裏先確認下本篇博客的前提,我們的目的是想使用第三方庫librec-core 3.0.0,調用裏面的方法來幫助自己的項目,所以第一步是能夠正確運行上面的代碼。那下面就手把手教你如何正確運行成功這段代碼:

1、由於librec-core 是一個maven項目,可以直接使用maven導入依賴進行使用,但是在maven的第三方庫中只有librec-core 2.0.0 版本,並沒有3.0.0 的版本,所以,這裏可以直接下載3.0.0版本的librec-core 的jar包,這是下載地址,然後手動的將該jar包導入進自己的項目中並且建立依賴。如果不會這部操作,可以參考我的上一篇博客:如何在自己的項目中導入第三方包:librec?
在這裏插入圖片描述
2、下載Librec中需要使用的data數據集,並且把該文件夾放入自己的項目中,如下所示(從源碼中可以看出,librec-core庫中並沒有自帶數據集):
在這裏插入圖片描述
這是data的下載路徑,其實整個項目都可以下載下來,方便自己看代碼中的細節(另,這裏的Epinions數據集是我自己從別的地方下載的,直接放進去的!)。
在這裏插入圖片描述

3、由於給出的code snippet是主函數,所以直接隨意建立一個java文件,將該代碼複製進去即可。
在這裏插入圖片描述

如何出現紅色的報錯,是因爲沒有導入相應的包,直接把鼠標放在上面,就會提示你導入。
在這裏插入圖片描述

4、官方提供的code snippet 上有一行是需要你自己填的,就是你放置data的路徑
在這裏插入圖片描述
如果你是按我上面那樣放的 ,則這句代碼可以直接改成

conf.set("dfs.data.dir", "./data");     

或者把這句話註釋掉,則內部默認的存放位置是…/data,一般這個時候會報錯,至於原因,我也沒有搞明白,有知道的小夥伴,可以留言告訴我啊~

5、以上,就可以右鍵進行運行了,下面是運行成功後的結果
在這裏插入圖片描述


若能完成以上步驟,不出意外,您已經可以成功運行 librec 官方提供的 code snippet 了 !ヾ(◍°∇°◍)ノ゙

本人目前剛開始學習使用 librec,歡迎同伴一起交流進步,哪裏有寫的不對的地方,歡迎評論指正呀!ヾ(◍°∇°◍)ノ゙

如果這篇博客幫助了您,可以請我喫包5毛錢的辣條嗎?(下面爲微信收款碼)或者點個贊也行呀!您小小的鼓勵會是我持續更新的動力!ヾ(◍°∇°◍)ノ゙
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章