def find_nearest(skip_words, vec, id_to_word, df, num_results=1, method='cosine'):
if method == 'cosine':
minim = [] # min, index
for i, v in enumerate(df):
# skip the base word, its usually the closest
if id_to_word[i] in skip_words:
continue
dist = cosine(vec, v)
minim.append((dist, i, v))
minim = sorted(minim, key=lambda v: v[0])
# return list of (word, cosine distance, vector) tuples
return [(id_to_word[minim[i][1]], minim[i][0], minim[i][2]) for i in range(num_results)]
else:
raise Exception('{} is not an excepted method parameter'.format(method))
评论列表
文章目录