You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi , I am trying to get top 10 news recommendations for given user id . Below is the code which i am using for it :
iterator = MINDIterator
model = LSTURModel(hparams, iterator, seed=seed)
print(model.run_eval(valid_news_file, valid_behaviors_file))
model.fit(train_news_file, train_behaviors_file, valid_news_file, valid_behaviors_file)
news_vecs = model.run_news(valid_news_file)
user_vecs = model.run_user(valid_news_file, valid_behaviors_file)
uid = list(user_vecs.keys())[10] # This a random test user id for which i need news recommendations
user_vec = user_vecs[uid]
scores = {news_id: np.dot(user_vec, news_vec) for news_id, news_vec in news_vecs.items()}
top_10_news = sorted(scores, key=scores.get, reverse=True)[:10]
print("Top 10 news recommendations for user:", uid)
print(top_10_news)
So the output i get is an array of id's like this : [12580, 10755, 13550, 2500, 5302, 4810, 18519, 18187, 3741, 13954]
I am looking to convert these id's to Actual New item id's like : N15366 , N18191 etc -- using which i could get the News titles .
Any help would be greatly appreciated .
The text was updated successfully, but these errors were encountered:
Are these id's same as News id's present in MIND dataset with the "N" removed ?
I also feel the way i am getting userid is not the ideal way , i am just inputting a Vector index . So i would like to know how to give user id like 'U28498' as input to perform the prediction .
sivaramaaa
changed the title
[ASK] How to convert News Vector from run_news to News id
[ASK] How to get top recommendations for a given user id - LSTURModel
Sep 26, 2023
In the MINDIterator, there are two attributes, uid2index and nid2index, which respectively keep track of mappings from user IDs to indices and news IDs to indices. It's important to note that the numbers you input and obtain are indeed indices. To retrieve the corresponding user ID or news ID, you should use these dictionaries for mapping.
Thanks a lot for the reply , but i had tried accessing nid2index at the time of filling this issue itself , it was not accessible as i guess it's a private property which is not exposed :
iterator = MINDIterator
nid2index = iterator.nid2index
index2nid = {index: nid for nid, index in nid2index.items()}
top_10_news_ids = [index2nid[index] for index in top_10_news]
print("Top 10 news recommendations for user:", uid)
print(top_10_news_ids)
This is the error i got :
AttributeError: type object 'MINDIterator' has no attribute 'nid2index'
If possible can you let me know if there is a way to access this property .
Description
Hi , I am trying to get top 10 news recommendations for given user id . Below is the code which i am using for it :
So the output i get is an array of id's like this : [12580, 10755, 13550, 2500, 5302, 4810, 18519, 18187, 3741, 13954]
I am looking to convert these id's to Actual New item id's like : N15366 , N18191 etc -- using which i could get the News titles .
Any help would be greatly appreciated .
The text was updated successfully, but these errors were encountered: