in src/metrics.py [0:0]
def calc_ndcg(relevant_docs, retrieved_docs, k, score_type='rank', retrieved_distances=None):
if len(retrieved_docs) <2:
return 0.00
y_true = np.array([[1 if doc in relevant_docs else 0 for doc in retrieved_docs]])
if score_type == 'rank':
y_scores = np.array([[1 / (rank + 1) for rank in range(len(retrieved_docs))]])
elif score_type == 'distance':
y_scores = np.array([[1 - dist for dist in retrieved_distances]])
ndcg = ndcg_score(y_true, y_scores, k=k)
return ndcg