List of usage examples for org.apache.mahout.cf.taste.model PreferenceArray set
void set(int i, Preference pref);
From source file:alto.plugin.webradio.recommender.MongoDBDataModel.java
License:Apache License
private DataModel removeUserItem(long userID, Iterable<List<String>> items) { FastByIDMap<PreferenceArray> rawData = ((GenericDataModel) delegate).getRawUserData(); for (List<String> item : items) { PreferenceArray prefs = rawData.get(userID); long itemID = Long.parseLong(item.get(0)); if (prefs != null) { boolean exists = false; int length = prefs.length(); for (int i = 0; i < length; i++) { if (prefs.getItemID(i) == itemID) { exists = true;// w w w. j a va 2 s . c o m break; } } if (exists) { rawData.remove(userID); if (length > 1) { PreferenceArray newPrefs = new GenericUserPreferenceArray(length - 1); for (int i = 0, j = 0; i < length; i++, j++) { if (prefs.getItemID(i) == itemID) { j--; } else { newPrefs.set(j, prefs.get(i)); } } rawData.put(userID, newPrefs); } log.info("Removing userID: {} itemID: {}", userID, itemID); if (mongoManage) { removeMongoUserItem(Long.toString(userID), Long.toString(itemID)); } } } } return new GenericDataModel(rawData); }
From source file:alto.plugin.webradio.recommender.MongoDBDataModel.java
License:Apache License
private DataModel addUserItem(long userID, Iterable<List<String>> items) { FastByIDMap<PreferenceArray> rawData = ((GenericDataModel) delegate).getRawUserData(); PreferenceArray prefs = rawData.get(userID); for (List<String> item : items) { long itemID = Long.parseLong(item.get(0)); float preferenceValue = Float.parseFloat(item.get(1)); boolean exists = false; if (prefs != null) { for (int i = 0; i < prefs.length(); i++) { if (prefs.getItemID(i) == itemID) { exists = true;//from ww w.ja v a2 s .c o m prefs.setValue(i, preferenceValue); break; } } } if (!exists) { if (prefs == null) { prefs = new GenericUserPreferenceArray(1); } else { PreferenceArray newPrefs = new GenericUserPreferenceArray(prefs.length() + 1); for (int i = 0, j = 1; i < prefs.length(); i++, j++) { newPrefs.set(j, prefs.get(i)); } prefs = newPrefs; } prefs.setUserID(0, userID); prefs.setItemID(0, itemID); prefs.setValue(0, preferenceValue); log.info("Adding userID: {} itemID: {} preferenceValue: {}", userID, itemID, preferenceValue); rawData.put(userID, prefs); if (mongoManage) { addMongoUserItem(Long.toString(userID), Long.toString(itemID), Float.toString(preferenceValue)); } } } return new GenericDataModel(rawData); }
From source file:com.anjuke.romar.mahout.util.Util.java
License:Apache License
public static void applyAdd(FastByIDMap<PreferenceArray> data, Preference addPreference) { long userID = addPreference.getUserID(); long itemID = addPreference.getItemID(); float preferenceValue = addPreference.getValue(); PreferenceArray prefs = data.get(userID); boolean exists = false; if (prefs != null) { for (int i = 0; i < prefs.length(); i++) { if (prefs.getItemID(i) == itemID) { exists = true;//from w w w . j a v a 2 s. c o m prefs.setValue(i, preferenceValue); break; } } } if (!exists) { if (prefs == null) { prefs = new GenericUserPreferenceArray(1); } else { PreferenceArray newPrefs = new GenericUserPreferenceArray(prefs.length() + 1); for (int i = 0, j = 1; i < prefs.length(); i++, j++) { newPrefs.set(j, prefs.get(i)); } prefs = newPrefs; } prefs.setUserID(0, userID); prefs.setItemID(0, itemID); prefs.setValue(0, preferenceValue); data.put(userID, prefs); } }
From source file:com.anjuke.romar.mahout.util.Util.java
License:Apache License
public static void applyRemove(FastByIDMap<PreferenceArray> data, Preference removePreference) { long userID = removePreference.getUserID(); long itemID = removePreference.getItemID(); PreferenceArray prefs = data.get(userID); if (prefs != null) { boolean exists = false; int length = prefs.length(); for (int i = 0; i < length; i++) { if (prefs.getItemID(i) == itemID) { exists = true;//from w w w .j a v a2 s . co m break; } } if (exists) { if (length == 1) { data.remove(userID); } else { PreferenceArray newPrefs = new GenericUserPreferenceArray(length - 1); for (int i = 0, j = 0; i < length; i++, j++) { if (prefs.getItemID(i) == itemID) { j--; } else { newPrefs.set(j, prefs.get(i)); } } data.put(userID, newPrefs); } } } }
From source file:com.paradigma.recommender.db.MongoDBDataModel.java
License:Apache License
private DataModel addUserItem(long userID, Iterable<List<String>> items) { FastByIDMap<PreferenceArray> rawData = ((GenericDataModel) delegate).getRawUserData(); PreferenceArray prefs = rawData.get(userID); for (List<String> item : items) { long itemID = Long.parseLong(item.get(0)); float preferenceValue = Float.parseFloat(item.get(1)); boolean exists = false; if (prefs != null) { for (int i = 0; i < prefs.length(); i++) { if (prefs.getItemID(i) == itemID) { exists = true;//from w w w. ja v a2 s . c o m prefs.setValue(i, preferenceValue); break; } } } if (!exists) { if (prefs == null) { prefs = new GenericUserPreferenceArray(1); } else { PreferenceArray newPrefs = new GenericUserPreferenceArray(prefs.length() + 1); for (int i = 0, j = 1; i < prefs.length(); i++, j++) { newPrefs.set(j, prefs.get(i)); } prefs = newPrefs; } prefs.setUserID(0, userID); prefs.setItemID(0, itemID); prefs.setValue(0, preferenceValue); log.info("Adding userID: {} itemID: {} preferenceValue: {}", new Object[] { userID, itemID, preferenceValue }); rawData.put(userID, prefs); if (mongoManage) { addMongoUserItem(Long.toString(userID), Long.toString(itemID), Float.toString(preferenceValue)); } } } return new GenericDataModel(rawData); }
From source file:edu.uniandes.yelp.recommender.MongoDBDataModel.java
private DataModel removeUserItem(long userID, Iterable<List<String>> items) { FastByIDMap<PreferenceArray> rawData = ((GenericDataModel) delegate).getRawUserData(); for (List<String> item : items) { PreferenceArray prefs = rawData.get(userID); long itemID = Long.parseLong(item.get(0)); if (prefs != null) { boolean exists = false; int length = prefs.length(); for (int i = 0; i < length; i++) { if (prefs.getItemID(i) == itemID) { exists = true;/*ww w .jav a 2 s . c o m*/ break; } } if (exists) { rawData.remove(userID); if (length > 1) { PreferenceArray newPrefs = new GenericUserPreferenceArray(length - 1); for (int i = 0, j = 0; i < length; i++, j++) { if (prefs.getItemID(i) == itemID) { j--; } else { newPrefs.set(j, prefs.get(i)); } } rawData.put(userID, newPrefs); } //log.info("Removing userID: {} itemID: {}", userID, itemID); if (mongoManage) { removeMongoUserItem(Long.toString(userID), Long.toString(itemID)); } } } } return new GenericDataModel(rawData); }
From source file:edu.uniandes.yelp.recommender.MongoDBDataModel.java
private DataModel addUserItem(long userID, Iterable<List<String>> items) { FastByIDMap<PreferenceArray> rawData = ((GenericDataModel) delegate).getRawUserData(); PreferenceArray prefs = rawData.get(userID); for (List<String> item : items) { long itemID = Long.parseLong(item.get(0)); float preferenceValue = Float.parseFloat(item.get(1)); boolean exists = false; if (prefs != null) { for (int i = 0; i < prefs.length(); i++) { if (prefs.getItemID(i) == itemID) { exists = true;//from w w w. j a va 2 s . c o m prefs.setValue(i, preferenceValue); break; } } } if (!exists) { if (prefs == null) { prefs = new GenericUserPreferenceArray(1); } else { PreferenceArray newPrefs = new GenericUserPreferenceArray(prefs.length() + 1); for (int i = 0, j = 1; i < prefs.length(); i++, j++) { newPrefs.set(j, prefs.get(i)); } prefs = newPrefs; } prefs.setUserID(0, userID); prefs.setItemID(0, itemID); prefs.setValue(0, preferenceValue); //log.info("Adding userID: {} itemID: {} preferenceValue: {}", userID, itemID, preferenceValue); rawData.put(userID, prefs); if (mongoManage) { addMongoUserItem(Long.toString(userID), Long.toString(itemID), Float.toString(preferenceValue)); } } } return new GenericDataModel(rawData); }
From source file:norbert.mynemo.core.evaluation.PreferenceMaskerModelBuilder.java
License:Apache License
@Override public PreferenceArray getPreferencesForItem(long itemID) throws TasteException { if (!maskedPreferences.contains(itemID)) { return dataModel.getPreferencesForItem(itemID); }//from w w w .j a v a 2 s . c o m PreferenceArray result = fakePreferencesForItem.get(itemID); if (result != null) { // the array to provides has already been created return result; } // the array to provide must be created PreferenceArray realPreferenceArray = dataModel.getPreferencesForItem(itemID); PreferenceArray newPreferenceArray = new GenericUserPreferenceArray(realPreferenceArray.length() - 1); int indexFake = 0; for (int indexReal = 0; indexReal < realPreferenceArray.length(); indexReal++) { Preference realPreference = realPreferenceArray.get(indexReal); long currentUser = realPreference.getUserID(); float currentValue = realPreference.getValue(); if (currentUser != targetUser) { Preference newPreference = new GenericPreference(currentUser, itemID, currentValue); newPreferenceArray.set(indexFake, newPreference); indexFake++; } } // cache the array for later invocations fakePreferencesForItem.put(itemID, newPreferenceArray); return newPreferenceArray; }
From source file:org.mandar.analysis.recsys2014.models.NeoMongoDBDataModel.java
License:Apache License
private void buildModel() throws UnknownHostException { userIsObject = false;/*from ww w . j a v a 2 s . c om*/ itemIsObject = false; idCounter = 0; preferenceIsString = true; MongoClient mongoDDBB = new MongoClient(mongoHost, mongoPort); DB db = mongoDDBB.getDB(mongoDB); mongoTimestamp = new Date(0); FastByIDMap<PreferenceArray> userIDPrefMap = new FastByIDMap<PreferenceArray>(); if (!mongoAuth || db.authenticate(mongoUsername, mongoPassword.toCharArray())) { collection = db.getCollection(mongoCollection); collectionMap = db.getCollection(mongoMapCollection); DBObject indexObj = new BasicDBObject(); indexObj.put("element_id", 1); collectionMap.createIndex(indexObj); indexObj = new BasicDBObject(); indexObj.put("long_value", 1); // Now the $group operation DBObject groupFields = new BasicDBObject("_id", "$" + mongoUserID); groupFields.put("count", new BasicDBObject("$sum", 1)); DBObject group = new BasicDBObject("$group", groupFields); // Finally the $sort operation DBObject sort = new BasicDBObject("$sort", new BasicDBObject("count", -1)); log.debug("Running Aggregation query"); // run aggregation List<DBObject> pipeline = Arrays.asList(group, sort); AggregationOutput output = collection.aggregate(pipeline); //Map<Long,Long> prefArrSize = new HashMap<Long, Long>(); Long2IntMap prefArrSize = new Long2IntArrayMap(); Long2IntMap prefArrCount = new Long2IntArrayMap(); for (DBObject result : output.results()) { prefArrSize.put(Long.parseLong(result.get("_id").toString()), Integer.parseInt(result.get("count").toString())); prefArrCount.put(Long.parseLong(result.get("_id").toString()), 0); log.debug(result.toString()); } log.debug("Aggregation query, Long2LongMap created"); collectionMap.createIndex(indexObj); collectionMap.remove(new BasicDBObject()); DBCursor cursor = collection.find(); int count; while (cursor.hasNext()) { Map<String, Object> user = (Map<String, Object>) cursor.next().toMap(); if (!user.containsKey("deleted_at")) { long userID = Long.parseLong(fromIdToLong(getID(user.get(mongoUserID), true), true)); long itemID = Long.parseLong(fromIdToLong(getID(user.get(mongoItemID), false), false)); float ratingValue = getPreference(user.get(mongoPreference)); PreferenceArray userPrefs = userIDPrefMap.get(userID); //log.info("user {} items rated {}", user.get(mongoUserID), prefArrSize.get(user.get(mongoUserID))); if (userPrefs == null) { userPrefs = new GenericUserPreferenceArray(prefArrSize.get(user.get(mongoUserID))); userIDPrefMap.put(userID, userPrefs); } count = prefArrCount.get(user.get(mongoUserID)); userPrefs.set(count, new GenericPreference(userID, itemID, ratingValue)); count++; prefArrCount.put(Long.parseLong(user.get(mongoUserID).toString()), count); if (user.containsKey("created_at") && mongoTimestamp.compareTo(getDate(user.get("created_at"))) < 0) { mongoTimestamp = getDate(user.get("created_at")); } } } } delegate = new GenericDataModel(userIDPrefMap); }
From source file:org.zaizi.mahout.alfresco.datamodel.AlfrescoViewedDocumentDataModelImpl.java
License:Open Source License
public synchronized void setPreference(long userID, long itemID, float value) throws TasteException { Preference newPref = new GenericPreference(userID, itemID, normalizeScore((int) value)); // PreferenceFromUsers PreferenceArray prefs = preferenceFromUsers.get(userID); if (prefs == null) { PreferenceArray newPrefArray = new GenericUserPreferenceArray(1); newPrefArray.set(0, newPref); preferenceFromUsers.put(userID, newPrefArray); } else {/* w w w. jav a 2s. co m*/ boolean finded = false; int i = 0; while (i < prefs.length() && !finded) if (prefs.getItemID(i) == itemID) finded = true; else i++; if (finded) { prefs.set(i, newPref); } else { PreferenceArray newPrefArray = new GenericUserPreferenceArray(prefs.length() + 1); for (i = 0; i < prefs.length(); i++) newPrefArray.set(i, prefs.get(i)); newPrefArray.set(i, newPref); preferenceFromUsers.put(userID, newPrefArray); } } // Preference From Items prefs = preferenceForItems.get(itemID); if (prefs == null) { PreferenceArray newPrefArray = new GenericItemPreferenceArray(1); newPrefArray.set(0, newPref); preferenceForItems.put(itemID, newPrefArray); } else { boolean finded = false; int i = 0; while (i < prefs.length() && !finded) if (prefs.getItemID(i) == itemID) finded = true; else i++; if (finded) { prefs.set(i, newPref); } else { PreferenceArray newPrefArray = new GenericItemPreferenceArray(prefs.length() + 1); for (i = 0; i < prefs.length(); i++) newPrefArray.set(i, prefs.get(i)); newPrefArray.set(i, newPref); preferenceForItems.put(itemID, newPrefArray); } } }