Example #1
0
 def genre_popularity(self):
     self.text.delete(1.0, END)
     self.ax.cla()
     data = DB_CONNECTION.retrieve_data("genre_popularity")
     Popularity.calculate(self, data)
     self.f.canvas.draw()
     self.f.savefig("Plots/user_rating_genre_dist")
Example #2
0
 def requires(self):
     config = Config.get()
     return (Coordinates.CreateSampleCoordinates(),
             Popularity.SampleCreator(
                 config.get("ExternalFiles",
                            "vecs_with_id")), ContourCode(),
             CreateContinents(), MakeRegions())
def predict():
   print(request.form)
   feature=[]
   feature.append(731)
   feature.append(len(request.form["title"].split())+2)
   feature.append(len(request.form["text"].split()))
   print(len(set(request.form["text"].split())))
   print((len(request.form["text"].split()))+2)
   feature.append(len(set(request.form["text"].split()))/(len(request.form["text"].split())+13))
   feature.append(len(set(request.form["title"].split()))/len(request.form["title"].split()))
   feature.append(len(set(request.form["title"].split()))/len(request.form["title"].split()))
   feature.append(int(request.form["external_links"])+int(request.form["self_links"]));
   feature.append(int(request.form["self_links"]));
   feature.append(int(request.form["image"]));
   feature.append(int(request.form["video"]));
   words = request.form["text"].split()
   feature.append(sum(len(word) for word in words) / (len(words)+13))
   feature.append(0)
   print("Fyk")
   feature.append(1 if request.form["channel"]=="1" else 0)
   feature.append(1 if request.form["channel"]=="2" else 0)
   feature.append(1 if request.form["channel"]=="3" else 0)
   feature.append(1 if request.form["channel"]=="4" else 0)
   feature.append(1 if request.form["channel"]=="5" else 0)
   feature.append(1 if request.form["channel"]=="6" else 0)
   feature.append(int(request.form["max_external_share"]))
   feature.append(int(request.form["avg_self_share"]))
   print("Shik")
   feature.append(1 if request.form["day"]=="1" else 0)
   feature.append(1 if request.form["day"]=="2" else 0)
   feature.append(1 if request.form["day"]=="3" else 0)
   feature.append(1 if request.form["day"]=="4" else 0)
   feature.append(1 if request.form["day"]=="5" else 0)
   feature.append(1 if request.form["day"]=="6" else 0)
   feature.append(1 if request.form["day"]=="7" else 0)
   feature.append(1 if request.form["day"]=="6" or request.form["day"]=="7" else 0 )
   feature.append(TextBlob(request.form["text"]).sentiment.subjectivity)
   feature.append(TextBlob(request.form["text"]).sentiment.polarity)
   feature.append(TextBlob(request.form["title"]).sentiment.subjectivity)
   feature.append(TextBlob(request.form["title"]).sentiment.polarity)
   feature.append(abs(TextBlob(request.form["title"]).sentiment.subjectivity))
   feature.append(abs(TextBlob(request.form["title"]).sentiment.polarity))
   print(len(feature))
   result = ""
   if Popularity.predictPopularity(feature) == 1.0:
      result = "Popular"
   else:
      result = "Not Popular"
   result = " Your News Article will be " +result 
   return render_template('Result.html',message =result)
def k_means_clustering(no_of_clusters, item_popularity_df, articles_df):

    x_df = pd.read_csv('shared_articles.csv')
    x = x_df['text']
    model = KMeans(n_clusters=no_of_clusters,
                   init='k-means++',
                   max_iter=100,
                   n_init=1)
    #model.fit(x)

    print("\n")

    popularityModel = Popularity.PopularityRecommender(item_popularity_df,
                                                       articles_df)
    list_of_popular_items_clusterwise = popularityModel.recommend_items(
        user_id=1, topn=no_of_clusters, verbose=True)
    return list_of_popular_items_clusterwise
