コード例 #1
0
def testItemEuclidean():
    print("\n*******************************************")
    print("\n****Distância Euclidiana entre 2 Filmes****")
    print("\n*******************************************\n")
    print("Star Trek e Star Wars: ",
          str(euclideanDistance(movieRatingTable, 'Star Trek', 'Star Wars')))
    print("\n###########################################\n")
コード例 #2
0
def testUserEuclidean():
    print("\n*******************************************")
    print("\n***Distância Euclidiana entre 2 usuarios***")
    print("\n*******************************************")
    print("Ana e Marcos: ",
          str(euclideanDistance(userRatingTable, 'Ana', 'Marcos')))
    print("\n###########################################\n")
コード例 #3
0
def getSimilarity(evaluationTable, userBase, limit=30):
    similarity = [(euclideanDistance(evaluationTable, userBase,
                                     userCompare), userCompare)
                  for userCompare in evaluationTable
                  if userCompare != userBase]

    similarity.sort()
    similarity.reverse()

    return similarity[0:limit]
コード例 #4
0
def getUserRecommendations(evaluationTable, userBase, limit=30):
    totais = {}
    similaritySum = {}

    for userCompare in evaluationTable:
        if userCompare == userBase: continue

        similarity = euclideanDistance(evaluationTable, userBase, userCompare)

        if similarity <= 0: continue

        for item in evaluationTable[userCompare]:
            if item not in evaluationTable[userBase]:
                totais.setdefault(item, 0)
                totais[item] += evaluationTable[userCompare][item] * similarity
                similaritySum.setdefault(item, 0)
                similaritySum[item] += similarity

    rankings = [(total / similaritySum[item], item)
                for item, total in totais.items()]
    rankings.sort()
    rankings.reverse()

    return rankings[0:limit]
コード例 #5
0
def testMovieEuclidean():
    print ("\n****Distância Euclidiana entre 2 Filmes:\n")
    print ("Star Trek e Star Wars: ", str(euclideanDistance(movieRatingTable, '222','50')))
コード例 #6
0
def testUserEuclidean():
    print ("\n*******************************************")
    print ("\n***Distância Euclidiana entre 2 usuarios***")
    print ("\n*******************************************")
    print ("1 e 212: ", str(euclideanDistance(userRatingTable, '1','212')))
    print ("\n###########################################\n")