def evaluate(T_s2t, T_t2s, src_emb, tgt_emb, s2t_dict, t2s_dict): src_emb, tgt_emb, s2t_dict, t2s_dict, T_s2t, T_t2s = [x.cpu().numpy() if isinstance(x, torch.Tensor) else x for x in (src_emb, tgt_emb, s2t_dict, t2s_dict, T_s2t, T_t2s)] TranslatedX = src_emb.dot(np.transpose(T_s2t)) TranslatedY = tgt_emb.dot(np.transpose(T_t2s)) s2t_nn = utils.get_word_translation_accuracy(TranslatedX, tgt_emb, "nn", s2t_dict) s2t_csls = utils.get_word_translation_accuracy(TranslatedX, tgt_emb, "csls_knn_10", s2t_dict) t2s_nn = utils.get_word_translation_accuracy(TranslatedY, src_emb, "nn", t2s_dict) t2s_csls = utils.get_word_translation_accuracy(TranslatedY, src_emb, "csls_knn_10", t2s_dict) return {"s2t_nn": s2t_nn, "s2t_csls": s2t_csls, "t2s_nn": t2s_nn, "t2s_csls": t2s_csls}
import numpy as np import utils import params src_id2word, src_word2id, src_embeddings = utils.read_txt_embeddings('data/wiki.%s.vec' % params.src_lang, params.n_eval_ex, False) tgt_id2word, tgt_word2id, tgt_embeddings = utils.read_txt_embeddings('data/wiki.%s.vec' % params.tgt_lang, params.n_eval_ex, False) print("%s_%s" % (params.src_lang, params.tgt_lang)) TranslatedX = np.load("output/TranslatedX-relu.npy") cross_dict = utils.load_dictionary('../data-test/medical/test-dict-only-words.txt', src_word2id, tgt_word2id) utils.get_word_translation_accuracy(params.src_lang, src_word2id, TranslatedX, params.tgt_lang, tgt_word2id, tgt_embeddings, params.method, cross_dict, src_id2word)
# TranslatedX = to_translate_src_embeddings.dot(np.transpose(T)) cross_dict, existing_emb_tgt_translated, existing_emb_tgt_real, existing_src_id2word = utils.load_dictionary( 'data/new-test-dict-only-words-no-parsed.txt', src_word2id, tgt_word2id, to_translate_src_word2id, translated_tgt_word2id, TranslatedX, tgt_embeddings, src_embeddings, ) utils.get_word_translation_accuracy(params.src_lang, src_word2id, existing_emb_tgt_translated, params.tgt_lang, tgt_word2id, existing_emb_tgt_real, params.method, cross_dict, existing_src_id2word) print("%s_%s" % (params.tgt_lang, params.src_lang)) #uncomment for comparing with the global transformation TranslatedY = to_translate_src_embeddings # T = np.load("../Non-adversarialTranslation/%s/%s_%s_T.npy" % (params.cp_dir, params.tgt_lang, params.src_lang)) # TranslatedY = translated_tgt_embeddings.dot(np.transpose(T)) cross_dict, existing_emb_tgt_translated, existing_emb_tgt_real, existing_src_id2word = utils.load_dictionary( 'data/new-test-dict-only-words-no-parsed-es-en.txt', tgt_word2id, src_word2id, translated_tgt_word2id,