Example #5
0
def popularity(user_id, no=20):
    global songs_to_ix, ix_to_songs, id_to_no, no_to_id, train_data, test_data, users, songs, song_db_subset
    User_no = id_to_no[user_id]

    song_db_1 = pd.read_csv('/home/niket/Desktop/triplet.csv')
    song_db_2 = pd.read_csv('/home/niket/Downloads/song_data.csv', )
    song_db = pd.merge(song_db_1,
                       song_db_2.drop_duplicates(['song_id']),
                       on="song_id",
                       how="left")
    song_db['song'] = song_db['title'] + "-" + song_db['artist_name']
    song_grouped = song_db.groupby(['song']).agg({
        'listen_count': 'count'
    }).reset_index()
    grouped_sum = song_grouped['listen_count'].sum()

    train_data, test_data = train_test_split(song_db_subset,
                                             test_size=.20,
                                             random_state=0)
    #print(train_data)
    pm = Popularity.popularity_recommender()

    pm.make(train_data, 'user_id', 'song', no)
    return (list(pm.recommend_songs(user_id)['song']))
Example #6
0
ran_N[0] += 10
for N in ran_N:
    UID_N_rank = {}
    for fn in UID_rank.keys():
        UID_N_rank[fn] = {}
        for i in UID_rank[fn]:
            UID_N_rank[fn][i] = UID_rank[fn][i][:N]
    div_N_val[N] = {}
    fre_N_val[N] = {}
    adv_N_val[N] = {}
    pop_N_val[N] = {}
    print 'N = %d' % (N)
    print 'fn--div--fer--pop--adv\n'
    for fn in UID_N_rank.keys():
        fre_val = FRE.us_fre(UID_N_rank[fn], song_info, real_sid)
        pop_val = POP.us_pop(UID_N_rank[fn], SID_pop)
        div_val = DIV.us_div(UID_N_rank[fn], song_info, real_sid)
        adv_val = ADV.us_adv(UID_AID_tr_dict, UID_N_rank[fn], song_info,
                             real_sid)
        print '%s' % (fn.split('/')[-1]),
        print '--%.4f' % (div_val.mean()),
        print '--%d' % (fre_val.mean()),
        print '--%d' % (pop_val.mean()),
        print '--%.3f' % (adv_val.mean())
        div_N_val[N][fn] = div_val.mean()
        fre_N_val[N][fn] = fre_val.mean()
        adv_N_val[N][fn] = adv_val.mean()
        pop_N_val[N][fn] = pop_val.mean()
