def test(self, save=True): embedding = self.sess.run(self.output) embeds1 = np.array([embedding[e] for e in self.kgs.test_entities1]) embeds2 = np.array([embedding[e] for e in self.kgs.test_entities2]) rest_12, _, _ = test(embeds1, embeds2, None, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) test(embeds1, embeds2, None, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=self.args.csls, accurate=True) if save: ent_ids_rest_12 = [(self.kgs.test_entities1[i], self.kgs.test_entities2[j]) for i, j in rest_12] rd.save_results(self.out_folder, ent_ids_rest_12)
def test(self, save=True): if self.args.test_method == "sa": beta = self.args.beta embeddings = np.concatenate( [self.vec_se * beta, self.vec_ae * (1.0 - beta)], axis=1) else: embeddings = self.vec_se embeds1 = np.array([embeddings[e] for e in self.kgs.test_entities1]) embeds2 = np.array([embeddings[e] for e in self.kgs.test_entities2]) rest_12, _, _ = test(embeds1, embeds2, None, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) test(embeds1, embeds2, None, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=self.args.csls, accurate=True) if save: rd.save_results(self.out_folder, rest_12)
def test(self, save=True): embeds1, embeds2, mapping = self._eval_test_embeddings() rest_12, _, _ = test(embeds1, embeds2, mapping, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) test(embeds1, embeds2, mapping, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=self.args.csls, accurate=True) if save: ent_ids_rest_12 = [(self.kgs.test_entities1[i], self.kgs.test_entities2[j]) for i, j in rest_12] rd.save_results(self.out_folder, ent_ids_rest_12)
def test(self, save=True): mat = get_ent_embeds_from_attributes(self.kgs, self.eval_attribute_embeddings(), self.selected_attributes) embeds1 = mat[self.kgs.test_entities1, ] embeds2 = mat[self.kgs.test_entities2, ] rest_12, _, _, rest_21, _, _ = evaluation.test( embeds1, embeds2, None, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, csls_k=self.args.csls) if save: read.save_results(self.out_folder, rest_12)
def test_alignment(self, save=True): embeds1, embeds2, mapping = self._eval_test_embeddings() mr, mrr, hits, hits_12_list, hits_21_list = rank_alignment_bidirection( embeds1, embeds2, mapping, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) if save: rd.save_results(self.out_folder, hits_12_list) return mr, mrr, hits, hits_12_list, hits_21_list
def test(self, save=True): embeds1, embeds2, mapping = self._eval_test_embeddings() rest_12, _, _ = test(embeds1, embeds2, mapping, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) test(embeds1, embeds2, mapping, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=self.args.csls, accurate=True) if save: rd.save_results(self.out_folder, rest_12)
def retest_alignment(self, save): print(self.__class__.__name__, type(self.__class__.__name__)) #mapping = None #if os.path.exists(new_dir + "mapping_mat.npy"): # print(self.__class__.__name__, "loads mapping mat") # mapping = np.load(new_dir + "mapping_mat.npy") embeds1, embeds2, mapping = self._eval_test_embeddings() id1_entities_dict = dict() for new_id, old_id in enumerate(self.kgs.test_entities1): ent = self.kgs.kg1.id_entities_dict.get(old_id) id1_entities_dict[new_id] = ent id2_entities_dict = dict() for new_id, old_id in enumerate(self.kgs.test_entities2): ent = self.kgs.kg2.id_entities_dict[old_id] id2_entities_dict[new_id] = ent print("conventional test:") mr_12, mrr_12, hits_12, hits_12_list = rank_alignment( embeds1, embeds2, mapping, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) if save: hits_12_ent = rd.pairs_id2ent(hits_12_list, id1_entities_dict, id2_entities_dict) rd.save_results(self.out_folder, hits_12_ent, 'alignment_results_12') print("conventional reversed test:") if mapping is not None: embeds1 = np.matmul(embeds1, mapping) rank_alignment(embeds2, embeds1, None, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) else: mr_21, mrr_21, hits_21, hits_21_list = rank_alignment( embeds2, embeds1, mapping, self.args.top_k, self.args.test_threads_num, metric=self.args.eval_metric, normalize=self.args.eval_norm, csls_k=0, accurate=True) if save: hits_21_ent = rd.pairs_id2ent(hits_21_list, id2_entities_dict, id2_entities_dict) rd.save_results(self.out_folder, hits_21_ent, 'alignment_results_21')