Exemplo n.º 1
0
 def makeVote(self, userId, movieId):
   thisUserData = self.userData[userId]
   pq = ArrayBasedBoundedPriorityQueue(k=self.k)
   for otherMovieId, vote in thisUserData.items():
     pq.push((-self.featuresData.similarity(movieId, otherMovieId), otherMovieId))
   votes = [thisUserData[otherMovieId] for _, otherMovieId in pq.getArray()]
   return int(round(sum(votes) / len(votes)))
Exemplo n.º 2
0
 def makeVote(self, userId, movieId):
   pq = ArrayBasedBoundedPriorityQueue(k=self.k)
   for comparedUserId in self.userData:
     if pq.getArray():
       minimalUsefulSimilarity = -pq.getArray()[-1][0]
       comparedUserSimilarityLimit = self.combinedData.similarity((userId, movieId), (comparedUserId, movieId))
       if comparedUserSimilarityLimit < minimalUsefulSimilarity: continue
     for comparedMovieId, vote in self.userData[comparedUserId].items():
       pq.push((-self.combinedData.similarity((userId, movieId), (comparedUserId, comparedMovieId)), vote))
   votes = [vote for _, vote in pq.getArray()]
   return int(round(sum(votes) / len(votes)))