from sentence_transformers.util import pairwise_cos_sim from sentence_transformers import SentenceTransformer def get_cos_sim(output,sampled_passages): model = SentenceTransformer('all-MiniLM-L6-v2') sentence_embeddings = model.encode(output).reshape(1, -1) sample1_embeddings = model.encode(sampled_passages[0]).reshape(1, -1) sample2_embeddings = model.encode(sampled_passages[1]).reshape(1, -1) sample3_embeddings = model.encode(sampled_passages[2]).reshape(1, -1) cos_sim_with_sample1 = pairwise_cos_sim( sentence_embeddings, sample1_embeddings ) cos_sim_with_sample2 = pairwise_cos_sim( sentence_embeddings, sample2_embeddings ) cos_sim_with_sample3 = pairwise_cos_sim( sentence_embeddings, sample3_embeddings ) cos_sim_mean = (cos_sim_with_sample1 + cos_sim_with_sample2 + cos_sim_with_sample3) / 3 cos_sim_mean = cos_sim_mean.item() return round(cos_sim_mean,2)