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

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

Introduction

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

Prototype

public BooleanPreference(long userID, long itemID) 

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;/*from   www  .jav  a  2  s  . c om*/
    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.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;//  w w w . ja va 2  s.  c om
    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);
}