import dbInfo as db
import numpy as np
import persPageRank as ppr

userId = input("\nGive User Id: ")

movies = db.getAllMovies()
movieNames = db.getAllMovieNames()
tfmovies = {}
for movieId in movies:
    Taglist = db.getMovieTags(movieId[0])
    UnqTags = db.getMovieTagIds(movieId[0])[0][0].split(",")
    #print(UnqTags,movieId,Taglist)
    tfvect = {}
    for tag in UnqTags:
        tffact = 0
        for t in Taglist:
            if (t[0] == tag):
                tffact += 1
        tfvect[tag[0]] = tffact / len(Taglist)
    tfmovies[movieId[0]] = tfvect
tagids = db.getAllTags()
#print(tagids)
movietf = np.zeros((len(tfmovies), len(tagids)))
for i in range(len(tfmovies)):
    for j in range(len(tagids)):
        if (tagids[j][0] in tfmovies[movies[i][0]].keys()):
            movietf[i][j] = tfmovies[movies[i][0]][tagids[j][0]]
matrix = np.matmul(movietf, np.transpose(movietf))
seedList = db.getUserMoviesRates(userId)
seeds = []
示例#2
0
import dbInfo as di
import probFeedback as pf
import movieRecomm as mr
import numpy as np

userId = input("\nGive User Id: ")
numMovies = 5

movies = di.getAllMovies()
movieNames = di.getAllMovieNames()
moviesArr = []
for mov in movies:
	moviesArr.append(mov[0])

mat = mr.formPPRMatrix()
matrix = np.matmul(mat,np.transpose(mat))

usrSeenMovies = di.getusrMovTime(userId)
if(len(usrSeenMovies) <= 0):
	print("user has not watched any movies to give suggestions")
	sys.exit()
usrMovies = []
for mov in usrSeenMovies:
	usrMovies.append(mov[0])
print("\nseeds =", usrMovies)
rankedRes = mr.pprRes(matrix, usrMovies)
#print("ranked res",rankedRes)
print("\nRank\tMovie Id\tMovie Name\n")
for i in range(numMovies):
	movIdx = moviesArr.index(rankedRes[i])
	print(i+1,":\t",rankedRes[i],"\t\t",movieNames[movIdx][0])
tagSemantics = tl.unfold(factors[0], 1)
movieSemantics = tl.unfold(factors[1], 1)
rateSemantics = tl.unfold(factors[2], 1)

print("\n\nTag Semantics:")
for sem in tagSemantics:
    print("\n\n", utils.rankSem(sem, tags))
print("\n\nMovie Semantics:")
for sem in movieSemantics:
    print("\n\n", utils.rankSem(sem, movies))
print("\n\nRating Semantics:")
for sem in rateSemantics:
    print("\n\n", utils.rankSem(sem, ratings))

tagList = di.getAllTagNames()
movList = di.getAllMovieNames()
rates = di.getAllRatings()

tagGroups = utils.form_groups_semantics(factors[0], tagList, numGroups)
movGroups = utils.form_groups_semantics(factors[1], movList, numGroups)
rtngGroups = utils.form_groups_semantics(factors[2], rates, numGroups)

print("\n\n5 Non overlapping Tag groups:")
for grp in tagGroups.keys():
    print("\n\n", grp, ":", tagGroups[grp])
print("\n\n5 Non overlapping Movie groups:")
for grp in movGroups.keys():
    print("\n\n", grp, ":", movGroups[grp])
print("\n\n5 Non overlapping Rating groups:")
for grp in rtngGroups.keys():
    print("\n\n", grp, ":", rtngGroups[grp])