Example usage for org.apache.mahout.cf.taste.impl.model GenericItemPreferenceArray GenericItemPreferenceArray

List of usage examples for org.apache.mahout.cf.taste.impl.model GenericItemPreferenceArray GenericItemPreferenceArray

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.impl.model GenericItemPreferenceArray GenericItemPreferenceArray.

Prototype

public GenericItemPreferenceArray(List<? extends Preference> prefs) 

Source Link

Usage

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);
}