/** 对用户性别进行过滤 */ public static void filterGender( long uid, RecommenderBuilder recommenderBuilder, DataModel dataModel, String gender) throws TasteException, IOException { Set<Long> userids = getByGender("datafile/book/user.csv", gender); // 计算指定性别用户打分过的图书 Set<Long> bookids = new HashSet<Long>(); for (long uids : userids) { LongPrimitiveIterator iter = dataModel.getItemIDsFromUser(uids).iterator(); while (iter.hasNext()) { long bookid = iter.next(); bookids.add(bookid); } } IDRescorer rescorer = new FilterRescorer(bookids); List<RecommendedItem> list = recommenderBuilder.buildRecommender(dataModel).recommend(uid, RECOMMENDER_NUM, rescorer); RecommendFactory.showItems(uid, list, false); }