Example #1
0
 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)
Example #2
0
 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)
Example #4
0
 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
Example #6
0
 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')