def kNN_entity_name(self, name, src_lan='en', tgt_lan='fr', topk=10, method=0, replace=True):
model = self.models.get(src_lan)
if model == None:
print "Model for language", src_lan," does not exist."
return None
id = model.e2vec.get(name)
if id == None:
print name," is not in vocab"
return None
if src_lan != tgt_lan:#if you're not quering the kNN in the same language, then no need to get rid of the "self" point. However, transfer the vector.
pass_vec = np.dot(model.vec_e[id], self.transfer[src_lan + tgt_lan])
pass_vec /= LA.norm(pass_vec)
return self.kNN_entity(pass_vec, tgt_lan, topk, method, self_vec_id=None, replace_q=replace)
return self.kNN_entity(model.vec_e[id], tgt_lan, topk, method, self_vec_id=id, replace_q=replace)
#return k nearest relations to a given vector (np.array)
评论列表
文章目录