基于用户的协同过滤代码具体实现细节

一、在上一篇博客中,我们已经安装配置成功Maven,并且建立一个基于Maven的web项目,并且导入mahout依赖。

问题:在网上找到的两个例子ChartTwo与Collaborative Filtering中均没有用Maven建立项目,直接用Mahout。那我们这里为啥要用Maven?

就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。(这个原因吗)

1、引入依赖报错

基于用户的协同过滤代码具体实现细节_第1张图片

Missing artifact org.apache.mahout:mahout:jar:0.11.1

仓库配置成功后,错误解除。

2、项目中有个红色感叹号

解决办法

https://jingyan.baidu.com/album/86fae346f63b233c49121aa3.html?picindex=1

 

感觉用Maven好麻烦。还不如直接导入包-----想放弃了啊啊

莫名其妙成功引入mahout依赖,我也很无奈

这样,写代码的时候就可以成功导入包了

3、  用20m中的数据ratings.csv是表格形式;但是1m中ratings.dat中有分隔符::    所以mahout无法直接处理,但是mahout下面有一个定制的groupLensDataModel,它扩展了FileDataModel以读取这个文件。

使用这个时报错,原因无法导入其包

 DataModel datamodel=new GroupLensDataModel(file);

为什么不能导入?难道mahout的依赖不能找到jar,mahout版本太低了??         --------不懂,因此只能采用20m的数据,避开这个坑。

4、用movielens数据集时,第一栏是userId movieId

程序报错

当使用不含有这个的,就能成功运行

基于用户的协同过滤代码具体实现细节_第2张图片

而网上的代码用的都是.dat,不含第一栏,所以它可以运行成功

所以这个问题需要解决!

解决:

我们可以设置获取文本内容时从第二行开始!

//从CSV文件特定行开始读取数据

//直接把第一行删了行不行----

 

你可能感兴趣的:(基于用户的协同过滤代码具体实现细节)