最近由于竞赛的原因,需要学习推荐系统相关知识,而librec是一个基于Java的开源推荐算法库,由东北大学郭贵冰团队编写,在GitHub上有2.9k个star了。
本文大部分步骤参考至LibRec 学习笔记(一):如何在自己的项目中导入第三方包:LibRec ?

一、下载librec

github地址为:GitHub项目地址
不能科学上网的同学,可以通过我的百度网盘的地址进行下载 百度网盘
下载完成之后打开目录,是这个样子滴
在这里插入图片描述

二、创建maven项目

具体步骤可以参考这篇博客IDEA 2020 创建Maven项目

三、将librec作为jar包导入自己的maven项目中

librec->lib下的librec-core-3.0.0jar文件复制到自己的maven文件夹中的bin文件夹下
然后在此文件夹下打开终端,输入指令

mvn install:install-file -Dfile=librec-core-3.0.0.jar -DgroupId=net.librec -DartifactId=librec-core -Dversion=3.0.0 -Dpackaging=jar

最后在pom.xml中添加依赖

<dependency><groupId>net.librec</groupId><artifactId>librec-core</artifactId><version>3.0.0</version>
</dependency>

三、测试

在Java包下创建test,java,类中代码为:

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);
}

右键run 运行
成功运行结果是这样滴
在这里插入图片描述

四、博客中缺少的一步

现实怎能如人意,我运行出来的结果不断报错,经过各大搜索引擎的不断搜索,我终于发现了这个博客里面没有讲的一个关键步骤,就是讲librec->lib下的其余jar包也放在maven->lib文件夹中,并且添加依赖。
以下为所有需要导入项目的jar包。

在这里插入图片描述

添加依赖的代码可以到maven仓库中复制。
例如:commons-logging-1.2.jar在maven仓库中进行搜索在这里插入图片描述
由于版本号为1.2,所以点击1.2按钮。
在这里插入图片描述
复制maven依赖代码到pom.xml中,在这里插入图片描述
最后,更新项目即可。

我的外部库最后变成了这样:
在这里插入图片描述

小结一下:推荐算法的学习注定艰难,有不少同学卡在了导入这一步。所以,看到这的同学,只要你成功运行了test代码,你就领先了别人一大步,是不是觉得挺振奋的!!!


版权声明:本文为llplllll原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/llplllll/article/details/115596015