Example usage for org.apache.mahout.cf.taste.impl.model PlusAnonymousUserDataModel TEMP_USER_ID

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

Introduction

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

Prototype

long TEMP_USER_ID

To view the source code for org.apache.mahout.cf.taste.impl.model PlusAnonymousUserDataModel TEMP_USER_ID.

Click Source Link

Usage

From source file:com.staticvillage.recommender.AnonymousRecommender.java

License:Apache License

public synchronized List<RecommendedItem> recommend(PreferenceArray prefs, int howMany) throws TasteException {
    model.setTempPrefs(prefs);//from w w  w  .  j a va  2s  .  c o m

    List<RecommendedItem> recommendations = recommend(PlusAnonymousUserDataModel.TEMP_USER_ID, howMany, null);
    model.clearTempPrefs();

    return recommendations;
}

From source file:com.staticvillage.recommender.GroupRecommender.java

License:Apache License

public List<RecommendedItem> recommend(long[] placeIds, int top, GeoPoint geoPoint)
        throws TasteException, IndexerException {
    if (recommender == null)
        return null;

    List<Place> beans = indexer.getBeans(geoPoint);
    PreferenceBag preferenceBag = new PreferenceBag();

    for (Place place : beans) {
        for (String feature : place.features) {
            preferenceBag.add(feature);//from  ww  w .  j a v  a2  s  .  c  o  m
        }
    }

    return recommender.recommend(preferenceBag.getWeightedPreferences(PlusAnonymousUserDataModel.TEMP_USER_ID),
            top);
}

From source file:net.ufida.info.mahout.common.CachingRecommender.java

License:Apache License

@Override
public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer) throws TasteException {
    Preconditions.checkArgument(howMany >= 1, "howMany must be at least 1");
    synchronized (maxHowMany) {
        if (howMany > maxHowMany[0]) {
            maxHowMany[0] = howMany;//w  ww .  j ava 2 s  .  c  om
        }
    }

    // Special case, avoid caching an anonymous user
    if (userID == PlusAnonymousUserDataModel.TEMP_USER_ID) {
        return recommendationsRetriever.get(PlusAnonymousUserDataModel.TEMP_USER_ID).getItems();
    }

    setCurrentRescorer(rescorer);

    Recommendations recommendations = recommendationCache.get(userID);
    if (recommendations.getItems().size() < howMany && !recommendations.isNoMoreRecommendableItems()) {
        clear(userID);
        recommendations = recommendationCache.get(userID);
        if (recommendations.getItems().size() < howMany) {
            recommendations.setNoMoreRecommendableItems(true);
        }
    }

    List<RecommendedItem> recommendedItems = recommendations.getItems();
    return recommendedItems.size() > howMany ? recommendedItems.subList(0, howMany) : recommendedItems;
}