List of usage examples for org.apache.mahout.cf.taste.impl.model BooleanUserPreferenceArray BooleanUserPreferenceArray
public BooleanUserPreferenceArray(List<? extends Preference> prefs)
From source file:com.buddycloud.channeldirectory.search.handler.common.mahout.MemoryRecommenderDataModel.java
License:Apache License
private void createDataModel() throws IOException { CSVReader reader = new CSVReader(new FileReader(properties.getProperty("mahout.dumpfile"))); reader.readNext(); // Read header Map<Long, List<Preference>> preferences = new HashMap<Long, List<Preference>>(); Long userId = -1L;/* w w w . ja v a2 s. co m*/ Long itemId = -1L; while (true) { String[] nextLine = reader.readNext(); if (nextLine == null) { break; } String item = nextLine[0]; String title = nextLine[1]; String user = nextLine[2]; if (!userToId.containsKey(user)) { userId++; userToId.put(user, userId); idToUser.put(userId, user); } if (!itemToId.containsKey(item)) { itemId++; ChannelData chData = new ChannelData(); chData.setId(item); chData.setTitle(title); itemToId.put(item, itemId); idToItem.put(itemId, chData); } Long currentUserId = userToId.get(user); BooleanPreference booleanPreference = new BooleanPreference(currentUserId, itemToId.get(item)); List<Preference> prefList = preferences.get(currentUserId); if (prefList == null) { prefList = new LinkedList<Preference>(); preferences.put(currentUserId, prefList); } prefList.add(booleanPreference); } FastByIDMap<PreferenceArray> userData = new FastByIDMap<PreferenceArray>(); for (Entry<Long, List<Preference>> entry : preferences.entrySet()) { userData.put(entry.getKey(), new BooleanUserPreferenceArray(entry.getValue())); } this.dataModel = new GenericDataModel(userData); }
From source file:org.plista.kornakapi.core.recommender.FoldingFactorizationBasedRecommender.java
License:Apache License
private PreferenceArray asPreferences(long[] itemIDs) { PreferenceArray preferences = new BooleanUserPreferenceArray(itemIDs.length); for (int n = 0; n < itemIDs.length; n++) { preferences.setItemID(n, itemIDs[n]); }//from w w w. jav a2 s.c o m return preferences; }
From source file:org.zaizi.mahout.alfresco.datamodel.AlfrescoDataModelImpl.java
License:Open Source License
public PreferenceArray getPreferencesFromUser(long userID) throws TasteException { logger.trace("getPreferencesFromUser {" + userID + "}"); String username = ZaiziAlfrescoServiceUtil.getUsername(userID); SearchParameters searchParams = new SearchParameters(); searchParams.addStore(getStoreRef()); searchParams.setQuery(preferencesFromUserQuery); searchParams.setLanguage(SearchService.LANGUAGE_LUCENE); ResultSet results = null;/*from w ww .ja v a2s . c o m*/ List<Preference> resultlist; try { NodeRef documentRef; Rating ratingRef; float rating; long itemId; results = executeQuery(searchParams); resultlist = new ArrayList<Preference>(results.length()); for (ResultSetRow row : results) { documentRef = row.getNodeRef(); // Document rated ratingRef = getRatingValue(documentRef, username); if (ratingRef != null) { itemId = ZaiziAlfrescoServiceUtil.getNodeId(documentRef); if (mahoutRatingScheme.equals(org.zaizi.mahout.config.RatingScheme.BOOLEAN_PREF)) { resultlist.add(new BooleanPreference(userID, itemId)); } else { rating = ratingRef.getScore();// (Integer) // ZaiziAlfrescoServiceUtil.getNodeService().getProperty(ratingRef, // RatingsModel.PROP_RATING); resultlist.add(new GenericPreference(userID, itemId, rating)); } } } } finally { if (results != null) { results.close(); } } if (logger.isTraceEnabled()) { logger.trace("Returning results { " + resultlist + "}"); } if (mahoutRatingScheme.equals(org.zaizi.mahout.config.RatingScheme.BOOLEAN_PREF)) return new BooleanUserPreferenceArray(resultlist); else return new GenericUserPreferenceArray(resultlist); }