【发布时间】:2014-12-17 13:48:23
【问题描述】:
我正在使用 mahout-distribution-0.9。我的程序有问题。
import java.io.File;
import java.util.List;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
class RecommenderIntro {
public static void main(String[] args) throws Exception {
DataModel model =
//new FileDataModel (new File("F:\\ml-10M100K\\intro.csv"));
new FileDataModel (new File("F:\\ml-10M100K\\ratingsShort.dat"),"::");
UserSimilarity similarity = new PearsonCorrelationSimilarity (model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood (2, similarity, model);
Recommender recommender = new GenericUserBasedRecommender (model, neighborhood, similarity);
List<RecommendedItem> recommendations = recommender.recommend(1, 2);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
}
文件 intro.csv 中的内容是这样的:
1,101,5.0
1,102,3.0
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
当我使用 intro.csv 运行它时,它在 eclipse 中有输出:
RecommendedItem[item:104, value:4.257081]
RecommendedItem[item:106, value:4.0]
File ratingShort.dat 中的内容是这样的:
1::122::5::838985046
1::185::5::838983525
1::231::5::838983392
1::292::5::838983421
2::733::3::868244562
2::736::3::868244698
或将 ratingsShort.dat 的内容更改为:
1,539,5
1,589,5
2,110,5
2,151,3
2,733,3
2,802,2
2,1210,4
2,1544,3
3,1246,4
3,1408,3.5
3,1552,2
3,1564,4.5
当我使用 ratingShort.dat 时,eclipse 中没有输出。
FileDataModel(File dataFile, String delimiterRegex)
Mahout 中的方法支持这种用法,但是为什么没有输出呢?
谁能给我一些建议?非常感谢!
【问题讨论】: