user_col = 'user_id'
item_col = 'item_id'
user_item_ = click_test.groupby(user_col)[item_col].agg(set)
a = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})
print(a)
dict(zip(a['a'],a['b']))
常用NLP分析
model.wv.vocab
计算与当前词距离最近的词,即原版本中的distance方法
model.most_similar(["boy"], topn=3)
# or
model.most_similar("boy", topn=3)
#[('girl', 0.7218124270439148), ('kid', 0.6669290065765381), ('boss', 0.6069169044494629)]
计算相似的词,topn=1设置自取最相似词表中的第一个
model.most_similar(positive=["woman","king"],negative=["man"],topn=1)
# output : [('queen', 0.6571654081344604)]
#其意义是计算一个词d(或者词表),使得该词的向量v(d)与v(a="woman")-v(c="man")+v(b="king")最近
data中groupby索引
a = {'a':[1,1,2,2,3,3,4],'b':[3,3,6,6,7,4,9]}
a = pd.DataFrame(a)
for i,j in a.groupby('a'):
print(i)
print(j)
Faiss应用 - 召回框架
user_vector_arr # shape(526,066, 128)
gds_vector_arr # shape(5,172, 128)
dim = 128# 向量维度
k = 10 # 定义召回向量个数
index = faiss.IndexFlatL2(dim) # L2距离,即欧式距离(越小越好)
# index=faiss.IndexFlatIP(dim) # 点乘,归一化的向量点乘即cosine相似度(越大越好)
index.add(gds_vector_arr) # 添加训练时的样本
D, I = index.search(user_vector_arr, k) # 寻找相似向量, I表示相似用户ID矩阵, D表示距离矩阵