def getFullInfluenceScore():
    partialScoreCollection = getClusterInfluencerScoreCollection()
    userClusterContributionCollection = getUserClusterContributionCollection()

    fbfriends = getFriendsCollection()
    fullScoreCollection = getFullInfluenceScoreCollection()

    for friend in fbfriends.find():
        fid = friend['id']
        partial = partialScoreCollection.find_one({'_id': fid})
        contribution = userClusterContributionCollection.find_one({'_id': fid})

        score = []

        for i in range(len(contribution['contribution'])):
            avg = 1.0
            try:
                avg *= sum(partial['cluster'][str(i)]) / len(
                    partial['cluster'][str(i)])
            except ZeroDivisionError:
                avg = 0.0
            score.append(avg * contribution['contribution'][i])

        if len(score) > 0:
            document = {}
            document['_id'] = fid
            document['name'] = friend['name']
            document['score'] = score
            fullScoreCollection.insert(document)
            print friend['name'], score
def getFullInfluenceScore():
	partialScoreCollection = getClusterInfluencerScoreCollection()
	userClusterContributionCollection = getUserClusterContributionCollection()

	fbfriends = getFriendsCollection()
	fullScoreCollection = getFullInfluenceScoreCollection()

	for friend in fbfriends.find():
		fid = friend['id']
		partial = partialScoreCollection.find_one({'_id' : fid})
		contribution = userClusterContributionCollection.find_one({'_id' : fid})

		score = []

		for i in range(len(contribution['contribution'])):
			avg = 1.0
			try:
				avg *= sum(partial['cluster'][str(i)])/len(partial['cluster'][str(i)])
			except ZeroDivisionError:
				avg = 0.0
			score.append(avg*contribution['contribution'][i])

		if len(score) > 0:
			document = {}
			document['_id'] = fid
			document['name'] = friend['name']
			document['score'] = score
			fullScoreCollection.insert(document)
			print friend['name'], score
def getClusterContribution():
	clusterInfluencerScoreCollection = getClusterInfluencerScoreCollection()
	userClusterContributionCollection = getUserClusterContributionCollection()
	userClusterContributionCollection.drop()
	for scores in clusterInfluencerScoreCollection.find():
		document = {}
		document['_id'] = scores['_id']
		document['contribution'] = []
		for cscore in sorted(scores['cluster'].keys()):
			document['contribution'].append(len(scores['cluster'][cscore]))

		document['contribution'] = [i*1.0/sum(document['contribution']) for i in document['contribution'] if sum(document['contribution']) > 0]
		print 'Calculated for', userClusterContributionCollection.insert(document)
示例#4
0
def getClusterContribution():
    clusterInfluencerScoreCollection = getClusterInfluencerScoreCollection()
    userClusterContributionCollection = getUserClusterContributionCollection()
    userClusterContributionCollection.drop()
    for scores in clusterInfluencerScoreCollection.find():
        document = {}
        document['_id'] = scores['_id']
        document['contribution'] = []
        for cscore in sorted(scores['cluster'].keys()):
            document['contribution'].append(len(scores['cluster'][cscore]))

        document['contribution'] = [
            i * 1.0 / sum(document['contribution'])
            for i in document['contribution']
            if sum(document['contribution']) > 0
        ]
        print 'Calculated for', userClusterContributionCollection.insert(
            document)