最近由于竞赛的原因,需要学习推荐系统相关知识,而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 版权协议,转载请附上原文出处链接和本声明。