Example usage for org.apache.mahout.common LongPair LongPair

List of usage examples for org.apache.mahout.common LongPair LongPair

Introduction

In this page you can find the example usage for org.apache.mahout.common LongPair LongPair.

Prototype

public LongPair(long first, long second) 

Source Link

Usage

From source file:net.myrrix.online.MostSimilarItemIterator.java

License:Apache License

@Override
public RecommendedItem next() {
    FastByIDMap.MapEntry<float[]> entry = Yiterator.next();
    long itemID = entry.getKey();

    if (userTagIDs.contains(itemID)) {
        return null;
    }/*w w w.ja va 2s . c  om*/

    for (long l : toItemIDs) {
        if (l == itemID) {
            return null;
        }
    }

    Rescorer<LongPair> rescorer1 = this.rescorer;
    float[] candidateFeatures = entry.getValue();
    double candidateFeaturesNorm = SimpleVectorMath.norm(candidateFeatures);
    double total = 0.0;

    int length = itemFeatures.length;
    for (int i = 0; i < length; i++) {
        long toItemID = toItemIDs[i];
        LongPair cachedPair = null;
        if (rescorer1 != null) {
            cachedPair = new LongPair(itemID, toItemID);
            if (rescorer1.isFiltered(cachedPair)) {
                return null;
            }
        }
        double similarity = SimpleVectorMath.dot(candidateFeatures, itemFeatures[i])
                / (candidateFeaturesNorm * itemFeatureNorms[i]);
        if (!LangUtils.isFinite(similarity)) {
            return null;
        }
        if (rescorer1 != null) {
            similarity = rescorer1.rescore(cachedPair, similarity);
            if (!LangUtils.isFinite(similarity)) {
                return null;
            }
        }
        total += similarity;
    }

    float result = (float) (total / length);
    Preconditions.checkState(LangUtils.isFinite(result), "Bad similarity value");
    delegate.set(itemID, result);
    return delegate;
}

From source file:net.myrrix.online.MultiRescorerProviderTest.java

License:Apache License

@Test
public void testMultiMostSimilarItemsRescorer() {
    RescorerProvider multi = new MultiRescorerProvider(new SimpleModRescorerProvider(2),
            new SimpleModRescorerProvider(3));
    Rescorer<LongPair> provider = multi.getMostSimilarItemsRescorer((MyrrixRecommender) null);
    assertNotNull(provider);/*from  w ww.ja  v a 2 s .  c om*/
    assertTrue(provider instanceof MultiLongPairRescorer);
    assertTrue(provider.isFiltered(new LongPair(2, 3)));
    assertTrue(provider.isFiltered(new LongPair(2, 6)));
    assertFalse(provider.isFiltered(new LongPair(6, 12)));
}

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

License:Apache License

@Override
public float estimatePreference(long userID, long itemID) throws TasteException {
    return estimatedPrefCache.get(new LongPair(userID, itemID));
}

From source file:org.gpfvic.mahout.cf.taste.impl.similarity.CachingItemSimilarity.java

License:Apache License

@Override
public double itemSimilarity(long itemID1, long itemID2) throws TasteException {
    LongPair key = itemID1 < itemID2 ? new LongPair(itemID1, itemID2) : new LongPair(itemID2, itemID1);
    return similarityCache.get(key);
}

From source file:org.gpfvic.mahout.cf.taste.impl.similarity.CachingUserSimilarity.java

License:Apache License

@Override
public double userSimilarity(long userID1, long userID2) throws TasteException {
    LongPair key = userID1 < userID2 ? new LongPair(userID1, userID2) : new LongPair(userID2, userID1);
    return similarityCache.get(key);
}