List of usage examples for org.apache.mahout.cf.taste.impl.model GenericItemPreferenceArray GenericItemPreferenceArray
public GenericItemPreferenceArray(List<? extends Preference> prefs)
From source file:org.easyrec.mahout.store.impl.MahoutDataModelMappingDAOMysqlImpl.java
License:Open Source License
@Override public PreferenceArray getPreferencesForItem(int tenantId, Date cutoffDate, long itemID, int actionTypeId) throws TasteException { Object[] args = new Object[] { tenantId, cutoffDate, itemID, actionTypeId }; int[] argTypes = new int[] { Types.INTEGER, Types.TIMESTAMP, Types.INTEGER, Types.INTEGER }; try {/*from w ww .j ava 2s.c o m*/ return new GenericItemPreferenceArray(getJdbcTemplate().query(getPreferencesForItemQuery, args, argTypes, genericPreferenceRowMapper)); } catch (EmptyResultDataAccessException e) { logger.warn("An error occurred!", e); throw new NoSuchItemException(itemID); } }
From source file:org.easyrec.mahout.store.impl.MahoutDataModelMappingDAOMysqlImpl.java
License:Open Source License
@Override public PreferenceArray getBooleanPreferencesForItem(int tenantId, Date cutoffDate, long itemID, int actionTypeId) throws TasteException { Object[] args = new Object[] { tenantId, cutoffDate, itemID, actionTypeId }; int[] argTypes = new int[] { Types.INTEGER, Types.TIMESTAMP, Types.INTEGER, Types.INTEGER }; try {/*from w ww . ja v a2s . c o m*/ return new GenericItemPreferenceArray(getJdbcTemplate().query(getPreferencesForItemQuery, args, argTypes, genericBooleanPreferenceRowMapper)); } catch (EmptyResultDataAccessException e) { logger.warn("An error occurred!", e); throw new NoSuchItemException(itemID); } }
From source file:org.zaizi.mahout.alfresco.datamodel.AlfrescoDataModelImpl.java
License:Open Source License
public PreferenceArray getPreferencesForItem(long itemID) throws TasteException { logger.trace("getPreferencesForItem {" + itemID + "}"); List<GenericPreference> resultlist; NodeRef currentNodeRef;//www.j ava 2 s. c om float rating; long userId; currentNodeRef = ZaiziAlfrescoServiceUtil.getNodeRefByEntryId(itemID); List<Rating> ratings = getRatings(currentNodeRef); resultlist = new ArrayList<GenericPreference>(ratings.size()); for (Rating ratingRef : ratings) { userId = ZaiziAlfrescoServiceUtil .getNodeId(ZaiziAlfrescoServiceUtil.getPersonService().getPerson(ratingRef.getAppliedBy())); rating = ratingRef.getScore(); resultlist.add(new GenericPreference(userId, itemID, rating)); } if (logger.isTraceEnabled()) { logger.trace("Returining :" + resultlist); } if (mahoutRatingScheme.equals(org.zaizi.mahout.config.RatingScheme.BOOLEAN_PREF)) return new BooleanItemPreferenceArray(resultlist, false); else return new GenericItemPreferenceArray(resultlist); }
From source file:org.zaizi.mahout.alfresco.datamodel.AlfrescoViewedDocumentDataModelImpl.java
License:Open Source License
public synchronized PreferenceArray getPreferencesForItem(long itemID) throws TasteException { PreferenceArray prefs = preferenceForItems.get(itemID); if (prefs == null) { return new GenericItemPreferenceArray(0); }/* w ww. j ava 2 s . c om*/ return prefs; }
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);/* w w w .j a v a 2 s . c o m*/ preferenceFromUsers.put(userID, 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 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); } } }
From source file:org.zaizi.mahout.alfresco.datamodel.AlfrescoViewedDocumentDataModelImpl.java
License:Open Source License
public synchronized void setPreferenceData(Map<Long, List<UserViewedCount>> preferences) { if (preferences != null && preferences.size() > 0) { if (preferenceForItems.size() > 0) preferenceForItems = new FastByIDMap<PreferenceArray>(); if (preferenceFromUsers.size() > 0) preferenceFromUsers = new FastByIDMap<PreferenceArray>(); Map<Long, List<Preference>> prefUsers = new HashMap<Long, List<Preference>>(); Iterator<Long> it = preferences.keySet().iterator(); while (it.hasNext()) { Long nextItemId = it.next(); List<UserViewedCount> prefsForItem = preferences.get(nextItemId); if (prefsForItem.size() > 0) { PreferenceArray nextArray = new GenericItemPreferenceArray(prefsForItem.size()); for (int i = 0; i < prefsForItem.size(); i++) { long userId = prefsForItem.get(i).getUserId(); float value = normalizeScore(prefsForItem.get(i).getNumViewed()); Preference nextPreference = new GenericPreference(userId, nextItemId, value); nextArray.set(i, nextPreference); List<Preference> upList = prefUsers.get(userId); if (upList == null) { upList = new ArrayList<Preference>(); upList.add(nextPreference); prefUsers.put(userId, upList); } else upList.add(nextPreference); }//from w w w . jav a 2 s . c o m preferenceForItems.put(nextItemId, nextArray); } } Iterator<Entry<Long, List<Preference>>> userIt = prefUsers.entrySet().iterator(); while (userIt.hasNext()) { Entry<Long, List<Preference>> nextEntry = userIt.next(); List<Preference> nextList = nextEntry.getValue(); PreferenceArray nextArray = new GenericUserPreferenceArray(nextList.size()); for (int i = 0; i < nextList.size(); i++) nextArray.set(i, nextList.get(i)); preferenceFromUsers.put(nextEntry.getKey(), nextArray); } } }
From source file:org.zaizi.mahout.alfresco.datamodel.MetaversantDataModelImpl.java
License:Open Source License
public PreferenceArray getPreferencesForItem(long itemID) throws TasteException { logger.trace("getPreferencesForItem { " + itemID + "}"); List<GenericPreference> resultlist; NodeRef currentNodeRef;/*from ww w. jav a 2s. c o m*/ int rating; long userId; currentNodeRef = ZaiziAlfrescoServiceUtil.getNodeRefByEntryId(itemID); List<NodeRef> ratings = getRatings(currentNodeRef); resultlist = new ArrayList<GenericPreference>(ratings.size()); for (NodeRef ratingRef : ratings) { userId = ZaiziAlfrescoServiceUtil.getNodeId( ZaiziAlfrescoServiceUtil.getPersonService().getPerson((String) ZaiziAlfrescoServiceUtil .getNodeService().getProperty(ratingRef, RatingsModel.PROP_RATER))); rating = (Integer) ZaiziAlfrescoServiceUtil.getNodeService().getProperty(ratingRef, RatingsModel.PROP_RATING); resultlist.add(new GenericPreference(userId, itemID, Integer.valueOf(rating).floatValue())); } if (logger.isTraceEnabled()) { logger.trace("Returning :" + resultlist); } return new GenericItemPreferenceArray(resultlist); }