'''
print 'fn,div,fer,pop\n'
for fn in pred_fn.keys():
Example #7
0
 def requires(self):
     return (MakeRegions(), CalculateZoomsCode(),
             Coordinates.CreateFullCoordinates(),
             Popularity.PopularityIdentifier())
Example #8
0
#Top-N accuracy metrics consts
#EVAL_RANDOM_SAMPLE_NON_INTERACTED_ITEMS = 100

model_evaluator = ModelEvaluator()

# In[15]:

#Computes the most popular items
item_popularity_df = interactions_full_df.groupby(
    'contentId')['eventStrength'].sum().sort_values(
        ascending=False).reset_index()
item_popularity_df.head(10)

# In[16]:

popularity_model = Popularity.PopularityRecommender(item_popularity_df,
                                                    articles_df)

# In[17]:

#print('Evaluating Popularity recommendation model...')
#pop_global_metrics, pop_detailed_results_df = model_evaluator.evaluate_model(popularity_model)
#print('\nGlobal metrics:\n%s' % pop_global_metrics)
#pop_detailed_results_df.head(10)

# In[18]:

#nltk.download('stopwords')

# In[19]:

#CONTENT BASED
Example #9
0
 def requires(self):
     return (Popularity.PopularityIdentifier(), PopularityLabelSizerCode())
Example #10
0
#real sid
song_id_fn = '/home/fearofchou/data/KKBOX/stats/AW_song_id.npy'
real_sid = np.sort(np.load(song_id_fn))
#========================================================

#each user dict
SID_dict = {}
for idx, val in enumerate(SID):
    try:
        SID_dict[val].append(UID[idx])
    except:
        SID_dict[val] = [UID[idx]]
#========================================================

import Diversity as DIV
import Popularity as POP
import Freshness as FRE
UID_div = DIV.us_div(UID_dict, song_meta, real_sid)
UID_fre = FRE.us_fre(UID_dict, song_meta, real_sid)
UID_pop = POP.us_pop(SID, UID_dict)

UID_us = {}
UID_us['Freshness'] = UID_fre
UID_us['Popularity'] = UID_pop
UID_us['Diversity'] = UID_div

import sys
sys.path.append('/home/fearofchou/code/Recsys/evul/')
from evul_all import *
Example #11
0
    song_db_2 = pd.read_csv('/home/niket/Downloads/song_data.csv', )
    song_db = pd.merge(song_db_1,
                       song_db_2.drop_duplicates(['song_id']),
                       on="song_id",
                       how="left")
    song_db['song'] = song_db['title'] + "-" + song_db['artist_name']
    song_grouped = song_db.groupby(['song']).agg({
        'listen_count': 'count'
    }).reset_index()
    grouped_sum = song_grouped['listen_count'].sum()

    train_data, test_data = train_test_split(song_db_subset,
                                             test_size=.20,
                                             random_state=0)
    #print(train_data)
    pm = Popularity.popularity_recommender()

    pm.make(train_data, 'user_id', 'song', No)
    print(pm.recommend_songs(User))
    #l=list(pm.recommend_songs(User)['song'])
    #for i in l:
    #    print(i)

else:

    #content based filtering
    song = []

    if (len(user_data['song'].unique()) < 10):
        print("20 % Content based filtering \n")
        #print("80 % 20% content \n")
Example #12
0
def getFinal():
    uid = "1"
    file = open("user.txt", "r")
    uid = file.read()
    query = "select user_history.uid,user_history.pid,phonefeatures.ModelName from user_history,phonefeatures where user_history.uid=" + uid + " and phonefeatures.PhoneID=user_history.pid  order by user_history.no_of_times_searched desc"
    cursor = db.mydb.cursor()
    cursor.execute(query)
    result = cursor.fetchall()
    global pidlist
    pidlist = []
    flag = False
    phone_to_avoid = 122
    if (len(result) == 0):
        print("User Has No Search History...")
        pr.popmodel()
    else:
        global user_id
        user_id = 0
        print("User Has Search History...")
        print(result)
        for res in result:
            uid = res[0]
            user_id = uid
            pid = res[1]
            query = "select * from purchased_phones where uid=" + str(
                uid) + " and pid=" + str(pid)
            cursor.execute(query)
            purchased = cursor.fetchall()
            if len(purchased) != 0:
                #querystmt = "select * from purchased_phones where uid="+str(uid)+" and pid="+str(pid);#+"and overall>=3";
                #cursor.execute(querystmt)
                #checkres = cursor.fetchall()
                #print(checkres)
                if purchased[0][3] >= 3:
                    pidlist.append(res[1])
                else:
                    print("This phone has rating less than 3....")
                    #co.collaborative(uid,res[1])
                    phone_to_avoid = res[1]
                    flag = True

            else:
                print(
                    "Entry for this phone exists in search history but not in purchased phones...."
                )
        list1 = []
        list2 = []
        if (flag == True):
            list1 = co.collaborative(user_id, phone_to_avoid)
        if len(pidlist) != 0:
            list2 = cb2.ContentBased(pidlist)
        uniquePhones = set()
        for l in list1:
            uniquePhones.add(l)
        for l in list2:
            uniquePhones.add(l)
        NewList = []
        i = 0
        while len(NewList) < 10:
            if list1[i] in uniquePhones:
                NewList.append(list1[i])
                uniquePhones.remove(list1[i])
            if list2[i] in uniquePhones:
                NewList.append(list2[i])
                uniquePhones.remove(list2[i])
            i = i + 1
        return NewList