def user_recommendations(person):
    # Gets recommendations for a person by using a weighted average of every other users' rankings
    totals = {}
    simSums = {}
    rankings_list = []
    for other in dataset.keys():
        if other == person:
            continue
        similarity = pearson_correlation(person, other)
        if similarity <= 0:
            continue
        for item in dataset[other]:
            if item not in dataset[person] or dataset[person][item] == 0:

                # similarity * score
                totals.setdefault(item, 0)
                totals[item] += dataset[other][item] * similarity
                # sum of similarities
                simSums.setdefault(item, 0)
                simSums[item] += similarity
        # Create the normalized list
        rankings = [(total / simSums[item], item)
                    for item, total in totals.items()]

        rankings.sort(key=lambda t: t[0], reverse=True)
        recommender_list = [item for score, item in rankings]

        return recommender_list
Esempio n. 2
0
def recursionByStudents(user_idents=list(dataset.keys()), result_dict=dict()):
    if user_idents == []:
        return
    else:
        him = user_idents[0]
        result.append(him)
        return recursionByStudents(user_idents[1:])
Esempio n. 3
0
def addUserHotels(user_name, hotel_name, price):

    if user_name is None and hotel_name is None and price is None:
        return

    clients = list(dataset.keys())

    if user_name not in clients:
        dataset[user_name] = {
            "hotels": {
                hotel_name: {
                    "price": [price]
                },
            }
        }

        return

    hotels_client = list(dataset[user_name]['hotels'].keys())

    if hotel_name not in hotels_client:
        dataset[user_name]['hotels'][hotel_name] = {"price": [price]}

        return

    dataset[user_name]['hotels'][hotel_name]['price'].append(price)
Esempio n. 4
0
def recursionByID(id=list(dataset.keys()), result_dict=dict()):
    if id == []:
        return result_dict
    id = id[0]
    bank_list = list(dataset[id].keys())
    credit = recursionByBank(id, bank_list)
    result_dict[id] = credit
    return recursionByID(id[1:], result_dict)
Esempio n. 5
0
def recursionByUsers(users_id = list(dataset.keys()), result_dict = dict()):
    if users_id == []:
        return result_dict
    user_id= users_id[0]
    banks = list (dataset[user_id].keys())
    money = recursionByProducts(user_id, banks)

    result_dict[user_id] = money

    return recursionByUsers(users_id[1:], result_dict)
Esempio n. 6
0
def recByUser(user_nums=list(dataset.keys()), result_dict=dict()):

    if user_nums == []:
        return result_dict

    user_num = user_nums[0]
    country_list = list(dataset[user_num].keys())
    allMoney = recPrice(user_num, country_list)
    result_dict[user_num] = allMoney

    return recByUser(user_nums[1:], result_dict)
Esempio n. 7
0
def recursionByUsers(user_codes = list(dataset.keys()), result_dict = dict()):
    #TODO
    if user_codes == []:
        return result_dict
    user_code = user_codes[0]
    country_list = list (dataset[user_code].keys())
    money = recursionByProducts(user_code, country_list)

    result_dict[user_code] = money

    return recursionByUsers(user_codes[1:], result_dict)
Esempio n. 8
0
def reByUser(phones=list(dataset.keys()), result=dict()):

    if phones == []:
        return result

    hotels_dict = dataset[phones[0]]['hotels']

    count = len(hotels_dict.keys())

    result[phones[0]] = count

    return reByUser(phones[1:], result)
Esempio n. 9
0
def recursion_by_cars(car_numbers=list(dataset.keys()), result_dict = dict(), i=0):

    if i==len(car_numbers):
        return result_dict

    car_number= car_numbers[i]
    user_list = list(dataset[car_number].keys())
    money = recursion_by_users(car_number, user_list)

    result_dict[car_number] = money

    return recursion_by_cars(car_numbers, result_dict, i+1)
Esempio n. 10
0
def recursionByUsers(user_emails=list(dataset.keys()), result_dict=dict()):

    if user_emails == []:
        return result_dict

    user_email = user_emails[0]
    product_list = list(dataset[user_email].keys())
    money = recursionByProducts(user_email, product_list)

    result_dict[user_email] = money

    return recursionByUsers(user_emails[1:], result_dict)
Esempio n. 11
0
def recursionByauto(user_auto = list(dataset.keys()), result_dict = dict()):
    if user_auto == []:
        return result_dict

    user_auto = user_auto[0]

    product_list = list(dataset[user_auto].keys())

    money = recursionByRace(user_auto, product_list)

    result_dict[user_auto] = money

    return recursionByauto (user_auto[1:], result_dict)
Esempio n. 12
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as graph

data = dict()
for user_num in list(dataset.keys()):
    for county, country_list in (dataset[user_num]).items():
        if user_num in data:
            data[user_num] += sum(country_list)
        else:
            data[user_num] = sum(country_list)

print(data)

diagram = graph.bar(x=list(data.keys()), y=list(data.values()))

figure = graph.Figure(data=[diagram])
plotly.ofline.plot(figure, filename='user costs.html')
Esempio n. 13
0
from data import dataset, clients

all_products = {position[2] for position in clients}

