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

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

Introduction

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

Prototype

public BooleanUserPreferenceArray(List<? extends Preference> prefs) 

Source Link

Usage

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