示例#1
0
def smart_y_v_avg(movies, year):
    recent_avg = movieAvg(year=year)
    few_avg = movieAvg(year=year)
    several_avg = movieAvg(year=year)
    many_avg = movieAvg(year=year)
    for movie in movies:
        years_before = year - movie['year']
        if years_before < 2:
            recent_avg.add(movie)
        elif years_before < 5:
            few_avg.add(movie)
        elif years_before < 9:
            several_avg.add(movie)
        else:
            many_avg.add(movie)
    return calc_smart_avg(YEAR_OPT_COEF ,
     [item.smart_v_avg() for item in [recent_avg, few_avg, several_avg, many_avg]])
示例#2
0
def smart_year_avg(movies, year):
    recent_avg = AvgMaker()
    few_avg = AvgMaker()
    several_avg = AvgMaker()
    many_avg = AvgMaker()
    for movie in movies:
        years_before = year - movie['year']
        if years_before < 2:
            recent_avg.add(movie['rating'])
        elif years_before < 5:
            few_avg.add(movie['rating'])
        elif years_before < 9:
            several_avg.add(movie['rating'])
        else:
            many_avg.add(movie['rating'])
    return calc_smart_avg(YEAR_OPT_COEF,
     [item.avg() for item in [recent_avg, few_avg, several_avg, many_avg]])
示例#3
0
def smart_votes_avg(movies, year):

    header = ['rating', 'known avg', 'popular avg', "very popular avg"]

    known_avg = AvgMaker() # 5,000 - 50,000
    well_known_avg = AvgMaker()
    popular_avg = AvgMaker() # 50,000 - 500,000
    very_popular_avg = AvgMaker() # 500,000 +
# 50,000 20,000 8500
    for movie in movies:
        if int(movie['year']) >= year: continue
        if   int(movie['votes']) < 8000:
            known_avg.add(movie['rating'])
        elif int(movie['year']) < 20000:
            well_known_avg.add(movie['rating'])
        elif int(movie['year']) < 50000:
            popular_avg.add(movie['rating'])
        else:
            very_popular_avg.add(movie['rating'])
    return calc_smart_avg(VOTES_OPT_COEF,
     [item.avg() for item in [known_avg, well_known_avg, popular_avg, very_popular_avg] ])