for product in all_products:
    counter = 0
    for name in dataset:
        for date in dataset[name]:
            if product in dataset[name][date]:
                counter += 1
                break
    if counter == len(dataset.keys()):
        print('Everyone bought', product)
Esempio n. 14
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go
data = dict()
for user_id in list(dataset.keys()):
    for bank, money in (dataset[user_id]).items():
        if user_id in data:
            data[user_id] += sum(money)
        else:
            data[user_id] = sum(money)

#Вивести кругову діаграму: якого товару на яку суму продано.

diagram = go.Pie(labels=list(data.keys()), values=list(data.values()))

plotly.offline.plot([diagram], filename="task5.html")
Esempio n. 15
0
from data import dataset
from task1 import *
import plotly

import plotly.graph_objs as go
data = dict()

def sumbank(result, bank_list):
    result += 0.0
    for item in bank_list:
        result += float(item[1:-4])
        return result

for ID in list(dataset.keys()):
    for bank, bank_list in (dataset[ID]).items():
        if ID in data:
            data[ID] += sum(bank_list)
        else:
            data[ID] = sum(bank_list)
print(data)

diagram = go.Bar(
    x=list(data.keys()),
    y=list(data.values())
)

fig = go.Figure(data=[diagram])

plotly.offline.plot(fig, filename='user expenses.html')
Esempio n. 16
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go

dataset_hostels_mach = [
    len(dataset[i]['hotels'].keys()) for i in dataset.keys()
]

#Вивести кругову діаграму: якого товару на яку суму продано.

diagram = go.Pie(labels=list(dataset.keys()), values=dataset_hostels_mach)

plotly.offline.plot([diagram], filename='hotelsdia.html')
Esempio n. 17
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go

#Вивести кругову діаграму: скільки хто витратив грошей

data = dict()
for car in list(dataset.keys()):
    for user in list(dataset[car].keys()):
        for price in dataset[car][user]['price']:
            if user in data:
                data[user] += price
            else:
                data[user] = price
print(data)

diagram = go.Pie(labels=list(data.keys()), values=list(data.values()))

plotly.offline.plot([diagram], filename='products.html')
Esempio n. 18
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go


#Вивести стовпчикову діаграму: хто скільки грошей витратив.
data = dict()
for user_auto in list (dataset.keys()):
    for race, product_race in ( dataset[user_auto]).items():
        if user_auto in data:
            data[user_auto] += sum(product_race)
        else:
            data[user_auto] = sum(product_race)

print(data)
diagram = go.Bar(
    x=list(data.keys()),
    y=list(data.values())
)

fig = go.Figure(data=[diagram])

plotly.offline.plot(fig, filename='user expenses.html')
Esempio n. 19
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go

dataset_hostels_mach = [
    len(dataset[i]['hotels'].keys()) for i in dataset.keys()
]

data = go.Bar(
    x=list(dataset.keys()),
    y=dataset_hostels_mach,
)

fig = go.Figure(data=[data])
plotly.offline.plot(fig, filename='hotels.html')
Esempio n. 20
0
from data import dataset
from Task1 import *

import plotly
import plotly.graph_objs as go


#Вивести кругову діаграму: якого товару на яку суму продано.

data = dict()
for user_email in list (dataset.keys()):
    for product, products_list in (dataset[user_email]).items():
        if product in data:
            data[product] += sum(products_list)
        else:
            data[product] = sum(products_list)
print(data)

diagram = go.Pie(labels=list(data.keys()), values=list( data.values()))

plotly.offline.plot([diagram], filename='products.html')
Esempio n. 21
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go

#Вивести стовпчикову діаграму: скільки тем в кожній дисципліні.

datas = dict()
data = dict()
for ident in list(dataset.keys()):
    datas[ident] = {}
    for clas in dataset[ident]:
        if clas in datas[ident]:
            datas[ident][clas] += 1
            data[clas] += 1
        else:
            datas[ident][clas] = 1
            data[clas] = 1
print(data)

diagram = go.Bar(x=list(data.keys()), y=list(data.values()))

fig = go.Figure(data=[diagram])

plotly.offline.plot(fig, filename='user_topics.html')
Esempio n. 22
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go

#Вивести кругову діаграму: у якого студента скільки тем
datas = dict()
data = dict()
for ident in list(dataset.keys()):
    datas[ident] = {}
    for clas in dataset[ident]:
        if clas in datas[ident]:
            datas[ident][clas] += 1
            data[clas] += 1
        else:
            datas[ident][clas] = 1
            data[clas] = 1
print(data)

diagram = go.Pie(labels=(list(dataset.keys())), values=list(data.values()))

fig = go.Figure(data=[diagram])

plotly.offline.plot(fig, filename="topics_pie.html")
Esempio n. 23
0
from data import dataset
from task1 import *

import plotly
import plotly.graph_objs as go


#Вивести кругову діаграму: якого товару на яку суму продано.
data= dict()
for name_auto in list (dataset.keys()):

    for race, race_list in (dataset[name_auto]).items():

        if race in data:

            data[race] += sum(race_list)

        else:

            data[race] = sum(race_list)
print(data)


diagram =go.Pie((labels=list(data.keys()), values=list( data.values())))

plotly.offline.plot([diagram], filename = "auto.html")