in src/evaluation/evaluator.py [0:0]
def monolingual_wordsim(self, to_log):
"""
Evaluation on monolingual word similarity.
"""
src_ws_scores = get_wordsim_scores(
self.src_dico.lang, self.src_dico.word2id,
self.mapping(self.src_emb.weight).data.cpu().numpy()
)
tgt_ws_scores = get_wordsim_scores(
self.tgt_dico.lang, self.tgt_dico.word2id,
self.tgt_emb.weight.data.cpu().numpy()
) if self.params.tgt_lang else None
if src_ws_scores is not None:
src_ws_monolingual_scores = np.mean(list(src_ws_scores.values()))
logger.info("Monolingual source word similarity score average: %.5f" % src_ws_monolingual_scores)
to_log['src_ws_monolingual_scores'] = src_ws_monolingual_scores
to_log.update({'src_' + k: v for k, v in src_ws_scores.items()})
if tgt_ws_scores is not None:
tgt_ws_monolingual_scores = np.mean(list(tgt_ws_scores.values()))
logger.info("Monolingual target word similarity score average: %.5f" % tgt_ws_monolingual_scores)
to_log['tgt_ws_monolingual_scores'] = tgt_ws_monolingual_scores
to_log.update({'tgt_' + k: v for k, v in tgt_ws_scores.items()})
if src_ws_scores is not None and tgt_ws_scores is not None:
ws_monolingual_scores = (src_ws_monolingual_scores + tgt_ws_monolingual_scores) / 2
logger.info("Monolingual word similarity score average: %.5f" % ws_monolingual_scores)
to_log['ws_monolingual_scores'] = ws_monolingual_scores